2013-12-13 4 views
-1

Я новичок в php. Я разработал код ниже, чтобы запустить php-форму.Сообщение о проверке не отображается php

если я нажимаю кнопку отправки. он не сообщает сообщение о требуемом поле. , пожалуйста, скажите мне, где ошибка в написании кода.

Благодаря

<?php include('header.php'); ?> 
<?php 
if (isset($_POST['submit'])) { 
if (empty($_POST['co_name']) || isset($_POST['co_name'])){ 
echo 'Field is empty'; 
exit(); 
} 
} 
?> 
<h1>Inquery </h1> 
<!--<div class="box effect3">--> 
<div id="frmsubmit"> 
<form class="email" name="form1" action="inquery.php" method="post"> 
<p>Contact Person <span>*</span></p> 
<input type="text" name="co_name" /> 
<p>Company Name <span>*</span></p> 
<input type="text" name="cname" /> 
<p>Address <span>*</span></p> 
<textarea name="address"></textarea></p> 

<p>Mobile Number <span>*</span></p> 
<input type="text" name="mobile" /> 

<p>E-mail <span>*</span></p> 
<input type="text" name="email" /> 
<p>Phone Number</p> 
<input type="text" name="ph" /> 
<p>Subject <span>*</span></p> 
<input type="text" name="subject" /> 
<p>Message <span>*</span></p> 
<textarea name="message"></textarea></p> 
<br /> 
<input class="send" type="submit" value="submit"> 
</form> 
<br /><br /><br /><br /><br /> 
</div><!--frmsubmit codes--> 
<!--</div>--><!--effect2 div--> 



<?php include('footer.php'); ?> 

Код inq_mail.php

<?php 
if(isset($_POST['email'])) { 

// EDIT THE 2 LINES BELOW AS REQUIRED 
$email_to = "[email protected]"; 
$email_subject = $_POST['subject']; 


function died($error) { 
    // your error code can go here 
    echo "We are very sorry, but there were error(s) found with the form you  
submitted. "; 
    echo "These errors appear below.<br /><br />"; 
    echo $error."<br /><br />"; 
    echo "Please go back and fix these errors.<br /><br />"; 
    die(); 
} 

// validation expected data exists 
if(!isset($_POST['name']) || 
    !isset($_POST['cname']) || 
    !isset($_POST['address']) ||  
    !isset($_POST['subject']) || 
    !isset($_POST['email']) || 
    !isset($_POST['mobile']) || 
    !isset($_POST['ph']) || 
    !isset($_POST['message'])) { 
    died('We are sorry, but there appears to be a problem with the form you 
submitted.');  
} 

$name = $_POST['name']; // required 
$cname = $_POST['cname']; // required 
$address = $_POST['address']; // required 
$subject = $_POST['subject']; // required 
$email_from = $_POST['email']; // required 
$mobile = $_POST['mobile']; // required 
$ph = $_POST['ph']; // required 
$message = $_POST['message']; // not required 

$error_message = ""; 




    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if(!preg_match($email_exp,$email_from)) { 
$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
} 


// $string_exp = "/^[A-Za-z .'-]+$/"; 
// if(!preg_match($string_exp,$name)) { 
// $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
// } 
// if(!preg_match($string_exp,$cname)) { 
// $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
// } 
// if(!preg_match($string_exp,$address)) { 
// $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
// } 
// if(!preg_match($string_exp,$mobile)) { 
// $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
// } 
// if(!preg_match ('/[^0-9]/', $element) || $mobile=="") { 
// $error_message .= 'Please enter Numeric Value Or Field required.<br />'; 
// } 
// if(!preg_match($string_exp,$subject)) { 
// $error_message .= 'Please fill the subject field.<br />'; 
// } 
// if(strlen($message) < 2) { 
// $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
// } 
// if(strlen($error_message) > 0) { 
// died($error_message); 
// } 

if ($name == "") 
{ 
echo "Field is empty"; 
} 
    $email_message = "Form details below.\n\n"; 

    function clean_string($string) { 
    $bad = array("content-type","bcc:","to:","cc:","href"); 
    return str_replace($bad,"",$string); 
} 

$email_message .= "<b>Name :</b> ".clean_string($name)."\n"; 
$email_message .= "<b>Subject :</b> ".clean_string($subject)."\n"; 
$email_message .= "<b>Email :</b> ".clean_string($email_from)."\n"; 
$email_message .= "<b>Email :</b> ".clean_string($email_from)."\n"; 
$email_message .= "<b>Message :</b> ".clean_string($message)."\n"; 



// create email headers 
$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 
?> 

<!-- include your own success html here --> 

Thank you for contacting us. We will be in touch with you very soon. 

<?php 
} 
?> 

ответ

2

изменения

<form class="email" name="form1" action="inquery.php" method="post"> 

в

<form class="email" name="form1" action="" method="post"> 

и

<input class="send" type="submit" name="submit" value="submit"> 
+0

спасибо alok ... Можете ли вы сказать мне, если я установил action = "inq_mail.php", то что нам нужно делать ... где inq_mail.php содержит код, который отправляет почту на указанный адрес электронной почты. – user3060235

+0

ничего не нужно, просто поместите action = "inq_mail.php" в форму и используйте $ _POST ['name'], чтобы получить все значения – user7789076

+0

, но он переместится на inq_mail.php без какого-либо поля предупреждений. – user3060235

0

Вы можете сделать это с HTML5, добавляя необходимый атрибут для ваших полей, как:

<!DOCTYPE html> 
<html> 
<body> 
<form action="http://google.com"> 
<input type="text" name="q" required/> 
<input type="submit" /> 
</form> 
</body> 
</html> 

enter image description here

Помните, что данные процесса PHP в стороне сервера, если вам нужна более сложная проверка на стороне клиента, вы должны использовать JavaScript (JQuery).

+1

Валидация на стороне клиента - это удобство для пользователя. Вы ** ДОЛЖНЫ ** проверять на стороне сервера независимо от того, что. – Ali

+0

спасибо Alitrixx ...i appriciate, о чем вы спрашиваете ... я также хочу сделать это одинаково – user3060235

0

@ user3060235 - пара точек расширения ...

  1. Развивая ответ ALOK в - ваша кнопка отправить не имеет атрибута имя на нем. Это важно для обеспечения того, чтобы поле формы привязывалось к переменной PHP $ _POST.
  2. Расширение ответа Ignacio - атрибут HTML5 очень полезен, но это делается только на стороне клиента. Хотя это хорошо с точки зрения пользователей, вам все равно нужно проверить параметры формы на стороне сервера. JavaScript: client-side vs. server-side validation
  3. При отправке формы и выполнении предыдущих предложений инструкция exit() не позволит пользователю снова увидеть форму для повторной отправки их ввода. Вы действительно можете этого захотеть в зависимости от того, как клиент спрашивает, но если вы не хотите, чтобы вам нужно было удалить оператор exit.
+0

спасибо user2910265 .. но я хочу решить мою проблему. Я предлагаю Lgnacio, который расскажет мне об обновлении версии html5. – user3060235

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