10/10/2018, 00:10
Kiểm tra Username bằng PHP
Mình có đoạn code Ktr User với user trong SQL. Mình thử đăng ký với user có sẵn trong SQL thì nó vẫn cho đăng ký . Và nó cứ báo Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:Web_ServerAppServwwwThien_WebsiteDang_Ky.ph p on line 332. Các bạn xem giúp mình đoạn code này với, có chỗ nào chưa đúng ko? Mình cảm ơn
Code:
$username = addslashes( $_POST['username'] ); $password = addslashes( $_POST['password'] ); $confirm_pass = addslashes( $_POST['verify_pass'] ); $email = addslashes( $_POST['email'] ); $conn = mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Không thể kết nối database"); mysql_select_db("{$db_name}") or die("Không thể chọn database"); $sql = "SELECT * FROM members WHERE name= '".$_POST["Username"]."'"; $result = mysql_query($sql, $conn) ; $i = mysql_num_rows($result); if($i>0) { mysql_close($conn); echo "Username này đã có rồi. Xin vui lòng nhập Username khác"; } else { // Tiến hành tạo tài khoản @mysql_query("INSERT INTO members (username, password, email) VALUES ('{$username}', '{$password}', '{$email}')"); // Thông báo hoàn tất việc tạo tài khoản print "Tài khoản {$username} đã được tạo. <a onclick='javascript:win.close()'><span style='color:blue'>Nhấp vào đây để trở lại Trang Chủ</span></a>"; echo "<meta http-equiv='refresh' content='3;url=Trang_Chu.html'>"; }
Bài liên quan
Thân mến.
tham số của hàm
mysql_num_rows() là kiểu resource báo lỗi này có nghĩa bạn tham số hàm này sai kiểu-> có thể nó không có gia trị trả lại của câu lệnh sql -> bạn xem lại code xem nhỡ sai chữ hoa chữ thường lên tham số truyền cho hàm đó sai. Mình không có thời gian dò code cho bạn bạn thử lại nhé
P/S:
....
$sql = "SELECT * FROM members WHERE name='$username'";
1. Về câu mysql_num_rows($result) : trong đó khi query và result trả về null nên khi bạn gọi hàm mysql_num_rows(null) thì php sẽ warning. Muốn fix thì sửa lại là if($result)
{
// call mysql_num_rows($result);
}else
{
// call
}
2. Phân biệt hoa thường khi dùng $_POST[element]
3. Dùng biến và đặt dấu {} là hợp lý. Vì trong trừong hợp biến $a đặt kế kí tự khác thì nên dùng để phân biệt. Ví dụ echo "$abc" : vậy cái này phải sửa là echo "{$abc}"
echo "$abc"; echo "{$abc}"; echo $abc; kết quả có gì khác nhau ko chứ tốc độ khác nhau là chắc rồi đấy
Có bao giờ bác xài kiểu này ko mysql_connect("{$db_host}", "{$db_username}", "{$db_password}")