-1

私は PHP を初めて使用するので、エラーを見つけるのに苦労していますが、これは単純に見つけることができません。私が持っているコードは、送信時にユーザーを登録していないだけで、最後のコードを実行しない理由がわかりません。- 「挿入」機能になると停止します。

助言がありますか?

<?php 
session_start();
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Member system version 1.0</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<header>
    <h1>Simpelt login system</h1>
</header>
<nav>
    <ul>
        <li><a href="./">Forside</a></li>
        <li><a href="login.php">Log ind</a></li>
        <li><a href="register.php">Registrer dig</a></li>
        <li><a href="memberpage.php">Medlemsside</a></li>
        <li><a href="contact.php">Kontakt</a></li>
    </ul>
</nav>
<section>
    <aside>
        <ul>
            <li><h3>Lille test overskrift</h3></li>
            <li></li>
        </ul>
    </aside>
    <article>
        <?php
            if($_POST['registerbtn']) {
                $getuser = $_POST['user'];
                $getemail = $_POST['email'];
                $getpass = $_POST['pass'];
                $getconfirmpass = $_POST['confirmpass'];

                if ($getuser){
                    if ($getemail) {
                        if ($getpass) {
                            if ($getconfirmpass) {
                                if ($getpass === $getconfirmpass) {
                                    if ((strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                                        require("connect.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) {
                                                $getpass = md5(md5("Jasdl".$getpass."SDa823k"));

                                                $date = date("F, d Y");
                                                $code = md5(rand());

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

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

                                                    $site = "http://localhost:8888/php-projekter/login-projekt";
                                                    $webmaster = "Kasper Legarth <kaspersunivers@gmail.com>";
                                                    $headers = "From: $webmaster";
                                                    $subject = "Aktivering af din konto";
                                                    $message = "Tak fordi du oprettede en konto, for at aktivere din konto skal du klikke på nedstående link.\n";
                                                    $message .= "$site/activate.php?user=$getuser&code=$code\n";
                                                    $message .= "Du skal aktivere din konto for at kunne logge ind.";

                                                    if (mail($getemail, $subject, $message, $headers)) {
                                                        $confirmpass_error = "DET VIRKER!!!!";
                                                        $getuser = "";
                                                        $getemail = "";
                                                    }
                                                    else
                                                        $confirmpass_error = "Der skete en fejl, din mail blev ikke sendt";
                                                }
                                                else
                                                    $confirmpass_error = "Der skete en fejl, din bruger blev ikke oprettet";
                                            }
                                            else
                                                $email_error = "Den email er allerede i brug";  
                                        }
                                        else
                                            $user_error = "Det brugernavn er desværre allerede taget";

                                        mysql_close();
                                    }
                                    else
                                        $email_error = "Du skal bruge en gyldig email";
                                }
                                else
                                    $confirmpass_error = "Dine adgangskoder er ikke ens";
                            }
                            else
                                $confirmpass_error = "Du skal skrive din kode igen";
                        }
                        else
                            $pass_error = "Du skal vælge en adgangskode";

                    }
                    else
                        $email_error = "Du skal indstate din email";
                }
                else
                    $user_error = "Du skal indtaste et brugernavn";

            }

        $form = "<form action='register.php' method='post'>
            <h2>Opret din egen konto</h2>
            <p>Ønsket brugernavn:
            <br><input type='text' name='user' value='$getuser' placeholder='Brugernavn' />
            <br><small>$user_error</small></p>
            <p>Din email adresse:
            <br><input type='text' name='email' value='$getemail' placeholder='Email adresse' />
            <br><small>$email_error</small></p>
            <p>Vælg en adgangskode:
            <br><input type='password' name='pass' value='' placeholder='Adgangskode' />
            <br><small>$pass_error</small></p>
            <p>Gentag adgangskode:
            <br><input type='password' name='confirmpass' value='' placeholder='Gentag' />
            <br><small>$confirmpass_error</small></p>
            <p><input type='submit' name='registerbtn' value='Registrer dig' /></p>
        </form>";

        echo $form;

        ?>
    </article>
</section>
<footer>
    Copyright &copy; 2013 - Design: <a href="http://kaspersunivers.dk">Kasper Legarth</a>
</footer>
 </body>
 </html>
4

2 に答える 2

0

挿入ステートメントにエラーがあります。

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

データベースに挿入する値を設定していますが、それらの値が入るフィールドは設定していません。これを試してください

mysql_query("INSERT INTO users (field1, field2, field3, field4, field5, field6, field7) VALUES ('','$getuser','$getpass','$getemail','0','$code','$date')");

(「field1、field2 など」をテーブルのフィールドの名前に置き換えます)

また、最初のフィールドに空の値を挿入していますが、意図的かどうかはわかりませんが、それも確認してください。

それがあなたのために働くことを願っています

于 2013-11-05T02:04:38.453 に答える