簡體   English   中英

HTML / PHP表單問題

[英]HTML/PHP Form Problems

我是Web編碼的新手,但我知道很多,我早先制作了一份注冊表格,該表格還檢查這些字段是否為空。 它可以正常運行,但是似乎沒有任何作用,當這些字段為空時,不會出現消息,而當這些字段正常時,它只是加載但實際上並未將其插入數據庫。 同樣,一旦我按下提交按鈕,表格也將消失。 任何幫助將非常感激。

<form method="post">
<?php
if(isset($_POST['submit'])){
    $username=$_POST['username'];
    $password=$_POST['password'];
    $password=md5(hash("sha512",$password));
    if(empty($username) or empty($password)){
        $message="Please enter information into the fields.";
    } else {
        mysql_query("INSERT INTO `users` VALUES('',$username,$password)");
        $message="Register successful!";
    }
    echo "<div id='box>$message</div>";
}
?>
Username: <input type="text" name="username" /><br>
Password: <input type="password" name="password" /><br>
<input type="submit" name="submit" value="Sign Up">
</form>

看來您沒有打印出mysql錯誤,您只需要添加or die(mysql_error()); 在查詢的結尾,就像我的例子一樣。 無論如何,您都應該在字符串兩邊加上quotes 按下時,該頁面空白,因為如果滿足條件。 所以改變如下

mysql_query("INSERT INTO `users` VALUES('','$username','$password')") or die(mysql_error());

作為mysql_由於它們已被廢棄,因此我將停止使用mysql_函數,而應使用帶有准備好的語句的PDOmysqli來避免mysql注入的任何風險,因為您的代碼極易受到攻擊。 了解更多信息

正如CodeBird正確指出的

空字符串的md5將返回32個字符的字符串,因此您要測試的密碼永遠不會為空

將查詢語句更改為

mysql_query("INSERT INTO `users` VALUES('','$username','$password')");

開始使用mysqli_ *函數而不是mysql_ *,因為后者已被棄用

check this out "(`id`, `username`, `password`)" example column name use what you have made it.
<?php
if(isset($_POST['submit']))
{
    $username=$_POST['username'];
    $password=$_POST['password'];
    enter code here
    if(empty($username) || empty($password)){
        $message="Please enter information into the fields.";
    } else {
        $password=md5(hash("sha512",$password));
        mysql_query("INSERT INTO `users` (`id`, `username`, `password`) VALUES('','$username','$password');");
        $message="Register successful!";
    }
    echo "<div id='box'>".$message."</div>";
}
?>
<form method="post" action="">
    <input type="text" name="username" /><br>
    <input type="password" name="password" /><br>
    <input type="submit" name="submit" value="Sign Up">
</form>

您的插入查詢錯誤,請使用:

INSERT INTO tablename (col1, col2) VALUES('data1', 'data2' )

或者你可以使用

INSERT INTO tablename SET col1 = "data1", col2 = "data2"

您遇到問題是因為您濫用empty()

如果變量不存在或值等於FALSE,則將其視為空

另外,您應該使用雙管道|| 用於在您的if()

這個:

if(empty($username) or empty($password)){

應該:

if($username === '' || $password === ''){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM