【问题标题】:Website works fine online, but running on localhost displays undefined index and variable网站在线运行良好,但在 localhost 上运行显示未定义的索引和变量
【发布时间】:2012-05-29 00:10:33
【问题描述】:

这里有恐慌! 我的论文网站在网上运行良好,但在提交前一小时我发现它在本地主机上不起作用.. 两三个页面不断出现未定义的索引或变量。有人可以帮忙吗? 这是一个错误的片段: 注意:未定义索引:第 76 行 C:\Users..\Desktop\USBWebserver v8_en\root\SnysbArchive\Search.php 中的表

<?php
include 'UserFunction.php';
..html omitted..
//write connect function in here
include('Connect.php'); //Connects to database
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) 
{
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}
if (mysql_select_db($dbname, $conn))
{
?>
    <form method="post" action="SearchResults.php?go" id="searchform">
    In <select name="tables">
    <?php
    while ($row = mysql_fetch_row($result)) 
    {
    if ($row[0] != 'user_details' && $row[0] != 'request') 
    {
        echo '<option value="'.$row[0].'">'.$row[0].'</option>';
    }
    }
}
    ?>
    </select>
        Seach for: <input type="text" name="name"> 
    <input type="submit" name="submit" value="Search" />
</form>

<br>
<?php
$tbl=$_POST['tables'];
echo $tbl;
?>

它不喜欢这一行 $tbl=$_POST['tables']; 谢谢

【问题讨论】:

    标签: php localhost undefined-index


    【解决方案1】:

    您的本地服务器将error reporting 设置为高于生产服务器上的值。这会导致您收到“较小”错误的错误消息,例如您不会在生产服务器上收到的通知。这是一件好事,因为您的生产服务器不应该显示错误消息可能对黑客有帮助,并且您的本地服务器应该告诉您一切您做错了,无论大小,所以您可以构建您的应用程序正确上线之前。

    在您的情况下,$_POST['tables'] 未设置,并且正在由您的本地服务器报告。它也被您的生产服务器捕获,但由于您的错误报告设置,您没有收到通知(可能在您的错误日志中除外)。

    更新

    要修复您的错误,请在将其分配给变量之前检查该值是否存在:

    $tbl = (isset($_POST['tables'])) ? $_POST['tables'] : ''; 
    

    【讨论】:

      【解决方案2】:

      你总是可以放

      error_reporting(E_ALL ^ E_NOTICE);
      

      在页面顶部,这将防止 PHP 抱怨被引用但还不存在的变量。

      最好按照@john conde 的建议去做,我的建议将消除错误,但允许您草率地编写代码。马虎的代码不是最好的..

      【讨论】:

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