2016-08-01 1 views
0

私は少しのPHPとSQLを試してみるためにWAMPを使用しています。私はここで非常に基本的なテーブルからのユーザ入力を取るしようとしている:

<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> 

と私は、データベースに入力し、ポストを取ることができるようにしたいです。私がこのコードで実現するためにしようとしてきた:

<?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'); 

?> 

私がしようとすると、「挿入する」を$ _POSTのように[「名前」]私はエラーを取得する:

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 

<?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'); 

?> 

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 

私はまた、コードの先頭で変数を設定しようとしました:私は「」私が手にこのエラーを削除しよう

私はというエラーメッセージになってしまった。この方法:

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

私は、$ _POSTを使用して別のスクリプトに名前をエコーすることができました、私はそれがSQLコマンドを使用して動作しません理由はわかりません。もし誰かが助けてくれる、そして/または私に学ぶためのいくつかのリソースを/私はそれを感謝するだろうから学ぶ!

答えて

1

';'がありません。後: $名= $ _ POST [「名前」]

0

こんにちはあなたが投稿したりしませ値についてチェックされていないため、未定義のインデックスの警告を取得します)いくつかの点

1に注意してください。値を使用する前にisset()を使用してください。

2)lowercaseまたはuppercaseに入力するためにエラーがないことを確認するために、phpのタグに任意の名前を付けるときはいつもlowercaseを使用してください。

3)あなたの言葉が長い場合はunderscoreを使用してください。e_mailを使用してください。私はあなたのsubmitボタンに名前を追加した

ですから、このphpコード

 <?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(); 
     } 
     ?> 

を使用することができますまた、あなたがしなければあなただけのトラブルを求めている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

e_mailname="Password"e-mailを変更しましたあなたの '$ _POST []'データを浄化しないと、ユーザは実際にあなたのDBを破壊する可能性があります。 –

関連する問題