Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 20:14   #1
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию Ошибка в коде. Регистрация на php

Не работает регистрация, помогите пожалуйста разобраться в чем дело?


PHP код:
<title>
</title>
<body>
<?
if ($_POST)
{
    
$login trim($_POST['login']);
    
$password trim($_POST['password']);
    
$con_pas trim($_POST['con_pas']);
    
$email trim($_POST['email']);
    
$f_name trim($_POST['f_name']);
    
$s_name trim($_POST['s_name']);
               
    
$error false;
    
$errortext '<p>При регистрации на сайте произошли следующие ошибки:</p><ul>';    
    if (empty(
$login))
    {
        
$error true;
        
$errortext .= '<li>Вы не заполнели поле Имя пользователя!</li>';
    } else {
        if (!
preg_match('/^[a-z0-9]{4,12}$/i',$login))
        {
            
$error true;
            
$errortext .= '<li>Убедитесь что Логин содержит от 4 до 12 символов, и состоит из латинских символов и цифр</li>';
        }
    }
    
    if (empty(
$password))
    {
          
$error true;
        
$errortext .= '<li>Вы не заполнили поле Пароль!</li>';
    } else {
        if (!
preg_match('/^[a-z0-9]{1,20}$/i',$password))
        {
            
$error true;
            
$errortext .= '<li>Убедитесь что Пароль содержит от 6 до 20 символов, и состоит из латинских символов и цифр</li>';
        }        
    }
    
    if (empty(
$con_pas))
    {
        
$error true;
        
$errortext .= '<li>Вы не заполнили поле Подтверждение пароля!</li>';
    } else {
        if (
$password != $con_pas)
        {
            
$error true;
            
$errortext .= '<li>Поле Пароль и его Подтверждение не совпадают!</li>';
        }
    }
    
    if (empty(
$email))
    {
                
$error true;
        
$errortext .= '<li>Вы не заполнили поле E-Mail</li>';
    } else {
        if (!
preg_match('/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i',$email))
        {
            
$error true;
            
$errortext .= '<li>Не правильно заполнено поле E-Mail. E-mail должен иметь вид user@somehost.com</li>';
        }
    }    
    
$errortext .= '</ul>';
              if (
$error)
              {
                 echo(
$errortext);
              } else {
          
$db 'Site';
                  
$dbhost 'localhost';//Хост MySQL
                  
$dblogin 'root';
                  
$dbpassword '';
                  
$dbcon = @mysql_connect($dbhost,$dblogin,$dbpassword);                  
                  if (!
$dbcon)
                  {
                   echo 
"<p>Произошла ошибка при подсоединении к MySQL!</p>".mysql_error(); exit();
                  } else {                   
                   if (!@
mysql_select_db($db$dbcon))
                   {
                     echo(
"<p>Выбранной базы данных не существует!</p>");
                   }                  
        }                  
    
$sql mysql_query("INSERT INTO `Users` VALUES(id_user, '$login', '".md5($password)."', '$email', '$f_name', '$s_name');");
      if (
$sql)
        {
        echo(
'<p>Вы успешно зарегистрированы на сайте!</p>');
        }                  
                  
mysql_close($dbcon);                
              }
}

if ((
$_POST && $error) || !$_POST)
{
?>
    <h1 align="center">Регистрация нового пользователя</h1><br>
    <form action="register.php" enctype="multipart/form-data" method="post" name="reg">
    <fieldset title="информация">
        <legend title="информация" align="left">информация</legend>
        <input name="id_user" type="hidden" value="" />
        <table align="center" width="75%">
        <tr>
            <td align="left" width="50%">
                Введите логин:
            </td>
            <td>
                <input type="text" name="login" value="" <?php if ($_POST && $error && isset($_POST['login'])) { echo('value="'.$_POST['login'].'" '); } ?>/>
                <br>
            </td>
         </tr>
         <tr>
             <td align="left">
                Введите пароль:
            </td>
            <td>
                <input type="password" name="password" <?php if ($_POST && $error && isset($_POST['password'])) { echo('value="'.$_POST['password'].'" '); } ?>/><br>
            </td>
        </tr>
        <tr>
            <td align="left">
                Подтверждение:
            </td>
            <td>
                <input type="password" name="con_pas"<?php if ($_POST && $error && isset($_POST['con_pas'])) { echo('value="'.$_POST['con_pas'].'" '); } ?>/><br>
            </td>
        </tr>
        <tr>
            <td align="left" width="50%">
                E-mail:
            </td>
            <td>
                <input type="text" name="email"<?php if ($_POST && $error && isset($_POST['email'])) { echo('value="'.$_POST['email'].'" '); } ?>/><br>
            </td>
        </tr>
        </table>
    </fieldset>
<center>
<input type="submit" name="reg_but" value="Регистрация" height="50">
<input type="button" name="cancel" value="Отмена" onClick="top.location.href='index.php';" height="50">
<input type="reset" name="clear" value="Очистка" height="50">
<?php
}
?>

Последний раз редактировалось ilushka2306; 02.05.2011 в 20:17. Причина: не правильное название темы
ilushka2306 вне форума Ответить с цитированием
Старый 03.05.2011, 12:05   #2
mr.allty
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 23
По умолчанию

PHP код:
$sql mysql_query("INSERT INTO `Users` VALUES(id_user, '$login', '".md5($password)."', '$email', '$f_name', '$s_name');"); 
Что такое id_user? Если в Вашей таблице `Users` id_user есть primary key, auto_increment, то замените запрос на
PHP код:
$sql mysql_query("INSERT INTO `Users` VALUES(NULL, '$login', '".md5($password)."', '$email', '$f_name', '$s_name');") or die(mysql_error()); 
"Сильный" программист

Последний раз редактировалось mr.allty; 03.05.2011 в 12:07. Причина: Wrong php code tags
mr.allty вне форума Ответить с цитированием
Старый 03.05.2011, 13:02   #3
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию

Проблема решилась! В структуре таблицы в поле пароль надо было изменить длину.
ilushka2306 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить ошибку в коде на С !!!!! Dgarul Помощь студентам 0 31.05.2010 22:36
Найдите ошибку в коде Arch0000 Общие вопросы C/C++ 0 29.05.2010 07:32
Укажите ошибку в коде. DeamoniC Помощь студентам 2 09.06.2009 15:32
php регистрация sasha14486 PHP 4 11.05.2009 20:02
Mysql +регистрация на PHP KEV PHP 12 07.04.2009 16:40