Ich habe Dutzende von Posts zu diesem Thema gesehen und es kommt im Grunde auf eine Variable nicht deklariert oder einen Wert gegeben. Aber ich bin 100% sicher, es ist das gleiche und erklärt.Undefined Index in PHP mit Textarea
Ich habe ein grundlegendes Kontaktformular in HTML und ich möchte, dass es mir und E-Mail sendet, wenn jemand den Absenden-Button drückt. Ich debugge den Code auch, um zu sehen, was das Problem ist. Das einzige Problem, das es finden kann, ist, dass es eine Undefined Index
gibt, die zu meinem Textbereich gehört.
Ich weiß, dass der Name der Textarea muss der gleiche sein wie der Name auf meiner $_POST
in der PHP. Bitte sehen Sie sich die beiden Code-Abschnitte an und sagen Sie mir, ob Sie sehen können, warum die Informationen nicht aus meinem Textbereich abgerufen werden. Der Name lautet message-area
.
HTML
<form action="mail.php" method="post" name=contact-me-form >
<label name="firstname secondname">Name: * </label><br>
<input class="half-box" type="text" name="firstname" required >
<input class="half-box" type="text" name="secondname" required ><br>
<p class="first-name">First Name</p>
<p class="second-name">Last Name</p><br>
<label name="email">Email Address: * </label><br>
<input class="full-box" type="email" name="email" spellcheck="false" required><br>
<label name="subject">Subject: </label><br>
<input class="full-box" type="text" name="subject"><br>
<label name="message">Message: * </label><br>
<textarea name="message-area" form="contact-me-form" type="text" placeholder="Please enter your message"></textarea>
<button name="submit" type="submit" value="Submit">Submit</button>
</form>
PHP
<?PHP
$to = "";
$from = "";
$first_name = '';
$last_name = '';
$subject = '';
$message = null;
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
if(isset($_POST['submit'])){
$to = '[email protected]';
$from = $_POST['email'];
$first_name = $_POST['firstname'];
$last_name = $_POST['secondname'];
$subject = $_POST['subject'];
$message = $_POST["message-area"];
if($message == null){echo "no message detected";}
$headers = "From: " . $from;
$headers = "From:" . $to;
mail($to,$subject,$message,$headers);
}
?>
Wie Sie die Namen noch identisch sind zu sehen, wenn ich die Daten eintragen die folgende Anzeige kommt.
int (8) string (29) "Undefiniert Index: message-Bereich" string (58) "/ Hermes/bosnaweb25a/b2294/gefolgt von ein bisschen mehr Informationen und meine Fehler angezeigt wird: [" message“ =]> NULL} keine Meldung erkannt.
ich habe ehrlich gesagt keine Ahnung, warum dies nicht abgeholt wird, kann jemand mit mehr Erfahrung meines Fehler hervorheben?
EDIT 1
Das hat nichts damit zu tun Bindestriche/Bindestriche, da ich meinen Code bearbeitet habe, wie Sie unten sehen können.
Es ist auch wichtig zu beachten, dass, wenn ich dies zu Rohtext ändert es immer noch nicht funktioniert, immer noch so tut, als ob es keine Daten aus dem Textfeld gibt.
HTML
<form action="mail.php" method="post" id=contact-me-form >
<label name="firstname secondname">Name: * </label><br>
<input class="half-box" type="text" name="firstname" required >
<input class="half-box" type="text" name="secondname" required ><br>
<p class="first-name">First Name</p>
<p class="second-name">Last Name</p><br>
<label name="email">Email Address: * </label><br>
<input class="full-box" type="email" name="email" spellcheck="false" required><br>
<label name="subject">Subject: </label><br>
<input class="full-box" type="text" name="subject"><br>
<label name="message">Message: * </label><br>
<textarea name="messagearea" type="text" placeholder="Please enter your message"></textarea>
<button name="submit" type="submit" value="Submit">Submit</button>
</form>
PHP
<?PHP
$to = "";
$from = "";
$first_name = '';
$last_name = '';
$subject = '';
$message = null;
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
if(isset($_POST['submit'])){
$to = '[email protected]';
$from = $_POST['email'];
$first_name = $_POST['firstname'];
$last_name = $_POST['secondname'];
$subject = $_POST['subject'];
$message = $_POST["messagearea"];
if($message == null){echo "no message detected";}
$headers = "From: " . $from;
$headers = "From:" . $to;
mail($to,$subject,$message,$headers);
}
?>
EDIT 2
es mit einem harten codierten Getestet Wert arbeitet so hat es der Variablenname sein. Es ist nur seltsam, dass es nur im Textfeld passiert.
Tipp: wenn einige Elemente * sind * vorgelegt werden und andere nicht, einen genauen Blick auf das, was der Unterschied zwischen ihnen ist, und diesen Unterschied entfernen. – deceze
Versuchen Sie, den 'Nachrichtenbereich' in einen Namen ohne Bindestrich umzubenennen. – Marki555
Danke Jungs, schaut mal rein. Ich habe den Bindestrich/dash von meiner HTML und PHP entfernt, aber immer noch die gleichen Fehler gerade jetzt sagen, „Undefined index: Message“ Shame immer noch das Problem zu bekommen. – CardDeath