2016-08-18 3 views
-2

nach dem Absenden meines Formulars bin die Mail, aber es geht auf weiß schwarzer Bildschirm mit Nachricht der Nachricht senden.PHP-Anlage Formular nach dem Senden der leeren Seite

Ich versuche, die Seite nach dem Senden des Formulars neu zu laden, aber Fehler erhalten.

<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") { 

    $to = "[email protected]"; 
    $subject = "E-mail with attachment"; 
    $from = stripslashes($_POST['fromname']) . "<" . stripslashes($_POST['fromemail']) . ">" . "<" . stripslashes($_POST['designation']) . ">"; 

    // generate a random string to be used as the boundary marker 
    $mime_boundary = "==Multipart_Boundary_x" . md5(mt_rand()) . "x"; 

    // now we'll build the message headers 
    $headers = "From: $from\r\n" . 
     "MIME-Version: 1.0\r\n" . 
     "Content-Type: multipart/mixed;\r\n" . 
     " boundary=\"{$mime_boundary}\""; 

    $message = "Canditade Resume"; 
    // when we use it 
    $message = "This is a multi-part message in MIME format.\n\n" . 
     "--{$mime_boundary}\n" . 
     "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
     "Content-Transfer-Encoding: 7bit\n\n" . 
     $message . "\n\n"; 

    // iterating each File type 
    print_r($_FILES); 

    foreach ($_FILES as $userfile) { 

    $tmp_name = $userfile['tmp_name']; 
    $type = $userfile['type']; 
    $name = $userfile['name']; 
    $size = $userfile['size']; 


    if (file_exists($tmp_name)) { 
     if (is_uploaded_file($tmp_name)) { 
     $file = fopen($tmp_name, 'rb'); 
     $data = fread($file, filesize($tmp_name)); 
     fclose($file); 
     $data = chunk_split(base64_encode($data)); 
     } 
     $message .= "--{$mime_boundary}\n" . 
      "Content-Type: {$type};\n" . 
      " name=\"{$name}\"\n" . 
      "Content-Disposition: attachment;\n" . 
      " filename=\"{$tmp_name}\"\n" . 
      "Content-Transfer-Encoding: base64\n\n" . 
      $data . "\n\n"; 
    } 
    } 
    // here's our closing mime boundary that indicates the last of the message 
    $message.="--{$mime_boundary}--\n"; 
    // now we just send the message 
    if (@mail($to, $subject, $message, $headers)) 
    echo "Message Sent"; 
    else 
    echo "Failed to send"; 
} else { 
    ?> 
    <form action="index.php" method="post" enctype="multipart/form-data" name="form1"> 
     <label>Name</label> 
     <input type="text" name="fromname" class="input-block-level" style="width: 100%" required placeholder="Your First Name"> 
     <label>Email Address</label> 
     <input type="text" style="width: 100%" class="input-block-level" required placeholder="Your email address" name="fromemail"> 
     <label>Designation</label> 
     <input type="text" style="width: 100%" class="input-block-level" name="designation" required placeholder="Designation"> 
     <label>Upload Your CV</label> 
     <input type="file" class="input-block-level" required placeholder="Upload Your CV" name="file1"> 
     </div> 
     <input type="submit" name="Submit" value="Submit" class="btn btn-primary btn-large pull-left" onclick="javascript: form.action='index.php';"> 
    </form> 
<?php } ?> 

mir bitte in header location zu dem

+0

Was versuchen Sie zu erreichen? Was sind die Fehler, die Sie nicht erwarten? – Cagy79

+0

Formular funktioniert gut, nach dem Absenden möchte ich das Formular validieren dann auf andere Seite umleiten möchten –

+0

Bitte aktualisieren Sie den Code in Ihrer Frage mit dem Code, den Sie jetzt haben. – Cagy79

Antwort

0

Give Seitennamen möchten Ihnen helfen, es umleiten.

ändern

if (@mail($to, $subject, $message, $headers)) 
    echo "Message Sent"; 
    else 
    echo "Failed to send"; 
} else { 

Um

if (@mail($to, $subject, $message, $headers)) 
    header("location:yourpage.php?message=Message Sent"); 
    else 
    header("location:yourpage.php?message=Failed to send"); 
} else { 

yourpage.php

<?php 
if(isset($_GET['message'])){ 
    echo $_GET['message']; 
} 
. 
. 

?> 
0
if (@mail($to, $subject, $message, $headers)) 
    //echo "Message Sent"; 
    header('location:email-success.php'); 
    else 
    //echo "Failed to send"; 
    header('location:email-error.php'); 
} 
+0

