2016-06-02 8 views
2

Jetzt habe ich 2 Dateien, eine PHP-Datei und eine HTML-Datei und ich möchte ein Formular erstellen. In meiner HTML-Datei habe ich den Inhalt der Website sowie mein Formular. In meiner PHP-Datei (namens contact.php) versuche ich die Eingaben in PHP zu verarbeiten. Gerade jetzt, wenn ich auf Senden klicke, bringt mich das HTML-Formular in meine PHP-Datei und gibt die Eingaben nicht wieder. Ich weiß, dass ich den ganzen HTML- und PHP-Code in eine PHP-Datei schreiben könnte und das würde funktionieren, aber gibt es irgendeinen Weg, es mit dem zu tun, was ich jetzt habe.Mischen von PHP und HTML-Dateien

HTML-Code

<form action = "contact.php" method = "POST"> 
name: <input type = "text" name = "name"> <br> 
email: <input type = "text" name = "email"> <br> 
subject: <input type = "text" name = "subject"> <br> 
<input type = "submit" value = "submit" name = "submit"> <br> 
</form> 

PHP-Code

<?php 
$name = ""; 
$email = ""; 
$subject = ""; 
$nameError = ""; 
$emailError = ""; 
$subjectError = ""; 
$x = 5; 
function filterData($data) { 
$data = htmlspecialchars($data); 
$data = stripslashes($data); 
return $data; 
} 
$connection = mysqli_connect('x', 'x', 'x'); 
if (!connection) { 
    die('Could not connect: ' . mysqli_error()); 
} 

mysqli_select_db(contact); 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
//handles the name 
if (empty($name)) { 
$nameError = "please don't leave the name field blank"; 
} 
else { 
$name = filterData($_POST["name"]); 
} 
//handles the email 
if (empty($email)) { 
$emailError = "please don't leave the email field blank"; 
} 
else { 
$email = filterData($_POST["email"]); 
} 
//handles the subject 
if (empty($subject)) { 
$subjectError = "please don't leave this field blank"; 
} 
else { 
$subject = filterData($_POST["subject"]); 
} 

} 

echo $name; 
echo $subject; 
echo $email; 



?> 

Antwort

5

Sie tun zu früh Ihre empty überprüfen.

ändern

if (empty($name)) { 
    $nameError = "please don't leave the name field blank"; 
} 
else { 
    $name = filterData($_POST["name"]); 
} 

zu

$name = filterData($_POST["name"]); 
if (empty($name)) { 
    $nameError = "please don't leave the name field blank"; 
} 

Machen Sie ähnliche Änderungen an den anderen Variablendefinitionen.

Sie könnten auch Echo $nameError, $emailError und $subjectError um etwas besser zu sehen, was los ist.

1
<?php 
    $connection = mysqli_connect("x", "x", "x", "x"); 
    // Evaluate The Connection 
     if (mysqli_connect_errno()) { 
      echo mysqli_connect_error(); 
      exit(); 
     }; 
?><?php 
// Set Var 
    $name = ""; 
    $email = ""; 
    $subject = ""; 
    $nameError = ""; 
    $emailError = ""; 
    $subjectError = ""; 
    $p_test = false; $e_test = false; $n_test = false; $Error = ''; 
    $x = 5; 
// Check Post 
    if(isset($_POST['name'])){ 
     $n_test = true; 
     $name = mysqli_real_escape_string($connection,filter_var(($_POST['name']), FILTER_SANITIZE_STRING)); 
    }else{ 
     $Error.= ' Name Required '; 
    } 
    if(isset($_POST['email'])){ 
     $e_test = true; 
     $email = mysqli_real_escape_string($connection,filter_var(($_POST['email']), FILTER_SANITIZE_STRING)); 
    }else{ 
     $Error.= ' Email Required '; 
    } 
    if(isset($_POST['password'])){ 
     $p_test = true; 
     $password = mysqli_real_escape_string($connection,filter_var(($_POST['password']), FILTER_SANITIZE_STRING)); 
    }else{ 
     $Error.= ' Password Required '; 
    } 
// Database 
    if($n_test === true && $e_test === true && $p_test === true){ 
     $sql = "INSERT INTO users (name, email, password) VALUES('$name','$email','$password')"; 
      if (mysqli_query($connection, $sql)){$Error = 'success'; exit();} 
      else {echo 'Connection Error'; exit();} 
    }else{$Error = $Error.' Fields Required <hr>';} 
?> 
<div id="display_message"> 
    <?=$error;?> 
</div> 


<form action = "contact.php" method = "POST"> 
name: <input type = "text" name = "name"> <br> 
email: <input type = "text" name = "email"> <br> 
subject: <input type = "text" name = "subject"> <br> 
<input type = "submit" value = "submit" name = "submit"> <br> 
</form>