2016-07-13 10 views
0

Hallo allerseits Ich habe ein Formular hier, das eine E-Mail an eine Person sendet, wenn ein neuer Kontakt hinzugefügt wird.Email leere Werte

Alles funktioniert. Der Benutzer wird zur Datenbank hinzugefügt, die E-Mail wird gesendet, aber die E-Mail-Adresse ist leer:

z. Mitarbeiter: Erweiterung: E-Mail: Cellular:

Iv versucht, ein paar Möglichkeiten, um und die E-Mails sind immer leer konnte mit dieser jemand helfen, wenn möglich?

mein Code:

<?php 
    require_once"connection.php"; 
?> 
<?php 
if (isset($_POST['submit'])) { 

$to = "[email protected]????"; 
$from = "[email protected]???"; 
$subject = "New Staff Added To Extension List"; 
$message = "New Staff: " . "\n\n" . "Name : " . $name . " " . "\n\n" . "Email: " . $email . " " . "\n\n" . "Department: " . $department . " " . "\n\n" . "Extension: " . $extension . " " . "\n\n" . "Cellphone: " . $ 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <?php include"includes/head.inc"; ?> 
    <script>tinymce.init({selector:'textarea'});</script> 
</head> 
<body> 
    <div class="wrapper"> 

      <!-- header section --> 
      <div class="header"> 
        <div class="headerContent"><h1>CONTACT LIST</h1></div> 
      </div> 

      <!-- content section --> 
      <div class="content"> 
      <div><h1>Create New Contact</h1></div> 
        <hr> 
        <div class="contact"> 
          <div class="contact_insert"> 
            <form action="insert_contact.php" method="post"> 
              <table style="float:left" width="50%"> 
                <tr> 
                  <td>Name:</td> 
                  <td><input type="text" name="name" placeholder="name" size="40%"></td> 
                </tr> 
                <tr> 
                  <td>Email:</td> 
                  <td><input type="text" name="email" placeholder="email" size="40%"></td> 
                </tr> 
                <tr> 
                  <td>Department:</td> 
                  <td><input type="text" name="department" placeholder="department" size="40%"></td> 
</tr> 
<tr> 
<td>Extension Number:</td> 
<td><input type="text" name="extension" placeholder="extension" size="40%"></td> 
                </tr> 
                <tr> 
                  <td>Cellphone:</td> 
                  <td><input type="text" name="cellphone" placeholder="cellphone" size="40%"></td> 
                </tr> 
              </table> 
              <div class="clear"></div> 
              <input class="insert_contact_button" type="submit" name="submit" value="Insert Contact"> 
              <a href="index.php"><input class="cancel_contact_button" type="button" value="Cancel"></a> 
            </form> 
          </div> 
          <div class="clear"></div> 
        </div> 
      </div> 
</body> 
</html>   
<?php 
if (isset($_POST['submit'])) { 

      $name = $_POST['name']; 
      $email = $_POST['email']; 
      $department = $_POST['department']; 
      $extension = $_POST['extension']; 
      $cellphone = $_POST['cellphone']; 

       $insert_contact = "insert into contacts (name, email, department, extension, cellphone) values ('$name', '$email', '$department', '$extension', '$cellphone')"; 

      $sql_insert_contact = $conn->query($insert_contact); 

      if ($sql_insert_contact == true) { 
        header("Location: index.php"); 
      } 
    } 
?> 
+0

Sie versuchen auf Variablen zuzugreifen, die Sie erst später im Code festlegen ... Können Sie das erkennen? – FirstOne

+0

Versuchen Sie, den Code von oben und setzen Sie es nach dem Einfügen (vor der Weiterleitung) – FirstOne

+0

Vielen Dank – 5ilent

Antwort

2

Das Problem ist, dass Sie diese Zeile aus:

mail($to,$subject,$message,$headers); 

Bevor Sie die Variablen, die es hängt davon ab, zu erklären. Erst später im Code richtet man sie

$name = $_POST['name']; 
$email = $_POST['email']; 
$department = $_POST['department']; 
... 

Es ist okay, sie auf zu erklären, bevor die mail Funktion

if(isset($_POST['submit'])): 
    $name = $_POST['name']; 
    ... 
    mail(...); 
endif; 
+1

Hinweis: das Einreichen des Formulars ist keine Garantie, dass alle benötigten Eingaben ausgefüllt wurden. – FirstOne

+0

Und eine "richtige" Idee wäre, die E-Mail nur zu senden, wenn der 'insert' funktioniert. Sonst könnte jemand eine E-Mail erhalten, die nicht der Realität entspricht. – FirstOne

+1

Sie haben Recht; Es gibt viel mehr, was getan werden kann (zB: Validierung von E-Mails und Telefonnummern, Verwendung vorbereiteter Anweisungen, Herausfiltern von Bot-Einreichungen ...), aber diese sind nicht relevant für das, was falsch war. Ich habe versucht, eine einfache Antwort zu schreiben, die dem Fragesteller genügend Informationen liefert, um herauszufinden, warum sein Skript nicht funktioniert. Es ist gut, dass Sie dies auf jemanden hinweisen, der sich dessen vielleicht nicht bewusst ist. – BeetleJuice

0

Im Folgenden finden Sie den Code

$message = "New Staff: " . "\n\n" . "Name : " . $name . " " . "\n\n" . "Email: " . $email . " " . "\n\n" . "Department: " . $department . " " . "\n\n" . "Extension: " . $extension . " " . "\n\n" . "Cellphone: " . $ 

Es ist ein $ Symbol am Ende. Ich denke, es ist ein Fehler.

Bitte umschreiben es als

$message = "New Staff: " . "\n\n" . "Name : " . $name . " " . "\n\n" . "Email: " . $email . " " . "\n\n" . "Department: " . $department . " " . "\n\n" . "Extension: " . $extension . " " . "\n\n" . "Cellphone: " . $Your_value_if_any; 

Wichtiger Hinweis: Ihre E-Mail-Code hinzufügen nach dem SQL. Für viele der Variablen $name, $email usw. ist kein Wert zugewiesen.

+1

Außerdem versucht das op eine Variable zu lesen, die nicht einmal einen Wert am Lesepunkt hat. – FirstOne

+0

@FirstOne, ja. Ich vergesse das hinzuzufügen. Danke, dass du mich das bemerkt hast – Arun

0

Ich habe obigen Code auf meinem erstellt. Es funktioniert perfekt. Bitte prüfen Sie das.

if (isset($_POST['submit'])) { 

    $name = $_POST['name']; 
    $insert_contact = "insert into name (name) values ('$name')"; 
    $sql_insert_contact = $conn->query($insert_contact); 

    $to = "To email"; 
    $from = "From Email"; 
    $subject = "New Staff Added To Extension List"; 
    $message = "New Staff: " . "\n\n" . "Name : " . $name; 
    $headers = "From:" . $from; 

    mail($to,$subject,$message,$headers); 

    header("Location: index.php"); 
}