"Ошибка разбора: синтаксическая ошибка, неожиданный конец $" Для моего назначения регистрации в универе

Я новичок в php, поэтому я использовал учебник Youtube для создания этого скрипта, однако загрузчик, похоже, исчез, поэтому я не могу задать ему никаких вопросов. Моя форма входа в систему, кажется, работает нормально, но у меня возникают проблемы при регистрации

Я удалил все html из кода и все операторы error else, чтобы попытаться устранить сообщение об ошибке, но, похоже, не могу его найти. Ошибка всегда происходит в конце моего скрипта.

Какие-либо предложения

        <?php

        if ( $_POST['registerbtn'] ) {
    //makes sure email, username is valid
    $getuser = $_POST['user'];
    $getemail = $_POST['email'];
    $getpass = $_POST['pass'];
    $getretypepass = $_POST['retypepass'];

    if (!isset($getuser))
    {
        $error = "user not set ";
    } 

    if ($getuser) {
        if($getemail) {
            if($getpass) {
                if ($getretypepass) {
        require("connection.php");

                            $query = mysql_query("SELECT * FROM          users WHERE username ='$getuser'");
                            $numrows = mysql_num_rows($query);
                            if ($numrows == 0) {
                            $query = mysql_query("SELECT * FROM users WHERE email ='$getemail'");
                            $numrows = mysql_num_rows($query);
                            if ($numrows == 0) {

                                $password = md5(md5("19Dvdnj".$password."jndfFf20"));
                                $date = date("F d, Y");
                                $code = md5(rand());

                                mysql_query("INSERT INTO users VALUES ('', '$getuser', '$password', '$getmail', '0', '$code', '$date')");

                                $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                                $numrows =mysql_num_rows($query);
                                if ($numrows == 1) { 

                                $site ="http://www.inn.leedsmet.ac.uk/~c3314283/iis/register.php";
                                $webmaster = "admin@leedsmet.com";
                                $headers = "From: $webmaster";
                                $subject ="Activate your Account";
                                $message = "Thanks for registering. Click below to activate your account.\n";
                                $message .= "$site/activate.php?user=$getuser&code=$code";
                                $message .= "You must activate your account to login";

                                if (mail($getmail, $subject, $message, $headers)){
                                    $errormsg = "You have been registered you must activate your account sent from the the activation link sent to<b>$getemail</b>";
                                    $getuser = "";
                                    $getemail = "";
                                }



                            mysql_close();





        $form ="<form action='register.php' method='post'>
        <table>
        <tr>
    <td></td>
    <td><font color='red'>$errormsg</font></td>
        </tr>

<tr>
    <td>Username:</td>
    <td><input type='text' name='user' value ='$getuser'/></td>
</tr>
    <tr>
        <td>Email:</td>
        <td><input type='text' name='email' value ='$getemail'/></td>
    </tr>
        <tr>
    <td>Password:</td>
    <td><input type='password' name='pass' value =''/></td>
        </tr>       
    <tr>
    <td>Retype:</td>
    <td><input type='password' name='retypepass' value =''/></td>
        </tr>   
    <tr>
    <td></td>
    <td><input type='submit' name='registerbtn' value ='Register'/></td>
        </tr>   
        </table>
        </form>";
        {
        echo $form;
        }
        ?>

2 ответа

Попробуйте автоформатировать (авто-отступ) ваш код. Если у вас нет редактора, который позволяет это, получите такой, как Sublime Text или Notepad ++.:-) Это сэкономит вам много времени в подобных ситуациях; вместо того, чтобы пытаться найти проблему в таких ситуациях, после автоформатирования проблемы будут смотреть вам в глаза.:-)

Я полагаю, что вам не хватает шести закрывающих скобок } (не уверен, что я посчитал количество незакрытых ifправильно) после

{
    echo $form;
}

Очевидно, что в этом случае произошло что-то ужасное, и это может занять больше, чем просто }Там, чтобы исцелить ваш код.

Это может быть проблема копирования и вставки. Возможно, вы не скопировали последние несколько строк кода, который вы нашли в учебнике Youtube, который вы упомянули.

Использование любого редактора кода с подсветкой синтаксиса (такого как Notepad++) ясно покажет вам, что вам не хватает },

Другие вопросы по тегам