1

以下は、私のウェブサイトの register.php のコードです。このコードにより、ユーザーは自分の Web サイトに登録し、送信ボタンをクリックしてユーザー名、電子メール、パスワードなどの MySQL エントリを作成できます。

ボタンの名前は「reg」で、$_POST を使用します。送信ボタンをクリックすると、PHP コードが複数のifステートメントを実行して、ユーザーが入力した情報が有効であり、既存のものではないことを確認します。

ユーザーが存在する場合、または送信時にエラーが発生した場合、PHP 変数$errormessageを設定し、それをエコーアウトすることになっています。現在、送信ボタンが押されたように動作しません。エラー メッセージも SQL 行も挿入されず、何もありません。

        <?php
            if( $_POST['reg']){

                /* Make sure values are correct and valid */
                $getuser = $_POST['user'];
                $getemail = $_POST['email'];
                $getpass = $_POST['password'];
                $getrepass = $_POST['retypepassword'];

                /* Check to see if username entererd */
                if($getuser){

                    /* Check to see if email entererd */
                    if($getemail){

                        /* Check to see if password entererd */
                        if($getpass){

                            /* Check to see if retyped password entererd */
                            if($getrepass){

                                /* Check to see if passwords are the EXACT same */
                                if($getpass === $getrepass){

                                    /* Check to see if VALID email is entered */
                                    if( (strlen($getemail) >= 7) &&
                                        (strstr($getemail, "@")) &&
                                        (strstr($getemail, ".")) ){

                                        /* Email is valid mysql query */
                                        require ("./connect.php");

                                        $query = mysql_query("SELECT * FROM users WHERE username ='$getuser'");

                                        /* If mysql returns zero, the user does not exist. */
                                        $numrows = mysql_num_rows($query);

                                        /* Check if email exists */
                                        if($numrows == 0) {
                                            $query = mysql_query("SELECT * FROM users WHERE email ='$getemail'");
                                            $numrows = mysql_num_rows($query);
                                            if($numrows == 0){
                                                $date = date("F d, Y");
                                                $code = md5(rand());

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

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

                                                /* Check to make user was generated */
                                                if($numrows == 1){
                                                    $site = "http://www.midnightnachos.com/gs";
                                                    $webmaster = "universitydb@gmail.com";
                                                    $headers = "From: $webmaster";
                                                    $subject = "Activate Your Account";
                                                    $message = "Thanks for registering. Click the link below to activate your account.\n";
                                                    $message .= "$site/activate.php?user=$getuser&code=$code\n";
                                                    $message .= "You must activate your account to login.";

                                                    if (mail($getemail, $subject, $message, $headers)){
                                                        $errormessage = "You have been registered. You must activate your account from the activation link sent to your email.";
                                                        echo $form;
                                                        $getuser = "";
                                                        $getpass = "";
                                                    }
                                                    else
                                                        echo "An error has occured. Your activation email was not sent.";
                                                }
                                                else
                                                    $errormessage = "An error has occurred. Account not created.";
                                            }
                                            else
                                                $errormessage = "Email address already in use.";
                                        }
                                        else
                                            $errormessage = "Username already exists.";

                                        mysql_close;
                                    }
                                    else
                                        $errormessage = "You did not enter a valid email.";
                                }
                                else
                                    $errormessage = "Your passwords did not match.";
                            }
                            else
                                $errormessage = "You must retype your password.";
                        }
                        else
                            $errormessage = "You must enter your password.";
                    }
                    else
                        $errormessage = "You must enter an email to register.";
                }
                else
                    $errormessage = "You must enter a username to register.";

                echo $form;
            }

            $form = "
                <div class='splash'>
                  <h1>Register for Game Swap</h1>
                  <p>Register for Game Swap to browse what games other local
                     users have added to their library. Propose trades,
                     chat, and meet to swap games. Your email address
                     will only be used to notify you when someone has
                     sent a trade offer. No newsletters, advertisements or
                     updates will be sent by us. We will also never sell
                     your contact information to third parties.</p>
                  <br />
                  <p align='center'>Fill out the form below to get started</p>
                  <br />
                  <form align='center' action='./register.php' method='POST'>
                      <input type='text' name='user' value='$getuser' class='box' size='30' placeholder='Username' /><br />
                      <input type='password' name='password' class='box' size='30' placeholder='Password' /><br />
                      <input type='password' name='retypepassword' class='box' size='30' placeholder='Retype Password' /><br />
                      <input type='text' name ='email' value='$getemail' class='box' size='30' placeholder='Email Address' /><br />
                      <input type='button' name='reg' class='loginbutton' value='Register' /><br />
                  </form>
                </div>
                <br/> $errormessage";

            echo $form;
        ?>

    </body>
</html>
4

1 に答える 1