注册脚本故障,PHP,查询没有被执行

时间:2013-06-18 18:11:35

标签: php mysql

我正在尝试为我的网站创建一个简单的注册脚本,但是查询有问题或者我的代码有问题。

有问题的查询是(再次更新):

<?php
    session_start();
    $mysqlusr  = "website";
    $mysqlpass = "OOPS!";
    $mysqlhost = "localhost";
    $mysqldb   = "website";
    $username  = $_REQUEST['username'];
    $password  = $_REQUEST['password'];
    $email     = $_REQUEST['email'];
    $day       = $_REQUEST['day'];
    $month = $_REQUEST['month'];
    $year  = $_REQUEST['year'];
    $emailcheck;
    $daycheck;
    $monthcheck;
    $yearcheck;
    $usernameinuse;
    $attempt  = $_REQUEST['attempt'];
    $dbhandle = mysql_connect($mysqlhost, $mysqlusr, $mysqlpass);
    $selected = mysql_select_db("website") or die("Could not select database");
    if ($attempt == true && $usernameinuse == false) {
        $query2 = msql_query("INSERT INTO users (username, password, email, day, month, year) VALUES ('$username', '$password', '$email', '$day', '$month', '$year')");
    } else {
        if ($attempt == true && $usernameinuse == true) {
            echo '<div class="alert alert-error"><b>Oh Snap!</b> Username Or Email is in use!</div>';
        }
    }
    if ($_SESSION['state'] == 'logged-in') {
        echo '<div class="alert alert-error"><b>Oh Snap!</b> You are already logged in!</div>';
    } elseif ($_SESSION['state'] == 'no-user') {
        echo '
    <form action="register.php" metod="post">
    Username: <input type="text" name="username" value="" MAXLENGTH="16" /><br>
    Password: <input type="password" name="password" value="" MAXLENGTH="25"/><br>
    Email<br><small>(Make sure this is your correct email as you will need to confirm your user!)</small>:<br> <input type="text" name="email" value=""MAXLENGTH="50"/><br>
    Day of Birth: <select name="day">';
        for ($i = 1; $i <= 31; $i++) {
            echo '<option value=' . $i . '>' . $i . '</option>';
        }
        echo '
    </select><br>
    Month of Birth: <select name="month">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
    </select><br>

    Year of Birth: <select name="year">';
        for ($i = 2014; $i > 1900; $i--) {
            echo '<option value=' . $i . '>' . $i . '</option>';
        }
        echo '</select>
    <br>
    <button type="submit" name="attempt" value="true" class="btn btn-primary"><i class="icon-file"></i> Register</button>

    </form>
    ';
    }
    if ($attempt == true) {
        $query = mysql_query("SELECT * FROM users WHERE username = '" . $username . "' OR email = '" . $email . "'");
        if (mysql_num_rows($query) > 0) {
            $usernameinuse = true;
        } else {
            $usernameinuse = false;
        }
    }
?>

我必须添加更多文字,好吧......就在这里!

1 个答案:

答案 0 :(得分:1)

mysql_connect()的语法错误:

$dbhandle = mysql_connect($mysqlhost, $mysqlusr, $mysqlpass, $mysqlusr)
                                                          // ^ This is wrong!
            or die("Unable to connect to MySQL");

仅供参考,语法为:

resource mysql_connect (
  [ string $server = ini_get("mysql.default_host")
  [, string $username = ini_get("mysql.default_user")
  [, string $password = ini_get("mysql.default_password")
  [, bool $new_link = false [, int $client_flags = 0 ]]]]]
)

此外,你在这里有一个相同的,不等同于:

if($attempt == true and $usernameinuse = false) {
                                    // ^ Replace with ==