Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка
 
 автор: uvajs   (15.06.2010 в 01:25)   письмо автору
 
 

Здравствуйте! хотел реализовать регистрация на сайте.

такой вопрос, при проверка заполнен ли или не правильно введен данные выводится сообщение

if (strlen($login) < 4 or strlen($login) > 20) {

exit ("Логин должен состоять не менее чем из 4 символов и не более чем из 20."); //останавливаем выполнение сценариев

}

вот в таком случаи у меня из-за exit(); не выводиться правый блок сайта и footer тоже.

скажите пожалуйста, как правильно писать проверку, чтобы в таком случаи выводилось сообщ. об не правильном вводе данных и правый блок тоже?

  Ответить  
 
 автор: Valick   (15.06.2010 в 01:29)   письмо автору
 
   для: uvajs   (15.06.2010 в 01:25)
 

вместо exit сделайте echo, но это горю не поможет, это всего лишь верхушка айсберга.

  Ответить  
 
 автор: uvajs   (15.06.2010 в 01:32)   письмо автору
 
   для: Valick   (15.06.2010 в 01:29)
 

>вместо exit сделайте echo, но это горю не поможет, это всего лишь верхушка айсберга.

тогда выводится след. сообщение, пробовал... а другого варианта нету?

  Ответить  
 
 автор: Usta   (15.06.2010 в 01:34)   письмо автору
 
   для: uvajs   (15.06.2010 в 01:25)
 

Вот небольшой пример. Собираем ошибки при заполнении формы, если ошибки есть то выводим их.

<?
function err_get($err)
{
    foreach(
$err as $val)
    {
        echo 
"<p><font style='color:red;'>".$val."</font></p>";
    }
}
if( (
strlen($login) < 4) || (strlen($login) >20) ) $err[] =  "Логин должен быть от 4 до 20 символов.";
if(!
preg_match("|^[0-9a-zA-Z_\-]{4,16}$|i"$login )) 
$err[] = "Логин должен состоять из латинских букв или цифр";
if(!
$err)
    {
          ........ 
// Тут если нет ошибок то заходим на сайт.
    
}
else 
err_get($err);
?>

  Ответить  
 
 автор: uvajs   (15.06.2010 в 01:41)   письмо автору
 
   для: Usta   (15.06.2010 в 01:34)
 

>Вот небольшой пример.
не совсем понял, да и я не силен в php\ пожалуйсте подправьте код если вам не трудно


 <?php

if (isset($_POST['login'])) 
$login $_POST['login'];
 if (
$login == '') { unset($login);} }
if (isset(
$_POST['password'])) 
$password $_POST['password']; if ($password =='') { unset($password);} }

if (isset(
$_POST['code'])) { $code $_POST['code']; if ($code == '') { unset($code);} } 

if (isset(
$_POST['email'])) { $email $_POST['email']; if ($email == '') { unset($email);} } 

if (empty(
$login) or empty($password)or empty($code) or empty($email)) 
{
exit (
"Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); 

}
if (!
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$email)) {exit ("Неверно введен е-mail!");}


function 
generate_code() {
                
    
$hours date("H"); // час       
    
$minuts substr(date("H"), 1);// минута 
    
$mouns date("m");    // месяц             
    
$year_day date("z"); // день в году

    
$str $hours $minuts $mouns $year_day;     $str md5(md5($str)); 
    
$str strrev($str);// 
    
$str substr($str36);    

    
$array_mix preg_split('//'$str, -1PREG_SPLIT_NO_EMPTY);
    
srand ((float)microtime()*1000000);
    
shuffle ($array_mix);
    return 
implode(""$array_mix);
}

function 
chec_code($code){
    
$code trim($code);
    
$array_mix preg_split ('//'generate_code(), -1PREG_SPLIT_NO_EMPTY);
    
$m_code preg_split ('//'$code, -1PREG_SPLIT_NO_EMPTY);

    
$result array_intersect ($array_mix$m_code);
if (
strlen(generate_code())!=strlen($code))
{
    return 
FALSE;
}
if (
sizeof($result) == sizeof($array_mix))
{
    return 
TRUE;
}
else
{
    return 
FALSE;
}
}

if (!
chec_code($_POST['code']))
{
exit (
"Вы ввели неверно код с картинки.");
}


$login stripslashes($login);
$login htmlspecialchars($login);

$password stripslashes($password);
$password htmlspecialchars($password);

//удаляем лишние пробелы
$login trim($login);
$password trim($password);


// дописываем новое********************************************

//добавляем проверку на длину логина и пароля
if (strlen($login) < or strlen($login) > 20) {

exit (
"Логин должен состоять не менее чем из 4 символов и 
не более чем из 20."
);
}
if (
strlen($password) < or strlen($password) > 20) {

exit (
"Пароль должен состоять не менее чем из 4 символов и 
не более чем из 20."
);
}

if (empty(
$_FILES['fupload']['name']))
{
$avatar "avatars/net-avatara.jpg";}

else 
{
$path_to_90_directory 'avatars/';
    
if(
preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))
     {    
              
        
$filename $_FILES['fupload']['name'];
        
$source $_FILES['fupload']['tmp_name'];    
        
$target $path_to_90_directory $filename;
        
move_uploaded_file($source$target);
    if(
preg_match('/[.](GIF)|(gif)$/'$filename)) {
    
$im imagecreatefromgif($path_to_90_directory.$filename) ;
     }
    if(
preg_match('/[.](PNG)|(png)$/'$filename)) {
    
$im imagecreatefrompng($path_to_90_directory.$filename) ;
    }
    
    if(
preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/'$filename)) {
        
$im imagecreatefromjpeg($path_to_90_directory.$filename);
    }
    
// Создание квадрата 90x90
// dest - результирующее изображение 
// w - ширина изображения 
// ratio - коэффициент пропорциональности 

$w 90;

// создаём исходное изображение на основе 
// исходного файла и определяем его размеры 
$w_src imagesx($im);
$h_src imagesy($im);
         
$dest imagecreatetruecolor($w,$w); 

         if (
$w_src>$h_src
         
imagecopyresampled($dest$im00,
                          
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
                          
0$w$wmin($w_src,$h_src), min($w_src,$h_src)); 

         if (
$w_src<$h_src
         
imagecopyresampled($dest$im0000$w$w,
                          
min($w_src,$h_src), min($w_src,$h_src)); 

         if (
$w_src==$h_src
         
imagecopyresampled($dest$im0000$w$w$w_src$w_src); 
         

$date=time();
imagejpeg($dest$path_to_90_directory.$date.".jpg");

$avatar $path_to_90_directory.$date.".jpg";

$delfull $path_to_90_directory.$filename
unlink ($delfull);
}
else 
         {
        
exit (
"Аватар должен быть в формате <strong>JPG,GIF или 
PNG</strong>"
);
         }
}

$password md5($password);

$password strrev($password);

$password $password."b3p6f";

$result mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow mysql_fetch_array($result);
if (!empty(
$myrow['id'])) {

exit (
"Извините, введённый вами логин уже зарегистрирован. 
Введите другой логин."
);

}

$result2 mysql_query ("INSERT INTO users 
(login,password,avatar,email,date) VALUES
('
$login','$password','$avatar','$email',NOW())");
if (
$result2=='TRUE')
{

$result3 mysql_query ("SELECT id FROM users WHERE login='$login'",$db);
$myrow3 mysql_fetch_array($result3);
$activation md5($myrow3['id']).md5($login);

$subject "Подтверждение регистрации";
$message "Здравствуйте! Спасибо за регистрацию на 
citename.ru\nВаш логин: "
.$login."\n
Перейдите по ссылке, чтобы активировать ваш 
аккаунт:\nhttp://engells.com/activation.php?login="
.$login."&code=".$activation."\nС уважением,\n
Администрация citename.ru"
;
mail($email$subject$message"Content-type:text/plane; Charset=windows-1251\r\n");    
echo 
"Вам на E-mail выслано письмо с cсылкой, для 
подтверждения регистрации. Внимание! Ссылка действительна 1 
час. <a href='index.php'>Главная страница</a>"
;
}

else {
exit (
"Ошибка! Вы не зарегистрированы.");

     }
?>       
 

  Ответить  
 
 автор: Trianon   (15.06.2010 в 02:56)   письмо автору
 
   для: uvajs   (15.06.2010 в 01:41)
 

Этот код стоит изрядно подправить... его автору.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования