1. PHP / Говнокод #24204

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Change login</title>
    </head>
    <body>
    <form method="POST">
    <p>Input your new e-mail</p>
    <input type="text" name="email" type="e-mail" placeholder="[email protected]"><br><br>
    <button>Sumbit</button>
    </form>
    <?php
    session_start();
    if(isset($_POST['email'])) {
    	require_once 'connection.php';
        //подключение БД
    	 $link = mysqli_connect($host,$user,$password,$database)
         or die("Error with connection to DB".mysqli_error($link));
         //записываем в переменную для удобства
         $email = $_POST['email'];
         if($email != '') {
         	$select = "SELECT mail from users";
            $query = "UPDATE users SET mail = '$email' WHERE username = '{$_SESSION['username']}'"
            or die("Update error!".mysqli_error($link));
                    //записать все логины,для проверки одинаковых данных
            $check = mysqli_query($link,$select);
            //количество записей в запросе на выбор
            $rows = mysqli_num_rows($check);
            $bool = true;
            for($i = 0; $i < $rows; $i++) {
                //извлекаем отдельную строку
                $row = mysqli_fetch_row($check);
                //перебор по ячейкам текущей строки
                for($j = 0; $j < 1; $j++) {
                //если такой пользователь уже есть,то выводим ошибку и завершаем цикл
                if($email == $row[$j]) {
                    echo "e-mail is already exist";
                    $bool = false;
                    break;
                }
            }
            }
            //если такого пользователя нет,то заносим запись в БД
            if($bool) {
            $result = mysqli_query($link,$query) or die("Ошибка " . mysqli_error($link));
                    if($result) {
                echo "e-mail changed";
                mail($email,"Смена адреса","Вы успешно сменили e-mail адрес!");
            }
             }
            //закрываем подключение
            mysqli_close($link);
         }
    }
    ?>
    </body>
    </html>

    Собственно говоря смена адреса электронной почты на PHP,как бы исправить этот говнокод,чтобы он выглядел чуточку элегантней?

    Запостил: Mark96, 28 Апреля 2018

    Комментарии (9) RSS


    • Безусловно mysqli_fetch_row надо заменить на mysqli_fetch_object чтобы сделать код объектно-ориентированным, а значит современным, грамотным и безошибочным
      Ответить
    • Здесь не стацковерфлоу
      Ответить
    • > как бы исправить этот говнокод
      Либо так:
      http://www.diveintopython3.net/
      https://www.djangoproject.com/

      Либо так:
      https://nodejs.org/

      Либо вот так:
      https://www.ruby-lang.org/
      http://rubyonrails.org/

      В коде с "mysqli_connect" исправить ничего нельзя по определению.
      Главное, чтобы никто не увидел: http://shop.oreilly.com/product/0636920033868.do
      Ответить
      • Всё правильно, гоанокод на РНР можно исправить только переписав его на другом языкке.
        Ответить
      • >>>"http://shop.oreilly.com/product/0636920033868.do"

        >>>".do"

        Что это за язык программирования? Не могу найти.
        Ответить
      • Для консистентности нужна ещё одна информационная ссылка:
        https://developer.mozilla.org/ru/docs/Web/JavaScript
        Ответить
        • >>>.org/ru/docs/Web/JavaScript
          Что это за язык программирования"org/ru/docs/Web/JavaScript"? Не могу найти.
          Ответить
          • Вы сначала языки https, :// и developer.mozilla выучите, а потом за org/ru/docs/Web/JavaScript принимайтесь.
            Ответить
    • Зобить в email:
      [email protected]' WHERE username = 'кого_надо' -- :)

      Пройдеть али нет?
      Ответить

    Добавить комментарий