Im PHP débutant et j'ai du mal à obtenir ce formulaire de contact fonctionnant sur ce site: http://bm-translations.de/#kontakt Il recharge la page, quand j'appuie sur envoyer et qu'il n'envoie rien. Qu'est-ce que je fais mal? Ceci est mon code:formulaire de contact (selfmade, pas de bibliothèque) n'envoie rien mais recharge site
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
if(isset($_POST) && !empty($_POST)) {
// catch spam bots which never loaded contact form
// if (!isset($_POST["url"]) || $_POST["url"] != "sometext") {
// header("Location: http://bm-translations.de/");
// exit;
// }
// check whether the POST method was used
if ("POST" != getenv("REQUEST_METHOD")) {
header("Location: http://bm-translations.de/");
exit;
}
// check for user-agent and http-referer
if ("" == getenv("HTTP_USER_AGENT") || "" == getenv("HTTP_REFERER")) {
header("Location: http://bm-translations.de/");
exit;
}
// trick the spam bot into identifying itself using a honeypot
if (empty($_POST["email"])) {
exit;
}
$hasAttachment = !empty($_FILES['attachment']['name']);
$uid = md5(uniqid(time()));
//mail essentials
$from = $_POST['mail'];
$to = "[email protected]";
$subject = "Anfrage über Website";
$message = $_POST['quote'];
// standard mail headers
$header = "From: ".$from."\r\n";
$header .= "Reply-To: ".$to."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$message .= "This is a multi-part message in MIME format.\r\n";
// plain text part
$message .= "--".$uid."\r\n";
$message .= "Content-Type:text/plain; charset=iso-8859-1\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$message .= $message."\r\n\r\n";
//if there is an attachment
if($hasAttachment) {
//store some varables
$file_name = $_FILES['attachment']['name'];
$temp_name = $_FILES['attachment']['tmp_name'];
$file_type = $_FILES['attachment']['type'];
//get the extension of the file
$base = basename($file_name);
$extension = substr($base, strlen($base)-4, strlen($base));
// only thes file types will be allowed
$allowed_extensions = array(".doc","docx",".pdf",".zip",".png","jpeg",".jpg",".gif",".txt","docm",".odt","xlsx","xlsm",".csv",".xml",".ods","tiff",".rtf","");
// check that this file type is allowed
if(in_array($extension,$allowed_extensions)){
// things you need
$file = $temp_name;
$content = chunk_split(base64_encode(file_get_contents($file)));
// file attachment
$message .= "--".$uid."\r\n";
$message .= "Content-Type: ".$file_type."; name=\"".$file_name."\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n";
$message .= $content."\r\n\r\n";
}
}
$msg = "";
//send the mail
if (mail($to, $subject, $message, $header)) {
$msg = "Ich habe Ihre Mail erhalten und melde mich in Kürze!";
} else {
$msg = "Nachricht konnte nicht gesendet werden. Bitte senden Sie mir Ihre Anfrage an [email protected]";
}
}
Cest la forme:
<?php if (!empty($msg)) {
echo "<h2>$msg</h2>";
} ?>
<form method="POST" enctype="multipart/form-data">
<input style="width: 100%;" type="text" name="name" id="name" placeholder="Ihr Name..." required/><br>
<input style="width: 100%;" type="email" name="email" id="email" placeholder="Ihre Email-Adresse..." required/><br>
<input style="width: 100%;" type="text" name="phone" id="phone" placeholder="Ihre Telefonnummer..." /><br>
<textarea style="padding: 10px 12px; width: 100%;" name="quote" rows="6" placeholder="Auftragsdetails: Fachgebiet, Sprachkombination, Beglaubigung (ja/nein), Liefertermin, Versandart ..." required></textarea><br>
<input name="uploaded_file" id="uploaded_file" type="file" size="50" style="margin-top: 10px;">
<input name="url" style="display:none">
<button type="submit" class="button" name="submit" value="send" style="width:100%; margin-top:10px; text-align: center;">Anfrage absenden!</button>
</form>
Maintenant, je reçois ce message
et beaucoup d'erreurs, qu'ai-je tort? J'ai essayé de suivre les instructions des réponses.
[L'attribut d'espace réservé HTML5 ne remplace pas l'élément d'étiquette] (http://www.456bereastreet.com/archive/201204/the_html5_placeholder_attribute_is_not_a_substitute_for_the_label_element/) – Quentin