Frage von Salarpour, 62

PHP Fehlermeldung ?

hallo ich bin möchte eine Hotelseite mit PHP und ... programmieren aber taucht einn Fehler auf und ich kann die Daten nicht speichern.!!

Antwort
von fluffiknuffi2, 10

Dein MySQL-Query ist nicht sicher gegen SQL-Injections. Sprich jemand kann deinen Query durch bestimmte Werte für $name und $vorname manipulieren!

Eine Lösung wäre mysqli_real_escape_string: 

http://php.net/manual/de/mysqli.real-escape-string.php

Antwort
von Nickname2013, 5

Stimme tWuester und fluffiknuffi2 zu, würde aber noch etwas ändern:

Du initialisierst ein Objekt zur Datenbankverbindung, also per objektorientiertem Stil, nutzt dieses aber nicht, sondern machst prozedural weiter..

Finde ich unschön, wundert mich überhaupt, dass es funktioniert.. :D

Würde es einheitlich weiter objektorientiert machen. :)

Siehe hier: http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-examples

Antwort
von maximilianus7, 19

das komma hinter dem vornamen ist zuviel: syntaxfehler. grundsätzliche abhilfe:

$ergebnis = mysqli_query($conn, $sql) or die(mysqli_error($conn));



Kommentar von Salarpour ,

Danke es funktioniert jetzt wieder :)

Antwort
von tWeuster, 34

In dem Super Globalen Array $_POST gibt es den Index "name" und "vorname" nicht. Das ist kein Fehler sondern eine Notice (steht ja gleich am Anfang deines zweiten Screenshots). Es ist zwar nicht hübsch, aber für die Lauffähigkeit deines Scriptes spielt es keine Rolle.

Du bekommst diese notice weg in dem du vorher ein if(isset($_POST['vorname'])) setzt.

Oder pragmatischer aber nicht gut programmiert mit einem = @$_POST. Mit einem @ unterdrückst du alle Meldungen.

Kommentar von Salarpour ,

Haha ja wie auch immer :)
Ja gut danke es hat funktioniert

Antwort
von triopasi, 12

Ähnlich wie @tWeuster, aber ich ziehe folgende "Kompaktschreibweise" vor:

$name = (isset($_POST['vorname'])) ? $_POST['vorname'] : "";

Das ist ne Kurzschreibweise für das IF, die das nötigste abfängt (keine Notices wie du sie bekommen hast, $name hat den Standartwert = "")


Erklärung: http://php.lernenhoch2.de/lernen/php-anfaenger/bedingungen/ternaerer-operator-ku...

Kommentar von fluffiknuffi2 ,

Noch kompakter in PHP 7:

$name = $_POST['vorname'] ?? '';

?? ist der mit PHP7 neu eingeführte null coalesce operator

http://www.lornajane.net/posts/2015/new-in-php-7-null-coalesce-operator

Antwort
von RakonDark, 28

name und vorname sind keine POST variablen ,

FORM mal als method POST definieren ?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten