Veröffentlicht 3. Dezember 20204 j Hallo, ich weiß nicht was heute los ist, aber heute ist irgendwie der Wurm drin. Wer kann helfen? Situation: Ich möchte eine Variable (Kundennummer), welche in "datei1.php" in einem Formular eingegeben wurde nach "datei2.php" mitnehmen, damit ich dort mit der Nummer arbeiten kann. Allerdings meckert er immer meinen Index von $_POST an. Ich verstehe nicht wieso? Hier der Code von "datei1.php": <form action="datei2.php" method="post"> <div class="fields"> <input type="text" id="kundennummer" name="kundennummer" placeholder="Kundennummer"><br> </div> <br> <div class="field2"> <input name="searchKDN" type="submit" value="Submit"> </div> </form> Hier der Code von "datei2.php": <?php $kundennummer = $_POST["kundennummer"]; require("../mysql.php"); $stmt = $mysql->prepare("SELECT * FROM customer"); foreach ($mysql->query("SELECT * FROM customer WHERE kundennummer = $kundennummer") as $row) { echo $row['firma']."<br />"; echo $row['vorname']."<br />"; echo $row['nachname']."<br /><br />"; } ?> Ich bin es so gewohnt, so hat es bis jetzt immer funktioniert, das ich nun in "datei2.php" in der Variable $kundennummer meine Eingabe aus "datei1.php" habe. Was läuft hier falsch? Bitte um Hilfe. Gruß Maurice
3. Dezember 20204 j Prinzipiell kann ich dir mal das Vorgehen nach dem Artikel empfehlen: https://php-de.github.io/jumpto/faq/#debugging Also überprüfe deine Variablen, lass dir mal die post daten mit var_dump($_POST) ausgeben, schau ob das wirklich drin steht was du erwartest. Ansonsten in jedem Browser kannst du mit Developerwerkzeugen (F12) die Requests anschauen. Schau mal ob da die Daten soweit korrekt übergeben werden. Dein Query musst du auch noch etwas aufräumen, das 1. Statement ist so überflüssig, auch wenn es nicht ausgeführt wird. $stmt = $mysql->prepare("SELECT * FROM customer"); Dann niemals in einem Query direkt eine Variable vom Client (in dem fall $kundennummer) einfügen, das sorgt für riesige Sicherheitslücken. Bleib auch da bei prepared statements
3. Dezember 20204 j vor einer Stunde schrieb MauriceL01: Allerdings meckert er immer meinen Index von $_POST an. Ich verstehe nicht wieso? Wie ist denn die genaue Fehlermeldung? foreach ($mysql->query("SELECT * FROM customer WHERE kundennummer = $kundennummer") as $row) { Das kann dir ganz schnell um die Ohren fliegen. Das muss nichtmal böswillig sein, sondern jemand fettfingert eine Kundennummer "234t" ins Eingabefeld... Im schlimmsten Fall wird dann der Fatal Error inklusive Stack Trace und Datenbankdaten angezeigt. Im anderen Thread hattest du Prepared Statements genutzt, die brauchst du hier auch. Bearbeitet 3. Dezember 20204 j von PVoss
3. Dezember 20204 j vor 7 Stunden schrieb MauriceL01: Allerdings meckert er immer meinen Index von $_POST an. mal ein var_dump($_POST); versuchen. Auch mal im Browser die POST Daten ansehen. vor 7 Stunden schrieb MauriceL01: Was läuft hier falsch? höchstwahrscheinlich ein tippfehler
7. Dezember 20204 j Autor Am 3.12.2020 um 23:08 schrieb _n4p_: mal ein var_dump($_POST); versuchen. Auch mal im Browser die POST Daten ansehen. höchstwahrscheinlich ein tippfehler Danke für deine Antwort, der Wert ist NULL.... Einen Tippfehler kann ich nach intensiver Prüfung nicht feststellen. Gruß Maurice
7. Dezember 20204 j Autor Am 3.12.2020 um 16:39 schrieb PVoss: Wie ist denn die genaue Fehlermeldung? foreach ($mysql->query("SELECT * FROM customer WHERE kundennummer = $kundennummer") as $row) { Das kann dir ganz schnell um die Ohren fliegen. Das muss nichtmal böswillig sein, sondern jemand fettfingert eine Kundennummer "234t" ins Eingabefeld... Im schlimmsten Fall wird dann der Fatal Error inklusive Stack Trace und Datenbankdaten angezeigt. Im anderen Thread hattest du Prepared Statements genutzt, die brauchst du hier auch. Danke für deine Antwort. Die genaue Fehlermeldung ist: "Notice: Undefined variable: kundennummer in C:\dev\XAMPP\htdocs\Testsystem\customer\kundenstammActive.php on line 37" und nachfolgend halt die SQL Fehler, da ich eine Abfrage mit NULL mache. Danke für den Tipp, dann werde ich da Ganze noch umbauen. Ja richtig, mit den Prepared Statements habe ich es zuerst probiert.... da hat gar nichts funktioniert. ...Deswegen wollte ich mal testen, ob es denn wenigstens so klappt. Gruß Maurice
7. Dezember 20204 j Autor Am 3.12.2020 um 15:49 schrieb Funfare1337: Prinzipiell kann ich dir mal das Vorgehen nach dem Artikel empfehlen: https://php-de.github.io/jumpto/faq/#debugging Also überprüfe deine Variablen, lass dir mal die post daten mit var_dump($_POST) ausgeben, schau ob das wirklich drin steht was du erwartest. Ansonsten in jedem Browser kannst du mit Developerwerkzeugen (F12) die Requests anschauen. Schau mal ob da die Daten soweit korrekt übergeben werden. Dein Query musst du auch noch etwas aufräumen, das 1. Statement ist so überflüssig, auch wenn es nicht ausgeführt wird. $stmt = $mysql->prepare("SELECT * FROM customer"); Dann niemals in einem Query direkt eine Variable vom Client (in dem fall $kundennummer) einfügen, das sorgt für riesige Sicherheitslücken. Bleib auch da bei prepared statements Danke für deine Antwort. Wenn ich mir den POST mit var_dump ansehe, erhalte ich NULL, bzw. ein leeres Array. Das ist ja mein Problem. Das Übertragen der Variablen von Datei A nach Datei B funktioniert nicht... Ja da gebe ich dir recht, muss noch aufgeräumt werden. Gruß Maurice
7. Dezember 20204 j Wurde dir nicht schon mal in einem deiner anderen Threads zur Verwendung von Code-Tags geraten? Und angemerkt, dass deine Variable einmal Kundennummer und einmal Kundennummer heißt?
7. Dezember 20204 j vor 45 Minuten schrieb MauriceL01: "Notice: Undefined variable: kundennummer in C:\dev\XAMPP\htdocs\Testsystem\customer\kundenstammActive.php on line 37" Am 3.12.2020 um 15:23 schrieb MauriceL01: Allerdings meckert er immer meinen Index von $_POST an. Da passt die Fehlermeldung aber nicht zu deiner Fehlerbeschreibung. Welche ist denn die Zeile 37 und wie sehen die vorherigen Zeilen aus?
8. Dezember 20204 j Am 7.12.2020 um 11:01 schrieb MauriceL01: Wenn ich mir den POST mit var_dump ansehe, erhalte ich NULL, bzw. ein leeres Array. vielleicht das hier: https://stackoverflow.com/a/45935009
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.