10/10/2018, 09:50
Form đăng kí này sai ở đâu ạ??
em có cái form đăng kí như viết như này ạ:
Còn đây là trang dangki.php
Sau khi chạy xong thì toàn "Loi ket noi database" ạ . Em tìm mãi mà ko biết lỗi chỗ nào vậy các bác?
Code:
<form action ="dangki.php" method ="post"> <p> <b> Tên đăng nhập:</b> <input type="text" name="tendn" size="20" maxlength="20" value="" /></p> <p> <b> Mật khẩu : </b> <input type="password"" name = "matkhau" size ="20" maxlength="20" /></p> <p> <b> Email : </b> <input type = "text" name="email" size ="40" maxlength="40" value = "" /></p> <div align="center"><input type = "submit" name="submit" value="Đăng ký" /> </div> <?php if (isset($_POST['submit'])) { $message = NULL; if (empty($_POST['tendn'])) { $tdn = FALSE; $message = '<p> Ban chua khai bao ten dang nhap! </p>'; } else { $tdn = $_POST['tendn']; } if (empty($_POST['matkhau'])) { $mk = FALSE; $message = '<p> Ban chua nhap mat khau! </p>'; } else { $mk=$_POST['matkhau']; } if (empty ($_POST['email'])) { $mail = FALSE; $message = '<p> Ban chua nhap email </p>'; } else { $mail = $_POST['email']; } if (isset ($message)) { echo '<font color ="red" >', $message, '</font>'; } } ?> </form>
Code:
<?php { include ('dbconnect.php'); mysql_query("SETNAMES 'UTF8'"); if (isset($_POST['submit'])) { $query = "INSERT into users (Matv, Tendangnhap, Matkhau, Email) VALUES (Matv+1, '$tdn', '$mk', '$mail')" or die(mysql_error()); $result = @mysql_query($query); if ($result) { echo "Chúc mừng ban đã đăng kí thành công"; } else { echo "Loi ket noi database" ; } } } ?>
Bài liên quan
Còn bạn kiểm tra file dbconnect.php đi, chắc là điền sai thông tin database rồi
@bác shellingfox: Đống code của em có gì ko ổn ạ? cái đống kiểm tra kia là để bắt buộc người dùng phải nhập hết vào các trường mà.
// cái dòng "Loi ket noi database" là em echo ra đấy ạ. {Sợ các bác chưa xem hết đoạn code của em lại bảo file dbconnect có vấn đề :| }
Bạn hãy xem lại db structure và câu query.
Code như dzi làm sao file dangki.php có thể hiểu các biến $tdn, $mk, $mail mà insert vào. Các biến đó là NULL, khi thực hiện insert sẽ bị lỗi.
Copy đoạn này vào đầu file dangki.php
Sửa như luckyboy là ok rồi đó.
P/S: Thiệt tình đọc mấy cái code mix tất tần tật Model-View-Controller như thế này hoa cả mắt. Bị lỗi đâu tìm cho chết luôn.
"INSERT into users (Matv, Tendangnhap, Matkhau, Email) VALUES (Matv+1, '$tdn', '$mk', '$mail')" Tôi nghi nhất là cái đoạn 'Matv+1 " đó, trên php nó không thực hiện một phép toán trên một chuỗi đâu,bạn thử echo xem. Nếu bạn muốn cái field nó tự tăng lên thì tốt nhất là cho field nó thành autonumber đi.
Để tự động tăng Matv lên 1 thì nên đặt chế độ Auto Increment cho field này
và dùng code sau
"INSERT into users (Tendangnhap, Matkhau, Email) VALUES ('$tdn', '$mk', '$mail')"