PHP Problem

  • Yo, Servus.


    Bin im dem Bereich etwas neu und habe versucht per Formular etwas in meine Datenbank einzuspeichern.
    Jedoch zeigt er mir immer an das der Name nicht vollständig ist und ich ihm den Bestellwunsch nicht mitteile


    functions.php


    Formular


    Danke im vorraus.

  • Dir ist schon klar das du bei action dir URL zu der php Datei geben musst.

    Kommt trotzdem die gleiche Fehlermeldung
    Und ich möchte auf der PHP bleiben wo das Formular ist


    e// Ich habe es mit require_once verbunden. Sobald ich auf den Button drücke wird die Functions.php ausgeführt bei mir

  • [php]strlen($var) == 0[/php]
    sein.

    Das war es jedoch bekomme ich nun die Fehlermeldung:


    Notice: Undefined variable: statemant in C:\xampp\htdocs\user\functions.php on line 35


    Line 35:


    PHP
    $result = $statemant->execute(array('Email' => $absenderemail));
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
    • $statement = $pdo->prepare("SELECT * FROM kostenvorschlag WHERE Email = :absenderemail");
    • $result = $statemant->execute(array('absenderemail' => $absenderemail));


    vielleicht hilft das ja weiter..

    Hey, das hatte ich bereits gefunden danke trotzdem.
    Jedoch bekomme ich nun eine Warnung



    PHP
    Fatal error: Uncaught Error: Call to a member function execute() on null in

    Und versuche gerade herauszufinden wo der Fehler liegt^^

  • existiert die Tabelle "Kostenvoranschlag" mit der Spalte "Email"? ist das auch richtig geschrieben?

    Ja diese existiert, ich habe zuvor bevor ich mit dem Format gearbeitet habe diese Manuell eingefügt mit einem Code


    Also getestet ob alles funktioniert siehe:



    Code
    $neue_bestellung = array();
    		$neue_bestellung['Name'] = 'Test-Account';
    		$neue_bestellung['Email'] = 'Test@web.de';
    		$neue_bestellung['Telefonnummer'] = '1293912';
    		$neue_bestellung['Beschreibung'] = 'Kaufen!';
    		$statement = $pdo->prepare("INSERT INTO kostenvorschlag (Name, Email, Telefonnummer, Beschreibung) VALUES (:Name, :Email, :Telefonnummer, :Beschreibung)");
    		$statement->execute($neue_bestellung);   
    		*/


    Nur das ich diesmal nicht mit einem array gearbeitet habe wie dort oben.


    e/ Fatal-Error behoben jedoch immernoch ein Warning zu sehen:



    Code
    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\\functions.php on line 36

    $result = $statement->execute(array('Email' => $absenderemail));


    Datenbank eintrag funktioniert nun auch.

    Einmal editiert, zuletzt von NaTsu ()

  • Code
    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\\functions.php on line 36

    $result = $statement->execute(array('Email' => $absenderemail));


    Datenbank eintrag funktioniert nun auch.

    Du bindest einen Parameter an deinen Query der nicht existiert. Du hattest es doch oben schon richtig stehen, du musst nicht 'Email' binden sondern den Platzhalter ':absenderemail' bzw. 'absenderemail' .

  • Niemand beachtet von euch den HTML Code. Zum einen wird bei der Übertragungsmethode POST nichts in der URL im Header übertragen. Die Query ist dann jeweils in der Request im Nachrichtenrumpf.


    Stattdessen wie gesagt der Pfad zu der PHP Datei. Der Fehler ist zum einen der Weg der Übertragung. Wie gesagt der Pfad zu der Datei. Wenn sie im Verzeichnis ist einfach action="script.php" und ansonsten kann ich dem von oben zustimmen.


    // Edit


    Ich sehe gerade du fragst das ab mit PHP, sehe da wiederrum einen großen Nachteil.


    Der User kann einfach ?bestellen=1 hinzufügen und schon wird dein PHP Code ausgeführt, Devine_ hat deinen Lösungsvorschlag schon geliefert.


    Füg absenderemail mal dort ein und schau mal ob es funktioniert.

    Einmal editiert, zuletzt von Xazor ()

  • Je nachdem. Deine Aussage ist zwar richtig, aber falls es sich um die selbe PHP Datei handelt, reicht es auch, wie er es geschrieben hat. ;)

  • Wie meinst du dass als Nachteil?
    Als ich versucht habe ?bestellen=1 einzugeben kam nur die Nachricht dass ich keine Daten angegeben habe und es nicht ausgeführt wurde.
    Kannst du mir das genauer erklären?^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen