2014-12-20 3 views
0

У меня есть скрипт, который проверяет и отправляет данные в базу данных MySQL, но всякий раз, когда страница индекса обновляется или пересматривается на новой вкладке в том случае, если база данных заполняется. Заполненные данные BLANK. Я хочу остановить эту автоматическую повторную передачу данных, но не знаю, как это сделать.База данных заселяется на странице обновления

Это мой сценарий, который проверяет и отправляет данные в базу данных.

<?php include('includes/config.php'); 
    // define variables and set to empty values 
$nameErr = $contactErr = $cityErr = $serviceErr = ""; 
$name = $contact = $city = $service = ""; 

function test_input($data) 
    { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
    } 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    if (empty($_POST["name"])) { 
    $nameErr = "* Name is required"; 
    } else { 
    $name = test_input($_POST["name"]); 
    // check if name only contains letters and whitespace 
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
     $nameErr = "* Only letters and white space allowed"; 
    } 
    } 

    if (empty($_POST["contact"])) { 
    $contactErr = "* Contact is required"; 
    } else { 
    $contact = test_input($_POST["contact"]); 
    // check if contact number is well-formed 
    if (!preg_match("/^[0-9+]*$/",$contact)) { 
     $contactErr = "* Phone number should contain only numbers"; 
    } 
    } 

    if (empty($_POST["city"])) { 
    $cityErr = "* City is required"; 
    } else { 
    $city = test_input($_POST["city"]); 
    // check if city is valid 
    if (!preg_match("/^[a-zA-Z ]*$/",$city)) { 
     $cityErr = "* Only letters and white space allowed"; 
    } 
    } 

    if (empty($_POST["service"])) { 
    $serviceErr = "* Service is required"; 
    } else { 
    $service = test_input($_POST["service"]); 
    } 
} 

    $myDb->connect(); 
    $query = "INSERT INTO user_profile (name, city, contact, service)VALUES('$name', '$city', '$contact', '$service')"; 
    mysql_query($query) or die(mysql_error()); 
    $myDb->close(); 
    $display_error = "Data submitted successfully."; 


?> 

Это моя форма.

<form action="index.php" method="post"> 

    <table style="line-height: 50px;"> 
     <tr> 
      <th>Name&nbsp;&nbsp;&nbsp;</th> 
      <td><input type="text" name="name" placeholder="Your Name" style="height:30px; border:1px; width:300px; border-radius:5px; text-indent:15px"><span class="error"> <?php echo $nameErr;?></span></td> 
     </tr> 
     <br> 
     <tr> 
      <th>Phone&nbsp;&nbsp;&nbsp;</th> 
      <td><input type="text" name="contact" placeholder="Your Contact Number" style="height:30px; border:1px; width:300px; border-radius:5px; text-indent:15px"><span class="error"> <?php echo $contactErr;?></span></td> 
     </tr> 
     <tr> 
      <th>City&nbsp;&nbsp;&nbsp;</th> 
      <td><input type="text" name="city" placeholder="Your City Name" style="height:30px; border:1px; width:300px; border-radius:5px; text-indent:15px"><span class="error"> <?php echo $cityErr;?></span></td> 
     </tr> 
     <tr> 
      <th>Service&nbsp;&nbsp;&nbsp;</th> 
      <td><select name="service" autocomplete="off" style="height:30px; border:1px; width:300px; border-radius:5px;"> 
       <option value="">Select your service</option> 
       <option value=service1>Service 1</option> 
       <option value=service2>Service 2</option> 
       <option value=service3>Service 3</option> 
       <option value=service4>Service 4</option> 
       </select><span class="error"> <?php echo $serviceErr;?></span></td> 
     </tr> 
    </table> 
    <input type="submit" name="submit" value="Submit" style="height: 40px; width: 140px; border-radius: 5px; margin-left: 140px;margin-top: 20px;"> 
    </form> 

Я не знаю, какую ошибку я делаю. Каждый раз, когда я открываю свою страницу index.php, которая содержит форму, автоматически добавляется новая BLANK DATABASE. Как я могу это предотвратить? Пожалуйста, помогите мне.

ответ

0

$myDb->connect(); $query = "INSERT INTO user_profile (name, city, contact, service)VALUES('$name', '$city','$contact', '$service')"; mysql_query($query) or die(mysql_error()); $myDb->close(); $display_error = "Data submitted successfully.";

Это должно быть внутри, если заявление

+0

вы можете показать мне, как? – Kanishk

+0

этот оператор должен находиться внутри оператора if, где вы проверяете, является ли запрос POST, также проверьте, не была ли у вас какая-либо ошибка перед выполнением этого кода. –

0

Изменить

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

Для

if(isset($_POST['submit'])){ 
Смежные вопросы