【问题标题】:PHP - Value of input isn't shownPHP - 不显示输入值
【发布时间】:2012-04-13 14:51:30
【问题描述】:

我正在从 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>

【问题讨论】:

  • var_dump($_COOKIE); 给你什么?
  • @Mike,cookie 很好,但输入值没有设置,这是表单加载时的 html
  • $_COOKIE["password"]; 听起来很糟糕
  • 绝对是 Damien Pirsy 所说的。
  • 我是 php 新手,我是一个 vb.net 网络开发人员,我只是使用 php,因为我的客户想要那个。但我真的需要在今天下午 6 点之前完成这项工作

标签: php html sql-server


【解决方案1】:

例如尝试调试此脚本:

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

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

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

【讨论】:

    【解决方案2】:

    这里有几种可能性:

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

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

    【讨论】:

      【解决方案3】:

      在此之前:

      $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()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 1970-01-01
        相关资源
        最近更新 更多