За последние 24 часа нас посетили 21540 программистов и 1024 робота. Сейчас ищут 669 программистов ...

я нуб

Тема в разделе "PHP для новичков", создана пользователем Серёга, 6 авг 2011.

  1. Серёга

    Серёга Активный пользователь

    С нами с:
    6 авг 2011
    Сообщения:
    2
    Симпатии:
    0
    я начал изучать php вчера, хочу создать сайт с регистрацией
    так вот я нашёл уроки, код для регистрации,
    но почему то часть кода php проявляется и не работает

    я пробовал через Денвер
    вот код
    подскажите ошибки
    Код (Text):
    1.  
    2. <html><head>
    3.   <title></title>
    4. </head>
    5.  
    6. <body>
    7.  
    8. <!--?php
    9.  
    10.      // Подключаем файлы:
    11. require_once("cfg.php"); // файл настроек
    12. require_once("funcs.php"); // вспомогательные функции
    13. require_once("connect_db.php"); // соединение с базой данных
    14.  
    15. session_start();  // Тут мы впервые встречаемся с технологией сессий.
    16. //Если вы с нею не знакомы,
    17. обязательно перейдите по ссылке
    18. //и изучите урок, в котором я рассказываю о них.
    19.  
    20. if(!isset($_POST['do_reg']))
    21. {
    22.    if($_SESSION['uid'] =='') { $_SESSION['uid'] = mt_rand(10000,99999); }
    23.  
    24.    echo '<form action="" method="post"-->
    25.     <table>
    26.     <tbody><tr><td>Логин:</td> <td><input name="login" size="20" type="text"></td></tr>
    27.     <tr><td>Пароль:</td> <td><input name="pass" size="20" type="password"></td></tr>
    28.  
    29.     <tr><td>Подтверждение пароля:</td>
    30.     <td><input name="pass_confirm" size="20" type="password"></td></tr>
    31.     <tr><td>НИК:</td> <td><input name="nick" size="20" type="text"></td></tr>
    32.     <tr><td>Мейл:</td> <td><input name="email" size="20" type="text"></td></tr>
    33.     <tr><td><img src="capcha/capcha.php?sid=%27.$_SESSION[%27uid%27].%27"></td>
    34.     <td><input name="sid" value="" size="5" type="text"></td></tr>
    35.  
    36.     <tr><td colspan="2"><input name="do_reg" value="Принять" type="submit"></td></tr>
    37.     </tbody></table>
    38.     ';
    39.  
    40. }
    41. else
    42. {
    43.    $login = clear($_POST['login']);
    44.    $pass = clear($_POST['pass']);
    45.    $nick = clear($_POST['nick']);
    46.    $email = clear($_POST['email']);
    47.    $date = date("Y-m-d");
    48.  
    49.    /* Код подтверждения формируем из
    50.    md5 - хэша конкатенации версии браузера пользователя,
    51.    его ip-адреса и текущего времени сервера.*/
    52.    $cnfrm_id = md5($_SERVER['USER_AGENT'].$_SERVER['REMOTE_ADDR'].mktime());
    53.  
    54.    // Далее проверяем введенные пользователем данные
    55.    $nick_q = mysql_query("Select nick From users Where nick=".$nick);
    56.  
    57.    // Проверка на существование в базе введенного ника
    58.    if(mysql_affected_rows()==0) // Если такого не существует, продолжаем
    59.    {
    60.       // Проверка на совпадение введенного кода и кода капчи.
    61.       if($_POST['sid'] == $_SESSION['uid'])
    62.       {
    63.          // Проверяем подтверждение пароля
    64.          if($pass == $_POST['pass_confirm']) // Если совпадают
    65.          {
    66.          // Проверка корректности введенного email - адреса.
    67.             if(checkMailAddr($email))
    68.             {
    69.                // Записываем в базу данных строку с данными нового пользователя.
    70.                if($reg_q = mysql_query("Insert Into users Values (NULL, '".$login."',
    71.                   md5('".$pass."'), '".$nick."', '".$email."', 0,
    72.                   '".$cnfrm_id."', '".$date."')"))
    73.                {
    74.                   // Пропишем заголовки http-запроса,
    75.                      которые нам нужно будет отправить с письмом.
    76.  
    77.                   // Версия протокола MIME по которому сформировано сообщение.
    78.                   $headers  = 'MIME-Version: 1.0' . "\r\n";
    79.                   //Формат представления содержимого сообщения.
    80.                   $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
    81.                   // Указываем отправителя, то бишь my_bomb_site.ru
    82.                   $headers .= 'From: Почта_отправителя - например,
    83.                     администрация сайта' . "\r\n";
    84.  
    85.                   //Здесь укажите электронный адрес, куда будут уходить сообщения
    86.                   $mailto = $email;
    87.                   $subject = "Подтверждение регистарции на сайте _Имя нашего сайта_";
    88.                   $message = 'Для активации аккаунта пройдите по ссылке
    89.                     <a href="http://www.my_bomb_site.ru%D0%90/reg_form.php?confirmation=%27.%0A$cnfrm_id.%27" target="_blank">http://АДРЕС_САЙТА/registration.php?confirmation='.
    90. $cnfrm_id.'</a>';                    $message .= 'или откройтее ее в новом окне.';
    91.                   //Отправляем весточку
    92.  
    93.                   if(sendmail($mailto,$subject,$message,$headers) !== false)
    94.                   {
    95.                      echo 'Регистрация завершена, теперь вы почетный член уважаемой
    96.                        группы крайне левых урюпинских эксгибиционистов!
    97.                        Проверьте почту и подтвердите ваше желание быть среди нас!';
    98.                   }
    99.                   else
    100.                   {
    101.                      echo "Че-т не так с почтальеном.. Сотню раз говорил
    102.                        баб на велике не подвозить..";
    103.                   }
    104.                }
    105.                else
    106.                {
    107.                   echo "Ошибочка в базе данных.. А-ля ".mysql_error();
    108.                }
    109.             }
    110.             else {echo "Шпыён какой ??? Укажи верный адрес!!";}
    111.          }
    112.          else {echo "Пароле-пароле куоте-муа, пароле-пароле-пароле же тьен при.. ";}
    113.       }
    114.       else
    115.       {
    116.          echo "Ты чо бот? Терминатор, тоже мне.. Если ты бот,
    117.            возьми флешку и засунь ее себе.. И не лезь куда не просят, поганец!";
    118.       }
    119.    }
    120.    else {echo "Придумай ник поинтересней.. Ну, такой.. Шоб поэратишней звучало.. Уникальный!";}
    121. }
    122.  
    123. ?&gt;
    124.  
    125.  
    126.  
    127. </body></html>
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это лечится

    session_start должен идти ДО любого другого вывода в браузер, соответственно до <html><head>...
    <!--?php - что это за ?
    и это тоже что за чудо ?
     
  3. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    PHP:
    1.  
    2. <?php session_start();
    3. require_once("cfg.php"); // файл настроек
    4. require_once("funcs.php"); // вспомогательные функции
    5. require_once("connect_db.php"); // соединение с базой данных
    6.  ?>
    7. <html><head>
    8.    <title></title>
    9.  </head>
    10.  
    11.  <body>
    12.  
    13.  <?php
    14.       // Подключаем файлы:
    15.    // Тут мы впервые встречаемся с технологией сессий.
    16.  //Если вы с нею не знакомы,
    17.  //и изучите урок, в котором я рассказываю о них.
    18.  if(!isset($_POST['do_reg']))
    19.  {
    20.     if($_SESSION['uid'] =='') { $_SESSION['uid'] = mt_rand(10000,99999); }
    21.     echo '<form action="" method="post"
    22.    <table>
    23.    <tbody><tr><td>Логин:</td> <td><input name="login" size="20" type="text"></td></tr>
    24.    <tr><td>Пароль:</td> <td><input name="pass" size="20" type="password"></td></tr>
    25.    <tr><td>Подтверждение пароля:</td>
    26.    <td><input name="pass_confirm" size="20" type="password"></td></tr>
    27.    <tr><td>НИК:</td> <td><input name="nick" size="20" type="text"></td></tr>
    28.    <tr><td>Мейл:</td> <td><input name="email" size="20" type="text"></td></tr>
    29.    <tr><td><img src="capcha/capcha.php?sid=%27.$_SESSION[%27uid%27].%27"></td>
    30.    <td><input name="sid" value="" size="5" type="text"></td></tr>
    31.    <tr><td colspan="2"><input name="do_reg" value="Принять" type="submit"></td></tr>
    32.    </tbody></table>
    33.    ';
    34.  }
    35.  else
    36.  {
    37.     $login = clear($_POST['login']);
    38.     $pass = clear($_POST['pass']);
    39.     $nick = clear($_POST['nick']);
    40.     $email = clear($_POST['email']);
    41.     $date = date("Y-m-d");
    42.  
    43.     /* Код подтверждения формируем из
    44.     md5 - хэша конкатенации версии браузера пользователя,
    45.     его ip-адреса и текущего времени сервера.*/
    46.     $cnfrm_id = md5($_SERVER['USER_AGENT'].$_SERVER['REMOTE_ADDR'].mktime());
    47.  
    48.     // Далее проверяем введенные пользователем данные
    49.     $nick_q = mysql_query("Select nick From users Where nick=".$nick);
    50.  
    51.     // Проверка на существование в базе введенного ника
    52.     if(mysql_affected_rows()==0) // Если такого не существует, продолжаем
    53.     {
    54.        // Проверка на совпадение введенного кода и кода капчи.
    55.        if($_POST['sid'] == $_SESSION['uid'])
    56.        {
    57.           // Проверяем подтверждение пароля
    58.           if($pass == $_POST['pass_confirm']) // Если совпадают
    59.           {
    60.           // Проверка корректности введенного email - адреса.
    61.              if(checkMailAddr($email))
    62.              {
    63.                 // Записываем в базу данных строку с данными нового пользователя.
    64.                 if($reg_q = mysql_query("Insert Into users Values (NULL, '".$login."',
    65.                   md5('".$pass."'), '".$nick."', '".$email."', 0,
    66.                   '".$cnfrm_id."', '".$date."')"))
    67.                 {
    68.                    // Пропишем заголовки http-запроса,
    69.                    
    70.  
    71.                    // Версия протокола MIME по которому сформировано сообщение.
    72.                    $headers  = 'MIME-Version: 1.0' . "\r\n";
    73.                    //Формат представления содержимого сообщения.
    74.                    $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
    75.                    // Указываем отправителя, то бишь my_bomb_site.ru
    76.                    $headers .= 'From: Почта_отправителя - например,
    77.                     администрация сайта' . "\r\n";
    78.  
    79.                    //Здесь укажите электронный адрес, куда будут уходить сообщения
    80.                    $mailto = $email;
    81.                    $subject = "Подтверждение регистарции на сайте _Имя нашего сайта_";
    82.                    $message = 'Для активации аккаунта пройдите по ссылке
    83.                     <a href="http://www.my_bomb_site.ru%D0%90/reg_form.php?confirmation=%27.%0A$cnfrm_id.%27" target="_blank">http://АДРЕС_САЙТА/registration.php?confirmation='.
    84.  $cnfrm_id.'</a>';                    $message .= 'или откройтее ее в новом окне.';
    85.                    //Отправляем весточку
    86.  
    87.                    if(sendmail($mailto,$subject,$message,$headers) !== false)
    88.                    {
    89.                       echo 'Регистрация завершена, теперь вы почетный член уважаемой
    90.                        группы крайне левых урюпинских эксгибиционистов!
    91.                        Проверьте почту и подтвердите ваше желание быть среди нас!';
    92.                    }
    93.                    else
    94.                    {
    95.                       echo "Че-т не так с почтальеном.. Сотню раз говорил
    96.                        баб на велике не подвозить..";
    97.                    }
    98.                 }
    99.                 else
    100.                 {
    101.                    echo "Ошибочка в базе данных.. А-ля ".mysql_error();
    102.                 }
    103.              }
    104.              else {echo "Шпыён какой ??? Укажи верный адрес!!";}
    105.           }
    106.           else {echo "Пароле-пароле куоте-муа, пароле-пароле-пароле же тьен при.. ";}
    107.        }
    108.        else
    109.        {
    110.           echo "Ты чо бот? Терминатор, тоже мне.. Если ты бот,
    111.            возьми флешку и засунь ее себе.. И не лезь куда не просят, поганец!";
    112.        }
    113.     }
    114.     else {echo "Придумай ник поинтересней.. Ну, такой.. Шоб поэратишней звучало.. Уникальный!";}
    115.  }
    116.  ?>
    117.  </body></html>
    Бесплатный совет: поучи ещё php...
     
  4. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    Gromo незнаю как ты, а я другого от человека который вчера начал изучать php а сегодня захотел сделать сайт с регистрации неожидал...
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Ric
    не знаю как другие, но я начинал с простейшего
    PHP:
    1. <?php echo 'Hello World!'; ?>
    и если кто-то начал изучение пхп не зная основ, но при этом на второй день решил сделать регистрацию на сайте испльзуя чьи-то готовые примеры...

    не знаю было ли твоё сообщение упрёком, либо констатацией факта, но в своём посте я попытался указать на все ошибки, которые заметил беглым взглядом, а не послал искать нормальный учебник.
     
  6. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    Тоже начинал с простейшего.
    Упрека в сообщение не было.
     
  7. Серёга

    Серёга Активный пользователь

    С нами с:
    6 авг 2011
    Сообщения:
    2
    Симпатии:
    0
    спаcибо
    и вот ещё вопрос у меня почти получилось но опять ошибка:
    Код (Text):
    1.  
    2. <?
    3. include_once("connect.php");
    4. if (isset($_POST['submit']))
    5. {
    6.     if(empty($_POST['login']))
    7.     {
    8.     echo 'Вы не ввели логин';
    9.     }
    10.     elseif(empty($_POST['password']))
    11.     {
    12.     echo 'Вы не ввели пароль';
    13.     }
    14.     elseif(empty($_POST['password2']))
    15.     {
    16.     echo 'Вы не ввели подтверждение пароля';
    17.     }
    18.     elseif($_POST['password'] != $_POST['password2'])
    19.     {
    20.     echo 'Введенные пароли не совпадают';
    21.     }
    22.     elseif(empty($_POST['email']))
    23.     {
    24.     echo 'Вы не ввели E-mail';
    25.     }
    26.     else
    27.         {
    28.         $login = $_POST['login'];
    29.         $password = $_POST['password'];
    30.         $password2 = $_POST['password2'];
    31.         $email = $_POST['email'];
    32.         $query = "SELECT `id`
    33.         FROM `users`
    34.         WHERE `login`='{$login}' AND `password`='{$password}'
    35.         ";
    36.         $sql = mysql_query($query) or die(mysql_error());
    37.         if (mysql_num_rows($sql) > 0)
    38.         {
    39.         echo 'Такой логин уже существует';
    40.         }
    41.        
    42.         else
    43.         {
    44.             $query = "INSERT INTO users(login , password , email )
    45.             VALUES ('$login', '$password', '$email')";
    46.             $result = mysql_query($query) or die(mysql_error());;
    47.             echo 'Регистрация успешно прошла';
    48.         }
    49.     }
    50. }
    51. ?>
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    что за ошибка? где описание действий?
    чуть выше есть топик о том как правильно задать вопрос, чтобы получить ответ