Нужна помощь PHP HTML с формой регистрации - PullRequest
0 голосов
/ 12 июля 2011

вот некоторый код, который я планирую использовать в регистрационной форме для моего сайта

<?php
session_start();
include ("includes/config.php");
if ($Authenticated == False) {
    ?>
    <div id="register">
        <form action="index.php?page=register" method="post">
            <lable id="registerStuff"> Name: </>
                <input id="registerIn" type='text' name='name' maxlength="20" />
                <br/>
                <lable id="registerStuff"> Surname: </>
                    <input id="registerIn" type='text' name='surname' maxlength="20" />
                    <br/>
                    <lable id="registerStuff"> Username: </>
                        <input id="registerIn" type='text' name='username' maxlength="20" />
                        <br/>
                        <lable id="registerStuff"> Password: </>
                            <input id="registerIn" type='password' name='password' maxlength="20" />
                            <br/>
                            <lable id="registerStuff"> Retype Password: </>
                                <input id="registerIn" type='password' name='passwordcheck' maxlength="20" />
                                <br/>
                                <input type='submit' value='Register'>
                                <br/>
                                </form>
                                </div>
                                <?php
                                $name = mysql_real_escape_string($_POST['name']);
                                $surname = mysql_real_escape_string($_POST['surname']);
                                $username = mysql_real_escape_string($_POST['username']);
                                $password = mysql_real_escape_string(md5($_POST['password']));
                                $passwordcheck = mysql_real_escape_string(md5($_POST['passwordcheck']));
                                if ($username OR $password OR $passwordcheck != null) {
                                    if ($password == $passwordcheck) {
                                        $query = "INSERT INTO users (name, surname, username, password) VALUES ('" . $name . "', '" . $surname . "', '" . $username . "', '" . $password . "')";
                                        $result = mysql_query($query);
                                        if (!$result) {
                                            echo "Username wrong";
                                        }
                                    } else {
                                        echo "passwords didnt match";
                                    }
                                }
                            }
                            if ($Authenticated == True) {
                                header("Location: index.php");
                            }
                            ?>

Кажется, я не могу получить правильные сообщения об ошибках, мне нужно проверить, идентичны ли 2 введенных пароляМне также нужно убедиться, что в БД нельзя вводить пробелы.Если бы кто-нибудь мог мне помочь, я был бы очень признателен

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Полагаю, вы совершили довольно распространенную ошибку. Кажется, большинство новичков хотят написать как можно меньше кода. Однако в этом случае это не работает. Вам придется проверить каждую переменную на пустоту.

Ваш код будет правильным, если вы измените конструкцию if:

if ($username != "" AND $password != "" AND $passwordcheck != "") {

}

Однако, чтобы код выглядел немного медленнее, вероятно, лучше всего использовать функцию empty(), которая возвращает TRUE , если переменная пуста:

if (!empty($username) AND !empty($password) AND !empty($passwordcheck)) {

}
1 голос
/ 12 июля 2011

Очень интересный код у вас там.Прежде чем попросить людей написать более половины вашего сценария, я бы предложил Google «PHP Login Script» - this - это результат номер один и ответ на ваш вопрос.

$sql="SELECT * FROM $tbl_name 
     WHERE username='$myusername' AND password='$mypassword'";
$result=mysql_query($sql);

С учетом вышесказанного, это неправильный способ сделать это, и вы должны посмотреть на подготовленные заявления.Поскольку вы начинаете, вам, вероятно, следует начать с мышления в области безопасности.

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