За последние 24 часа нас посетили 8544 программиста и 439 роботов. Сейчас ищут 314 программистов ...

Нужна помощь с отредактированным кодом

Тема в разделе "PHP для новичков", создана пользователем TiinnyTerner, 26 май 2020.

  1. TiinnyTerner

    TiinnyTerner Новичок

    С нами с:
    26 май 2020
    Сообщения:
    8
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3.  
    4.     if(isset($_POST["btn_submit_register"])){
    5.         if(isset($_POST["captcha"])){
    6.             $captcha = trim($_POST["captcha"]);
    7.             if($_SESSION["rand_captcha"] != $captcha){
    8.                 $message = "<p class='message_error'><strong>Ошибка!</strong> Вы ввели не правильную капчу </p>";
    9.                 redirect_to($message, 'form_register.php');
    10.             }
    11.             //======= Обработка имени ============
    12.             if(isset($_POST["first_name"])){
    13.                 $first_name = trim($_POST["first_name"]);
    14.                 if(!empty($first_name)){
    15.                     $first_name = htmlspecialchars($first_name, ENT_QUOTES);
    16.                 }else{
    17.                     $message = "<p class='message_error'><strong>Ошибка!</strong> Укажите Ваше имя</p>";
    18.                     redirect_to($message, 'form_register.php');
    19.                 }
    20.             }else{
    21.                 $message = "<p class='message_error'><strong>Ошибка!</strong> Отсутствует поле с именем </p>";
    22.                 redirect_to($message, 'form_register.php');
    23.             }
    24.             //======= Обработка фамилии ============
    25.             if(isset($_POST["last_name"])){
    26.                 $last_name = trim($_POST["last_name"]);
    27.                 if(!empty($last_name)){
    28.                     $last_name = htmlspecialchars($last_name, ENT_QUOTES);
    29.                 }else{
    30.                     $message = "<p class='message_error'><strong>Ошибка!</strong> Укажите Вашу фамилию</p>";
    31.                     redirect_to($message, 'form_register.php');
    32.                 }
    33.             }else{
    34.                 $message = "<p class='message_error'><strong>Ошибка!</strong> Отсутствует поле с фамилией </p>";
    35.                 redirect_to($message, 'form_register.php');
    36.             }
    37.             //======= Обработка адреса электронной почты ============
    38.             if(isset($_POST["email"])){
    39.                 $email = trim($_POST["email"]);
    40.                 if(!empty($email)){
    41.                     $email = htmlspecialchars($email, ENT_QUOTES);
    42.                     $reg_email = "/^[a-z0-9][a-z0-9\._-]*[a-z0-9]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+/i";
    43.                     if(!preg_match($reg_email, $email)){
    44.                         $message = "<p class='message_error'><strong>Ошибка!</strong> Вы ввели адрес электронной почты в неправильном формате </p>";
    45.                         redirect_to($message, 'form_register.php');
    46.                     }
    47.                     $query_select_user = $mysqli->query("SELECT `id` FROM `users` WHERE `email` = '".$email."'");
    48.                     if(!$query_select_user){
    49.                         $message = "<p class='message_error'><strong>Ошибка!</strong> Ошибка в запросе к Базе Данных, при проверки существования пользователя с таким адресом электронной почты. </p><p>Описание ошибки: $mysqli->error <br /> Код ошибки: $mysqli->errno </p>";
    50.                         redirect_to($message, 'form_register.php');
    51.                     }
    52.                     if($query_select_user->num_rows == 1){
    53.                         $message =  "<p class='message_error'><strong>Ошибка!</strong> Пользователь с таким адресом электронной почты уже зарегистрирован</p>";
    54.                         redirect_to($message, 'form_register.php');
    55.                     }
    56.                 }else{
    57.                     $message = "<p class='message_error'><strong>Ошибка!</strong> Укажите адрес Вашей электронной почты</p>";
    58.                     redirect_to($message, 'form_register.php');
    59.                 }
    60.             }else{
    61.                 $message = "<p class='message_error'><strong>Ошибка!</strong> Отсутствует поле для ввода адреса электронной почты</p>";
    62.                 redirect_to($message, 'form_register.php');
    63.             }
    64.             //======= Обработка пароля ============
    65.             if(isset($_POST["password"])){
    66.                 $password = trim($_POST["password"]);
    67.                 if(!empty($password)){
    68.                     $password = htmlspecialchars($password, ENT_QUOTES);
    69.                     $password = md5($password."top_secret");
    70.                 }else{
    71.                     $message = "<p class='message_error'><strong>Ошибка!</strong> Укажите Ваш пароль</p>";
    72.                     redirect_to($message, 'form_register.php');
    73.                 }
    74.             }else{
    75.                 $message = "<p class='message_error'><strong>Ошибка!</strong> Отсутствует поле для ввода пароля</p>";
    76.                 redirect_to($message, 'form_register.php');
    77.             }
    78.             $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ('".$first_name."', '".$last_name."', '".$email."', '".$password."') ");
    79.             if(!$result_query_insert){
    80.                 $message = "<p class='message_error'><strong>Ошибка!</strong> При регистрации произошла ошибка. </p><p>Описание ошибки: $mysqli->error <br /> Код ошибки: $mysqli->errno </p>";
    81.                 redirect_to($message, 'form_register.php');
    82.             }else{
    83.                 $message = "<p class='success_message'>Регистрация прошла успешно! <br /> Теперь Вы можете авторизоваться используя Ваш адрес электронной почты ( Email ) и пароль </p>";
    84.                 redirect_to($message, 'form_auth.php');
    85.             }
    86.             $mysqli->close();
    87.         }else{
    88.          
    89.             $message = "<p class='message_error'><strong>Ошибка!</strong> Отсутствует поле для ввода капчи </p>";
    90.             redirect_to($message, 'form_register.php');
    91.         }
    92.     }else{
    93.         exit("<p><strong>Ошибка!</strong> Вы зашли на эту страницу напрямую, поэтому нет данных для обработки. Вы можете перейти на <a href=".$address_site.">главную страницу</a>.</p>");
    94.     }
    95.     function redirect_to($message, $address_page){
    96.     $_SESSION["serever_message"] = $message;
    97.     header("HTTP/1.1 301 Moved Permanently");
    98.     header("Location: ".$address_site."/".$address_page);
    99.     exit();
    100.     }
    101.  
    102. ?>
    103.  
    104.  
    105. Код жалуется на функцию
    106. function redirect_to($message, $address_page){
    107.     $_SESSION["serever_message"] = $message;
    108.     header("HTTP/1.1 301 Moved Permanently");
    109.     header("Location: ".$address_site."/".$address_page);
    110.     exit();
    111.     }
    112. и выдает ошибку
    113. [ATTACH=full]4869[/ATTACH]
     
    #1 TiinnyTerner, 26 май 2020
    Последнее редактирование: 26 май 2020
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.853
    Симпатии:
    449
    --- Добавлено ---
    Про область видимости переменных почитайте.
     
  3. TiinnyTerner

    TiinnyTerner Новичок

    С нами с:
    26 май 2020
    Сообщения:
    8
    Симпатии:
    0
    боюсь что у меня на это времени нет
    --- Добавлено ---
    Просто у меня курсовая работа горит, а я уже не знаю что мне делать
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    2.853
    Симпатии:
    449
    «Просто» нефиг браться за то, в чем нифига не сечете. Особенно когда сроки поджимают.

    В общем сделайте какую-нибудь фигню и больше так не делайте :)
     
  5. TiinnyTerner

    TiinnyTerner Новичок

    С нами с:
    26 май 2020
    Сообщения:
    8
    Симпатии:
    0
    Лучшая поддержка человека, который начал изучать php
     
  6. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.196
    Симпатии:
    376
    @TiinnyTerner тут очень много времени надо лопатить все что у тебя, вот в таком духе переделай свой код:
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $address_site = 'form_register.php';
    5. $href_message = "Вы можете перейти на <a href=".$address_site."> главную страницу </a>";
    6.  
    7. if( !isset(
    8.    $_POST["first_name"],
    9.    $_POST["last_name"],
    10.    $_POST["email"],
    11.    $_POST["password"],
    12.    $_POST["captcha"],
    13.    $_POST["btn_submit_register"]) )
    14. {
    15.      $error_message = ' Вы зашли на эту страницу напрямую, поэтому нет данных для обработки. ';
    16.      exit("<p><strong>Ошибка!</strong>" . $error_message. $href_message . "</p>");
    17. }
    18.  
    19.  
    20. if( !isset( $_SESSION["rand"] ) )
    21. {
    22.     $error_message = ' Отсутствует проверечный код, то есть код капчи. ';
    23.     exit("<p><strong>Ошибка!</strong>" . $error_message . $href_message . "</p>");
    24. }
    25.  
    26. $captcha = trim($_POST["captcha"]);
    27. $first_name = trim($_POST["first_name"]);
    28. $last_name = trim($_POST["last_name"]);
    29. $email = trim($_POST["email"]);
    30. $password = trim($_POST["password"]);
    31.  
    32. $_SESSION["error_messages"] = '';
    33. $_SESSION["success_messages"] = '';
    34.  
    35. if( $_SESSION["rand"] != $captcha  )
    36. {
    37.    $error_message = "<p class='mesage_error'><strong>Ошибка!</strong> Вы ввели неправильную капчу </p>";
    38.    redirect_to( $error_message );
    39. }
    40.  
    41. // и т.д.
    42.  
    43. function redirect_to( $error_message )
    44. {
    45.     $_SESSION["error_messages"] = $error_message;
    46.     header("Location: form_register.php");
    47.     die();
    48. }
    Если по блочно все разобьешь, то не будет каши этой.