2016-06-06 2 views
0

У меня длинная контактная форма на моем веб-сайте автомобиля, так как вы можете видеть, что клиент должен заполнить форму с его или ее именем, автомобильным концом автомобиля и мобильным номером и т. Д., Как вы видите, у меня есть условие для электронной почты и если оно не действительно это дает массаж ошибки и очистить все предыдущие поля, которые заполнили клиент,контактная форма изменить только одно поле php

<?php 
error_reporting(0); 
include("config_mashin.php"); 
$namee = mysqli_real_escape_string($connect, $_POST['namee']); 
$modell = mysqli_real_escape_string($connect, $_POST['modell']); 
$tipp = mysqli_real_escape_string($connect, $_POST['tipp']); 
$colorr = mysqli_real_escape_string($connect, $_POST['colorr']); 
$exchangee = mysqli_real_escape_string($connect, $_POST['exchangee']); 
$pricee = mysqli_real_escape_string($connect, $_POST['pricee']); 
$loan = mysqli_real_escape_string($connect, $_POST['loan']); 

$family = mysqli_real_escape_string($connect, $_POST['family']); 
if (!empty($_POST['emaill'])) { 
    $emaill = $_POST['emaill']; 
    if (!preg_match("/^[_a-z0-9]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $emaill)){ 
     $error .= "The e-mail address you entered is not valid. <br/>"; 
     echo"$error"; 
    } 
} 
$mobilee = mysqli_real_escape_string($connect, $_POST['mobilee']); 
$phonee = mysqli_real_escape_string($connect, $_POST['phonee']); 
if(isset($_POST['submit']) && empty($error)){ 
//insert to database 
    $insert =mysqli_query($connect,"INSERT INTO $db_table VALUES (i dont write this part to simplify code)"); 

} 

?> 

есть ли способ, чтобы сохранить другие поля нетронутыми и клиент просто изменить адрес электронной части. пожалуйста, помогите

+0

Да, в вашем HTML-коде вы проверяете, что каждый из полей '$ _POST' имеет значение или нет, если оно заменяет значение в HTML – RiggsFolly

+0

. Ваш скрипт подвержен риску [SQL Injection Attack] (http : //stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Посмотрите, что случилось с [Little Bobby Tables] (http://bobby-tables.com /) Даже [если вы избегаете входных данных, это небезопасно!] (Http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) Используйте [ подготовленный оператор и параметризованные заявления] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+0

Большое спасибо за ваш ответ. и о части впрыска sql. Я думал, потому что я использовал mysqli_real_escape_string, это безопасно. что еще я должен сделать? – Malekian

ответ

0

Вы можете сделать что-то вроде:

<form method='post' action=''> 
    <input type='text' name='name' value='<?php echo isset($_POST['name']) ? $_POST['name']: ""; ?>' /> 
    <input type='submit' name='submit' value='Submit' /> 
</form> 

и так далее для каждого из вас полей.

+0

Большое спасибо за ваш ответ. он работал в ящиках ввода, но я не могу обработать его в выпадающих списках и флажках – Malekian

+0

Malekian

+0

options: ' ', checkbox:' name = "checkbox_name" value = "checkbox_value" /> ' – xjmdoo

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