immer noch das erro –

+0

Array ([Datei1] => Array ([Name] => Sendemail.php [Typ] => Anwendung/Oktett-Stream [Tmp_name] =>/tmp/phphNCMKH [Fehler] => 0 [Größe ] => 801)) –

+0

Das ist kein Fehler, das ist Ihre print_r-Anweisung 'print_r ($ _ FILES);'! Entferne diese Zeile und es wird funktionieren. – Cagy79

0

Ihre Codierung ist ein wenig verwirrt. Hier sind die Einstellungen, die ich gemacht habe:

Ich habe auch die print_r ($ _ FILES) auskommentiert, da dies das Array von dem anzeigt, was nicht angezeigt werden soll, wenn ein Benutzer submit drückt.

So umbenannt ich den $ _POST und machte es einen isset:

<?php 
if (isset($_POST['send'])) { 

    $to = "[email protected]"; 
    $subject = "E-mail with attachment"; 
    $from = stripslashes($_POST['fromname']) . "<" . stripslashes($_POST['fromemail']) . ">" . "<" . stripslashes($_POST['designation']) . ">"; 

    // generate a random string to be used as the boundary marker 
    $mime_boundary = "==Multipart_Boundary_x" . md5(mt_rand()) . "x"; 

    // now we'll build the message headers 
    $headers = "From: $from\r\n" . 
     "MIME-Version: 1.0\r\n" . 
     "Content-Type: multipart/mixed;\r\n" . 
     " boundary=\"{$mime_boundary}\""; 

    $message = "Canditade Resume"; 
    // when we use it 
    $message = "This is a multi-part message in MIME format.\n\n" . 
     "--{$mime_boundary}\n" . 
     "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
     "Content-Transfer-Encoding: 7bit\n\n" . 
     $message . "\n\n"; 

    // iterating each File type 
    //print_r($_FILES); 

    foreach ($_FILES as $userfile) { 

     $tmp_name = $userfile['tmp_name']; 
     $type = $userfile['type']; 
     $name = $userfile['name']; 
     $size = $userfile['size']; 


     if (file_exists($tmp_name)) { 
      if (is_uploaded_file($tmp_name)) { 
       $file = fopen($tmp_name, 'rb'); 
       $data = fread($file, filesize($tmp_name)); 
       fclose($file); 
       $data = chunk_split(base64_encode($data)); 
      } 
      $message .= "--{$mime_boundary}\n" . 
       "Content-Type: {$type};\n" . 
       " name=\"{$name}\"\n" . 
       "Content-Disposition: attachment;\n" . 
       " filename=\"{$tmp_name}\"\n" . 
       "Content-Transfer-Encoding: base64\n\n" . 
       $data . "\n\n"; 
     } 
    } 
    // here's our closing mime boundary that indicates the last of the message 
    $message .= "--{$mime_boundary}--\n"; 
    // now we just send the message 
    if (@mail($to, $subject, $message, $headers)) { 
     echo "Message Sent"; 
    } else { 
     echo "Failed to send"; 
    } 
} 
    ?> 

nicht sicher, warum Sie die PHP um die Seite html eingewickelt, aber das wäre, warum Sie nicht zurück zum Formular Seite genommen wurden und nur eine leere Seite.

<form action="" method="post" enctype="multipart/form-data" name="form1"> 
     <label>Name</label> 
     <input type="text" name="fromname" class="input-block-level" style="width: 100%" required placeholder="Your First Name"> 
     <label>Email Address</label> 
     <input type="text" style="width: 100%" class="input-block-level" required placeholder="Your email address" name="fromemail"> 
     <label>Designation</label> 
     <input type="text" style="width: 100%" class="input-block-level" name="designation" required placeholder="Designation"> 
     <label>Upload Your CV</label> 
     <input type="file" class="input-block-level" required placeholder="Upload Your CV" name="file1"> 
     </div> 
     <input type="submit" name="send" value="Submit" class="btn btn-primary btn-large pull-left" onclick="javascript: form.action='index.php';"> 
    </form> 

Ich habe diesen Code getestet und leitet es zurück zum Formular mit der „Mitteilung gesendet“ über der Form (wie Sie auf jedem Kontaktformular sehen würden).

+0

Sie sollten wirklich Bedingungen zu jedem Feld hinzufügen 'if (! Leer ($ var)) {// etwas tun}' weil die erforderlichen Felder sind leicht umgangen werden. – Option

+0

danke für Ihren Effekt jetzt seine Umleitung, aber Anlage Datei wird nicht zu mail –

Verwandte Themen