注意:未定义的索引:用户名PHP和MySQL

时间:2014-09-11 11:48:56

标签: php mysql

我花了一些时间在网上寻找答案而无济于事 - 阅读了一些帖子,但没有看到相同的内容。

以下行导致我出现以下错误:

Notice: Undefined index: username in C:\xampp\htdocs\newlogin\authorise.php on line 19

与之关联的行如下:

$stmt->bindValue(':username',strtolower($_POST['username']));

我已经包含了所有代码以防万一。我在数据库(MySQL)中设置了用户名列

任何建议都会很棒,对此我是相当新的,所以如果有简单的回复我会道歉


<title>authorise</title>
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"

try
{
    $dbh = new PDO("mysql:host=localhost;dbname=login_site","root","black$23");

}

catch (PDOException $e){
    echo $e->getMessage();
}

$query = "select  * from 'users' where LOWER ('username')=:username";
$stmt=$dbh->prepare($query);
$stmt->bindValue(':username',strtolower($_POST['username']));<--- issue is on this line
$stmt->execute();
if ($stmt->rowCount()==1){
    echo'user found';
}

3 个答案:

答案 0 :(得分:2)

这意味着您的$ _POST数组没有用户名密钥。

您可以使用if

进行检查
if(isset($_POST['username']))
{
    $query = "select  * from 'users' where LOWER ('username')=:username";
    $stmt=$dbh->prepare($query);
    $stmt->bindValue(':username',strtolower($_POST['username']));
    $stmt->execute();
    if ($stmt->rowCount()==1)
    {
        echo'user found';
    }
}

Voila没有通知;)

当您发布表单检查输入名称是否设置为&#34;用户名&#34;而且不是空的。

答案 1 :(得分:0)

这意味着您在数据库表中没有用户名字段,或者您的表单中没有用户名字段名称。请仔细检查您的表格结构和表格。

答案 2 :(得分:0)

我发现我错过了登录脚本中的=符号。但是,我仍然是授权页面,不会输入if语句。我已将回声放入其中并在其周围显示,直到我将回声置于if语句