PHP - 不显示输入的值


PHP - Value of input isn't shown

我正在从 mysqlserver 行项目检索数据到输入文本框的值,但页面加载时该值未显示。而且我似乎无法显示输入框的值。有谁知道出了什么问题?

<?php           
        if(isset($_COOKIE["email"]))
        {               
            $emailAddress = $_COOKIE["email"];
            $password = $_COOKIE["password"];               
            include('connectDB.php');
            $select = "SELECT * FROM P_Profile WHERE P_EmailAddress = '$emailAddress' AND P_Password='$password'";              
            mysql_select_db("lotusbs", GetConnection()) or die(mysql_error());                  
            $result = mysql_query($select) or die(mysql_error());               
            $row = mysql_fetch_array($result)                   
            ?>              
                <div class="signupcontainer">
                    <div class="contentsignup" style="margin-top:20px;">                        
                    <div class="textboxsignup"><span class="signuptbspan" style="Display:none;">First name</span><input value="<?php echo $row['P_FirstName'];?>" name="txtfirstname" id="txtfirstname" type="text"/></div>
                        <div class="signupinfo">Enter first name</div>
                        <div class="signupinfoerror">Must Enter first name</div>

例如,尝试调试此脚本:

  1. 检查脚本是否通过在 true 子句内回显来传递 if(isset($_coo....) 位。

  2. echo $select,在 mysql-query 形成字符串之后,在 phpmyadmin 中尝试一下。检查查询是否无错误,以及传递的变量是否以正确的方式包含在内。

  3. 尝试在关闭 php 之前转储 $row 变量>这样,如果结果被传递给行变量,您将不会。

这里有几种可能性:

  • 该列可能不存在
  • 该行可能不存在
  • 连接可能已失败,或者您可能选择了错误的数据库。
还有

一件事你应该考虑改变。您保存的密码未加密且未使用 Cookie 编码。这意味着您实际上可以在 cookie 中找到人们的密码。这可能会产生相当大的后果,因为如果用户在其他网站上使用相同的信息,人们可以很容易地破解它们。

在执行此操作之前:

$row = mysql_fetch_array($result)

您应该始终通过以下方式检查查询是否已从表中获取任何行:

if (mysql_num_rows($result)) {
    // fetch the rows here and do other stuff
}
else {
    echo "Record was not found !";
}

这将告诉您查询返回了一些记录。如果您获得的输出为"未找到记录",则您的 SQL 查询有问题。此外,mysql_fetch_array()还为您提供了一个数组,该数组将作为$row[0]访问。如果要像$row['P_FirstName']那样将其作为关联数组访问,则需要调用函数 mysql_fetch_assoc()