Undefined index beim übermitteln von HTML-Formular mit POST-Methode
Habe ich die Suche Tagen, warum dieses Stück code nicht funktioniert. Angepasst, den code mehrfach durch die Suche nach Beiträgen mit dem gleichen problem.
Problem: meine php-Datei nicht scheinen, um die Werte, die es braucht, aus einem einfachen HTML-Formular (aus w. bootstrap), die via POST-Methode. Ich benutze die issit-Funktion, um zu überprüfen, ob der submit-button geklickt wurde, und danach benutze ich um zu überprüfen, ob das Formular wurde vollständig ausgefüllt.
Bitte beachten Sie, dass ich bin relativ neu in php. Ich hoffe, ich habe etwas übersehen und es ist nicht nur ein einfacher Tippfehler.
PHP-code (bootstrap/php/boeking.php)
<?php
//<!--debug-->
error_reporting(E_ALL);
ini_set('display_errors', '1');
//<!--connectie-->
mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());
//<!--boeking info verzenden-->
if(isset($_POST['send']))
{
if (isset($_POST['achternaam']))
{
$anaam = $_POST['achternaam'];
//do whatever here
}
if(isset($_POST['voornaam']))
{
$vnaam = $_POST['voornaam'];
}
}
$anaam = mysql_real_escape_string($anaam);
$vnaam = mysql_real_escape_string($vnaam);
$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";
mysql_query($boek);
?>
HTML-code:
<form id="newbook" method="POST" action="bootstrap/php/boeking.php" class="form-horizontal">
<legend>Nieuwe boeking</legend>
<div class="control-group">
<label class="control-label" for="voornaam">Voornaam</label>
<div class="controls">
<input type="text" name="voornaam" id="voornaam" placeholder="Voornaam">
</div>
</div>
<div class="control-group">
<label class="control-label" for="achternaam">Achternaam</label>
<div class="controls">
<input type="text" name="achternaam" id="achternaam" placeholder="Achternaam">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" name="send" class="btn">Sign in</button>
</div>
</div>
</form>
Vielen Dank im Voraus!
UPDATE:
änderte meine php-code.
Nicht immer die undefined index Fehler mehr.
Var_dump($vnaam); und var_dump($anaam); zeigen Sie, dass Zeichenketten übergeben werden, die php aber nach, dass, wenn die Abfrage ausgelöst wird, die Dinge scheinen nicht zu erhalten, senden Sie an die db.
Könnte dies ein problem in meiner Abfrage ?
(schon danke für die Tipps: gab der Taste einen Wert ein, und verwendet var_dump)
Dies ist mein neuer code :
<?php
//<!--debug-->
error_reporting(E_ALL);
ini_set('display_errors', '1');
//<!--connectie-->
mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("hota") or die(mysql_error());
$anaam = '';
$vnaam = '';
if(!isset($_POST['send'])) {
}
else
{
if (isset($_POST['achternaam']))
{
$anaam = $_POST['achternaam'];
//do whatever here
}
if(isset($_POST['voornaam']))
{
$vnaam = $_POST['voornaam'];
}
var_dump($vnaam);
var_dump($anaam);
$anaam = mysql_real_escape_string($anaam);
$vnaam = mysql_real_escape_string($vnaam);
}
var_dump($vnaam);
$boek = "INSERT INTO klant (achternaam , voornaam) VALUES ('{$anaam}', '{$vnaam}')";
mysql_query($boek);
?>
Welche Zeile der Fehler passiert, und was ist der undefined index in der Fehlermeldung?
Auch mit
mysql_real_escape_string
?Ich bemerkte, dass ich denke, das muss sein, die unglückliche und verwirrende name der Funktion. lol. Ist es real oder nicht real?
Es ist eine andere Funktion
mysql_escape_string
ist das etwas anders. mysql_real_escape_string
sollte man wirklich nutzen.InformationsquelleAutor Tim Scheys | 2013-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es versuchen mit :
ersetzen
mit
und
mit
anklickbare buttons
Angeben, was passieren soll, wenn der button angeklickt wird, können Sie zum Beispiel die Seite onclick-event-handler. Der Wert zugewiesen, um die event-handler-Attribut können Sie dann schreiben JavaScript-code.
Im übrigen, sind diese Tasten für die selbe Sache gesagt worden ist, für Ihre konventionellen Pendants: Ohne JavaScript sind Sie völlig funktionslos.
InformationsquelleAutor moskito-x
Könnte man Debuggen, indem er die $_POST-Variablen mit var_dump (), um zu sehen, ob es überhaupt etwas.
Wenn es nichts gibt, sind Sie sicher, dass Sie nicht umleiten, den browser zu der Seite, wo Sie versuchen, sich für die Werte?
Wenn es etwas gesetzt, dann vielleicht isset($_POST["senden"]) gibt false zurück.
Bitte verwenden Sie PDO anstatt die bald-zu-sein-veraltet und schlecht mysql_-Funktionen.
Auch, wenn man den submit-button, gehe ich auf eine leere Seite mit link: localhost:8888/bootstrap/php/boeking.php. Nur, was sind die var_dump (), die strings, also keine Rückkehr zu der ursprünglichen form, was so überhaupt.
InformationsquelleAutor Lasse
Edit:
Müssen Sie geben Sie Ihrem button einen Wert oder
isset
false zurück.Es ist unklar, ob Sie sind immer noch mit der undefined index Fehler, aber wenn du das gemacht hast ist es vorbei, die versuchen, deklarieren Sie Ihre Variablen außerhalb der
if
Aussagen.InformationsquelleAutor What have you tried
Lösen das Problem der undefinierten index durch die Anpassung der code wie im update schrieb ich in meinem ursprünglichen post. Nachdem das problem gelöst war die Abfrage abgelehnt, um das Feuer und die Daten in die Datenbank, da ein DUPLIKAT des Primärschlüssels. Nach dem lösen dieser, es funktionierte wie ein Charme. Ist diese info ausreichend genug, um den Menschen helfen, mit einigen der gleichen Probleme oder sollte ich gründlicher?
Trotzdem, vielen Dank an alle Einsatzkräfte!
InformationsquelleAutor Tim Scheys
Versuchen, diese....
Was ist das problem, indem Sie innerhalb der wenn? Ich nehme an, dieser Benutzer ist ein Anfänger, aber ich würde auch javascript-Validierung, um festzustellen, ob Sie gesetzt sind, als auch php-Validierung auf die post-Variablen zu bereinigen Sie. Ich bin nicht hier, um ein Buch zu schreiben, obwohl...
Er tun sollte, isset($_POST['senden']), das heißt, die Identifikation der Absenden-button.
Der button schlägt fehl, wenn der Benutzer das Formular abschicken mit der enter-Taste in einigen Browsern und bestimmte javascript-Vorlage Methoden. Auch ich sehe nicht das problem bei der Validierung der Felder richtig. Auch dies hat nichts zu tun mit dem ersten Kommentar, den Sie fehlgeleitet. Um zurück zum Thema, warum kann ich nicht verwenden Sie den post-Daten in der if-Anweisung?
Einfach, weil ein post gemacht wurde, bedeutet nicht, dass voornaam und achternaam veröffentlicht wurden. Weder konnte gebucht worden sind, oder nur einer von Ihnen.
InformationsquelleAutor Chris