2017-01-27 3 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 имеет атрибут name="subs_email"

Таким образом, ваш индекс $_POST массив должен быть subs_email вместо $subs_email

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

Большое спасибо. –

0

Попробуйте следующий код вставки, если электронный идентификатор не существует :

<?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** 
Смежные вопросы