2014-12-31 2 views
-4

Я пытаюсь выполнить запрос в PHP следующим образом:INSERT INTO работает в PhpMyAdmin, но не в PHP

<?php 
     $email = mysql_real_escape_string($_POST['email']); 
     if(isset($_POST['savedata'])){ 
      $sql = "INSERT INTO registered (email) 
        VALUES (
         '$email' 
        )"; 
      $result = mysql_query($sql); 

      if(!$result){ 
       echo 'something went wrong, please try again.'; 
       echo mysql_error(); 
      } else { 
       echo '<meta http-equiv="refresh" content="2; url = subscribed.php" />'; 
      } 
     } 
    ?> 

Триггер для выполнения исходит из следующего вида:

<form action="" method="post"> 
    <div class="form-group"> 
     <label class="sr-only" for="exampleInputEmail2">Email address</label> 
     <input type="email" name="email" id="email" class="form-control transparent" placeholder="Your email here..."> 
    </div> 
    <input type="submit" name="submit" class="btn btn-warning btn-fill">Notify Me</input> 
    <input type="hidden" name="savedata" value="savedata"/> 
</form> 

Это хорошо работает в phpMyAdmin (конечно, я меняю адрес электронной почты на реальный адрес), но ничего не происходит в php, кроме обновления. БД не обновляется, и я проверил соединение - он работает. Просьба сообщить. Спасибо!

+3

Я предлагаю вам прочитать вопросы инъекционного MySQL, поиск по StackOverflow о нем, как вы в противном случае будете в опасности с вашим приложением/сайтом. –

+1

[Не используйте mysql_ * extension] (http://www.php.net/en/mysql_query), поскольку он устарел. Вместо этого используйте [PDO] (http://php.net/manual/en/book.pdo.php) или [MySQLi] (http://php.net/manual/en/book.mysqli.php). –

+0

Я бы добавил, что вы также можете искать XSS, если это письмо поступает из неанитированного поля ввода –

ответ

1

Попробуйте следующий запрос:

$sql = "INSERT INTO registered (email) 
        VALUES (
         '".$email."' 
        )"; 
+0

Зачем это что-то менять? Переменные в строках с двойными кавычками оцениваются так же, как и это. –

+1

Это также плохая практика для настройки вашего SQL, поскольку это может привести к внедрению SQL Injection. – Russ

+0

Привет, ребята, большое вам спасибо за ваши материалы. Важно отметить, что я не разработчик. Только парень с некоторыми базовыми знаниями в php. Я понимаю риски, и это форма целевой страницы, чтобы проверить интерес. Я буду признателен, если кто-то может предоставить фиксированный код, поскольку я немного потерял .. Спасибо! – ybt

Смежные вопросы