Hilfe bei Datenübergabe

  • Ich sitze schon den ganzen Tag an dem Problem, ich komm aber nicht drauf, warum die Variable nicht übernommen wird. Es geht genau um die Übergabe die im Code unten rot markiert ist. Die Wert do='.$favs[fav_id]. kommt aus der Datenbank aber der Wert &web=$webneu soll als Variable aus dem Formular kommen. Doch leider wird dieser nicht übernommen. Wo ist der Fehler.

    Pixelnet24

  • $webneu gibt es doch garnicht, wo soll das herkommen? Er nachdem das Formular abgeschickt wurde, steht in $_POST['webneu'] dein Wert. Da hätte man auch von alleine draufkommen können, wenn man sich einfach mal an diese Regeln hält:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Zwischen einfachen Hochkommata werden Strings nicht auf Variablen geparst. Du hast $webneu nicht korrekt konkateniert, daher wird auch nicht der Inhalt der Variable sondern einfach $webneu als String ausgegeben.

    Davon abgesehen, dein Script ist anfällig für SQL-Injections. Eingaben die vom Client kommen (also GET, POST, COOKIE, teilweise SERVER) müssen vor der Verwendung escaped werden. Dafür gibt es die Funktion mysql_real_escape_string:
    http://php.net/manual/de/func…cape-string.php


    http://php.net/manual/de/func…cape-string.php

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook