2014-12-02 2 views
0

В основном это моя регистрационная форма. Я хочу сделать так, если все поля не будут заполнены, это приведет к ошибке. Что мне делать? Я также хотел бы отобразить ошибку в виде $ msgКак я могу дать ошибку, если все поля не заполнены?

<?php 
include'db.php'; 
$msg=''; 
if (empty($_POST['']) 
|| empty($_POST['password']) 
|| empty($_POST['repassword']) 
|| empty($_POST['user_firstname']) 
|| empty($_POST['user_lastname']) 
){ 
// details sent Form 
$company=mysql_real_escape_string($_POST['company']); 
$address=mysql_real_escape_string($_POST['address']); 
$email=mysql_real_escape_string($_POST['email']); 
$phone=mysql_real_escape_string($_POST['phone']); 
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/';  //this defines what a valid email should be 

if(preg_match($regex, $email)) 
{ 
$activation=md5($email.time()); // Encrypted email+timestamp, so randomly generated and unique 

$count=mysql_query("SELECT uid FROM preciousmetals WHERE email='$email'") or die(mysql_error()); 
if(mysql_num_rows($count) < 1) 
{ 
mysql_query("INSERT INTO preciousmetals(company,address,email,phone,activation) VALUES('$company','$address','$email','$phone','$activation');"); 



// sending email 

include 'smtp/Send_Mail.php'; 
$to=$email; 
$subject="Email verification"; 
$body='Hello, we need to make sure you are human. Please verify your email and get started using your Website account. '.$base_url.''.$activation.''; 

Mail($to,$subject,$body); 

$msg= "Registration successful, please activate email.";  


} 
else 
{ 
$msg= '<font color="#cc0000">This email is already in use, please enter a different one.</font>'; 
} 

} 
else 
{ 
$msg = '<font color="#cc0000">The email you have entered is invalid, please try again. </font>'; 
} 


} 
?> 

Благодарим за помощь!

+0

'md5 ($ email.time())' это не случайно все! –

+0

его только для школы, и они предложили использовать это. – willstaff

+1

Затем я предлагаю вам расспросить все, что они учат вас об информационной безопасности. И человеку я ненавижу это, когда люди отклоняют совет с «lol, это только для школы, мне не нужно писать хороший код» –

ответ

0

Просто сделать

if (empty($_POST['password']) || empty($_POST['repassword']) || empty($_POST['user_firstname']) || empty($_POST['user_lastname'])){ 
    $msg = 'You have not filled all fiels'; 
} else { 
    // details sent Form 
    ...... 
} 
echo $msg; 

А также проверить filter_var() для проверки электронной почты, его гораздо более лучше, чем REGEX http://php.net/manual/en/filter.examples.validation.php

+0

после этого, теперь он отображает мой msg «Это письмо уже используется, пожалуйста, введите другое. ' все время – willstaff

+0

Может быть, потому, что вы выбираете 'uid' вместо' email' в вашей базе данных? – John