さて、私は自分のサイトにユーザー登録フォームを追加しようとしています。私は何日もこれを修正しようとしてきましたが、私が試したものは何もうまくいかないようです. 現在、登録フォームに入力して送信ボタンを押すと、この警告が表示されます。
警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定し、null は /Applications/XAMPP/xamppfiles/htdocs/tutorials/MySite/index.php の 64 行目に指定されています
データベースと行の構文がスクリプトとphpmyadminで同じであることを確認するためにトリプルチェックを行ったので、本当に迷って、ここから何をすべきかわかりません。phpmyadmin に接続してクエリを実行したり、phpmyadmin から情報を取得したりするのに常に問題があります。
これまでのところ、これは私が持っているものです(コードが多すぎて申し訳ありません):
<?php
$reg = $_POST['reg'];
// declaring variables to prevent errors
$fn = ""; //first name
$ln = ""; //last name
$un = ""; //username
$em = ""; //email
$em2 = ""; //email 2
$pswd = ""; //sign up date
$u_check = ""; //check if username exists
//registration form
$fn = strip_tags($_POST['fname']);
$ln = strip_tags($_POST['lname']);
$un = strip_tags($_POST['username']);
$em = strip_tags($_POST['email']);
$em2 = strip_tags($_POST['email2']);
$pswd = strip_tags($_POST['password']);
$pswd2 = strip_tags($_POST['password2']);
$d = date("Y-m-d"); // year - month - day
if ($reg) {
if ($em == $em2) { //this block of code is where I'm having the most trouble at.
// Check if user already exists
$u_check = mysql_query("'SELECT' username 'FROM' users 'WHERE' username='$un'");
// Count the amount of rows where username= $un
$check = mysql_num_rows($u_check); //<<<<<<<<<<<<<<<<<<<<<<<<LINE 64
if ($check == 0) { //maybe this should be $u_check??\\
//check all of the fileds have been filled in
if ($fn && $ln && $un && $em && $em2 && $pswd && $pswd2) {
//check that passwords match
if ($pswd == $pswd2) {
//check the maximum length of username/first name/last name does not exceed 25 characters.
if (strlen($un) > 25 || strlen($fn) > 25 || strlen($ln) > 25) {
echo "The maximum limit for username/first name/ last name is 25 characters!";
} else { //check to see if password is allowable length
if (strlen($pswd) > 30 || strlen($pswd) < 5) {
echo "Your password must be between 5 and 30 characthers long!";
} else {
//encrypts password using md5 before sending to database
$pswd = md5($pswd);
$pswd2 = md5($pswd2);
$query = mysql_query("INSERT INTO users VALUES (' ', '$un', '$fn', '$ln', '$em', '$pswd', '$d', '0')");
die("<h2>Welcome to MySite</h2>Login to your account to get started....");
}
}
} else {
echo "Your passwords don't match!";
}
} else {
echo "Please fill in all fields";
}
}
}
}
?>
繰り返しますが、私はこれを何日も修正しようとしてきましたが、何が起こっているのかまだわかりません.