2013-11-23 4 views
-1

Почему я не могу ввести данные в db?Данные не указаны в базе данных

<?php include ('./includes/header.php'); 
$error = ""; 
if (@$_POST['send']) { 
$name = mysql_real_escape_string(strip_tags($_POST['name'])); 
$email = mysql_real_escape_string(strip_tags($_POST['email'])); 
$message = mysql_real_escape_string(strip_tags($_POST['message'])); 
if ($name == "") { 
    $error = "Name cannot be left empty."; 
} 
else if ($email == "") { 
     $error = "Enter valid email id"; 
} 
else if ($message == "") { 
    $error = "Message cannot be left empty."; 
} 
else{ 
//send message 
$sendmessage = mysql_query("INSERT INTO contact VALUES('','$name','$email','$message')",$db1) or die(mysql_error()); 
$error = "Message sent!!"; 
    } 
} 
?> 
<meta property="og:title" content="Contact Us" /> 
<meta property="og:description" content="For any help, drop us a mail" /> 
<meta property="og:image" content="http://studyfoyer.org/images/contactus.jpg" /> 

<title>Contact Us</title> 
</head> 
<?php include('includes/navigation.php');?> 


    <div class="container"> 
     <div class="row"> 

      <form class="log-page" action="contact.php" method="POST"> 

       <h2 class="form-signin-heading">Get in touch</h2> 
       <div class="input-prepend"> 
        <label for="InputUsername">Name</label> 
        <input type="text" class="form-control" name='name' placeholder="Name" required autofocus> 
       </div> 
       <div class="input-prepend"> 
        <label for="InputEmail">Email</label> 
        <input type="email" class="form-control" name='email' placeholder="Email address" required> 
       </div> 
       <div class="input-prepend"> 
        <label for="InputMessage">Message</label> 
        <textarea class="form-control" rows="3" name="message" placeholder="Your message" required></textarea> 
       </div> 
       <div class="controls form-inline"> 
        <button class="btn btn-primary" name='send' type="submit">Send</button> 
       </div> 

        <?php echo $error; ?> 
       </div> 
      </form> 

     </div> 
    </div> 

Db подключение осуществляется через header.php Я два веб-сайта (как на локальном хосте), используя ту же БД, для контактной информации. это может повлиять? Поскольку код, похоже, отлично работает на другом.

+0

Какая ошибка вы получаете и правильно ли инициирован '$ db1'? Вы убедились, что код соответствует условию 'else'? Кроме того, что вы уже пробовали? Предоставьте нам дополнительную информацию. – pbond

+0

ошибок нет. $ _POST не работает. Я использовал код раньше, и он хорошо работает –

+1

Что значит «' $ _POST', не работает »? Вы имеете в виду, что весь 'if-block' не выполняется в первую очередь, потому что' $ _POST' не установлен? Если '$ _POST' не установлен, убедитесь, что форма использует метод' $ _POST' для передачи данных на этот скрипт PHP. PS Почему вы подавляете ошибки с помощью '@'? Просто используйте 'isset' или' empty'. – pbond

ответ

0

Это должно быть if (isset($_POST['send'])) вместо if (@$_POST['send']). isset Функция вернет true - $ _POST ['send'] - "set". Те же файлы для подключения к db ничего не скажут.

Ваш код уязвим для SQL-инъекция. Вы должны использовать подготовленные инструкции для безопасного дезинфекции ввода пользователя.

+0

Спасибо, но как это работает раньше? вы можете объяснить немного подробнее? –

+0

Можете ли вы пролить свет, как безопасно ввести его? –

+0

Siddharth, для дезинфекции входных данных пользователя, чтобы безопасно хранить его в базе данных, вам нужно использовать подготовленные операторы и параметризованные запросы. См. [This] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/) и [это] (http://wiki.hashphp.org/ PDO_Tutorial_for_MySQL_Developers). Если какой-то ответ поможет вам не забыть его повышать :) – Shivam

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