2017-01-27 19 views
-2

mysqlデータベースに購読エントリを作成しようとしています。フォームを送信するたびに、電子メールアドレスまたは入力値がデータベースに表示されていない間に新しいエントリが作成されます。 間違っている箇所を見つけてください。フォームの入力が更新されていません

<?php 
include 'dbh.php'; 
$subs=$_POST['$sub_email']: 
$sql="INSERT INTO subscribe(sub) VALUES('$subs')"; 
$result=mysqli_query($conect,$sql); 
header("Location:index.html"); 
?> 

<form class="form" method="post" action="subscribe.php" style="margin-top: 20px"> 
    <div class="input-group"> 
     <div class="input-group-addon">@</div> 
     <input type="email" class="form-control" name="subs_email" id="inlineFormInputGroup" placeholder="Your Email"> 
    </div> 
    <button type="submit" class="btn btn-success btn-lg" style="margin-top:5px " >Submit</button> 
</form> 
+1

**警告**: g mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/ manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

答えて

1

あなたのHTMLの入力はご$_POST配列のインデックスには、電子メールIDが存在しない場合は、次のコードを挿入してみてくださいsubs_email代わり$subs_email

$subs=$_POST['subs_email']: 
+0

ありがとうございます。 –

0

である必要があり、name="subs_email"

ので、属性を持っていることに注意してください:

<?php 
include 'dbh.php'; 
if(isset($_POST['subs_email'])) { 
    $subs = mysqli_real_escape_string($conect, $_POST['subs_email']); //escape variables for security 
     // insert if email id not exist 
    $result = mysqli_query($conect,"SELECT `sub` FROM `subscribe` WHERE `sub` = '".$subs."' LIMIT 1"); 
    if (mysqli_num_rows($result) <= 0) { { 
     $sql = "INSERT INTO subscribe (sub) VALUES('".$subs."')"; 
     $result = mysqli_query($conect,$sql); 
    } 
    header("Location:index.html"); 
} 
?> 

<form class="form" method="post" action="subscribe.php" style="margin-top: 20px"> 
    <div class="input-group"> 
     <div class="input-group-addon">@</div> 
     <input type="email" class="form-control" name="subs_email" id="inlineFormInputGroup" placeholder="Your Email"> 
    </div> 
    <button type="submit" class="btn btn-success btn-lg" style="margin-top:5px " >Submit</button> 
</form> **strong text** 
関連する問題