2016-08-01 8 views
0

Ich benutze WAMP, um ein wenig PHP und SQL zu lernen. Ich versuche hier Benutzereingabe von einem sehr einfachen Tisch zu nehmen:

<form action="input.php" method="post" class="registration_form"/> 
    <fieldset> 
    <div class="elements"> 
     <label for="name">Username :</label> 
     <input type="text" id="name" name="name" size="25" /> 
    </div> 
    <div class="elements"> 
     <label for="e-mail">E-mail :</label> 
     <input type="text" id="e-mail" name="e-mail" size="25" /> 
    </div> 
    <div class="elements"> 
     <label for="Password">Password:</label> 
     <input type="password" id="Password" name="Password" size="25" /> 
    </div> 
    <div class="submit"> 
    <input type="hidden" name="formsubmitted" value="TRUE" /> 
     <input type="submit" value="Register" /> 
    </div> 
    </fieldset> 
</form> 

und ich möchte in der Lage, die Eingabe und Post an eine Datenbank zu übernehmen. Ich habe versucht, dies mit diesem Code geschehen zu lassen:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "test"; 

//Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
//Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 


$sql = "INSERT INTO MyGuests (name, email, password) 
VALUES ($_POST[name], $_POST[e-mail], $_POST[password])"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error;// 
} 

$conn->close(); 
var_dump('name', 'e-mail', 'password'); 

?> 

Wenn ich versuche, und legen Sie die "", wie in $ _POST [ "name"] Ich erhalte eine Fehlermeldung:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\input.php on line 16 

Wenn ich versuche, den „“ ich werde diesen Fehler zu entfernen:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\input.php on line 16 

ich auch die Variablen in dem Anfang des Codes zu setzen versucht:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "test"; 
$name=$_POST['name'] 

//Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
//Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 


$sql = "INSERT INTO MyGuests (name, email, password) 
VALUES ('name','email', 'password'); 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error;// 
} 

$conn->close(); 
var_dump('name', 'e-mail', 'password'); 

?> 

So kann ich mit einer Fehlermeldung, endete:

(!) Parse error: syntax error, unexpected '$conn' (T_VARIABLE) in C:\wamp\www\input.php on line 9 

ich den Namen in einem anderen Skript Echo konnte den $ _POST mit, ich bin nicht sicher, warum es nicht mit dem SQL-Befehl funktioniert. Wenn jemand aushelfen würde und/oder mir einige Ressourcen geben würde, von denen ich auch lernen/lernen könnte, würde ich das schätzen!

Antwort

1

Sie haben ein fehlendes ';' nach: $ name = $ _ POST [ 'name']

0

Hallo Bitte beachten Sie, einige Punkte

1) Sie werden Warnungen von undefinierten Index erhalten, weil Sie nicht über Werte Überprüfung gebucht werden oder nicht. Wir sollten isset() verwenden, bevor Sie Werte verwenden.

2) Zweiter Versuch lowercase zu verwenden, wenn Sie ein beliebigen Namen für jeden Tag in PHP geben um sicher zu sein, dass kein Fehler existiert wegen in lowercase oder uppercase zu tippen.

3) Versuchen Sie, underscore zu verwenden, wenn Ihr Wort lang ist, so verwenden Sie e_mail;

So können Sie diese php Code verwenden

 <?php 

     if(isset($_POST['register'])){ 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "test"; 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    //Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $name = $_POST['name']; 
    $email = $_POST['e_mail']; 
    $password = $_POST['password']; 
    $sql = "INSERT INTO MyGuests(name, email, password) VALUES('$name','$email','$password')"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error;// 
} 

$conn->close(); 
     } 
     ?> 

I Namen Ihrer submit Taste geändert auch e-mail-e_mail und name="Password" zu name="password"

<form action="input.php" method="post" class="registration_form"/> 
    <fieldset> 
    <div class="elements"> 
     <label for="name">Username :</label> 
     <input type="text" id="name" name="name" size="25" /> 
    </div> 
    <div class="elements"> 
     <label for="e-mail">E-mail :</label> 
     <input type="text" id="e_mail" name="e_mail" size="25" /> 
    </div> 
    <div class="elements"> 
     <label for="Password">Password:</label> 
     <input type="password" id="Password" name="password" size="25" /> 
    </div> 
    <div class="submit"> 
    <input type="hidden" name="formsubmitted" value="TRUE" /> 
     <input type="submit" value="Register" name="register" /> 
    </div> 
    </fieldset> 
</form> 
+0

Sie sind nur Ärger hinzugefügt haben, wenn Sie das tun Bereinigen Sie Ihre '$ _POST []' Daten nicht, der Benutzer könnte Ihre DB damit wirklich brechen. –