Zum Inhalt springen
  • 0

PHP - Variablen übertragen


Frage

Geschrieben

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 

9 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Geschrieben

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

  • 0
Geschrieben (bearbeitet)
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 von PVoss
  • 0
Geschrieben
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

  • 0
Geschrieben
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

  • 0
Geschrieben
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

  • 0
Geschrieben
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. :D

 

Gruß

Maurice

  • 0
Geschrieben
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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...