【问题标题】:why the demo code in the book gives errors " Undefined index "为什么书中的演示代码给出错误“未定义的索引”
【发布时间】:2014-12-12 04:25:14
【问题描述】:

我正在学习 php。我正在阅读的书是“PHP and mysql web development”。

Page394上的代码,报错如下: 你能告诉我有什么问题吗?

代码如下:

<?php
    $name = $_POST['name'];
    $password = $_POST['password'];

    if ((!isset($name)) || (!isset($password)))
    {
?>
<h1>Please log in<h1>
<p> This page is secret.</p>
<form method="post" action="secret.php">
<p>Username: <input type="text" name="name"></p>
<p>Password: <input type="password" name="password"></p>
<p><input type="submit" name="submit" value="Log in"></p>
</form>
<?php
}
else if (($name == "user") && ($password =="pass"))
{
    echo "<h1>Here it is</h1>";
    echo "<p>I bet you are glad you can see this secret page.</p>";
}
else{
    echo "<h1> Go Away</h1>";
    echo "<p>You are not authorized to use this </p>";
}

【问题讨论】:

  • 小题大做:本书使用了哪些mysql函数?
  • 如果您在字段中输入数据然后提交表单,您应该不会看到错误。此外,如果那是书中的实际 sn-p,你应该把它收回,因为这个例子很可怕。

标签: php sql forms


【解决方案1】:

你能告诉我有什么问题吗?

你不够细心。您的书在行首有附加符号。

@    $name = $_POST['name'];
@    $password = $_POST['password'];

@ - 抑制错误。

我的建议:

不要使用这本书。它又旧又丑。

【讨论】:

  • 哇,同意。任何教如何抑制错误的书都是垃圾。
  • 您能给点建议吗:哪本书好?谢谢!!
  • @tqjustc,所以... 有错别字的坏书 :^ ) ahvaz.ist.unomaha.edu/azad/temp/softarch/… 394 pdf 页面
  • @tqjustc,我从未读过任何学习 PHP 的书 :^) 这本书看起来很实际:amazon.com/PHP-Cookbook-Solutions-Examples-Programmers/dp/…
  • @sectus 好。你给我的第一本是我正在看的书。但我的是第四版。在你给我的版本上,演示代码是正确的。感谢您的建议。
【解决方案2】:

您应该测试$_POST 值,然后进行赋值。你在做相反的事情。

应该是这样的:

if(isset($_POST['name'], $_POST['password'])) {
    $name = $_POST['name'];
    $password = $_POST['password'];

    // rest of code
}

【讨论】:

    【解决方案3】:

    如果您要提交到表单所在的同一页面,那么您应该这样做:

        $name = isset($_POST['name']) ? $_POST['name'] : "";
        $password = isset($_POST['password']) ? $_POST['password'] : "";
    

    原生函数isset检查变量是否存在。

    【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 2015-12-06
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    相关资源
    最近更新 更多