未定义的变量:mysql PHP 中的名称

Undefined variable: Name in mysql PHP

enter image description here如果登录信息错误,系统会正确显示"Fail login"。

但是当详细信息正确时,系统将在 行显示“C:\Users\Alex\Desktop\OSMAD.5\root\Project\test3.php 25
登录失败

这里是 PHP 文本

<?php

    $host = "127.0.0.1";

    $username = "root";

    $password = "usbw";   

    $dbname =  "forum_system";

    // Connect to server
    $connect = mysql_connect($host, $username, $password) 
        or die ("Sorry, unable to connect database server");

    $dbselect = mysql_select_db($dbname,$connect) 
        or die ("Sorry, unable to connect database");

    $Name   = $_POST['Name'];
    $Password = $_POST['Password'];

    $result = mysql_query("select * from users where name = '$Name' and 
        password = '$Password'")
    or die("Sorry, query failed".mysql_error());

    $row = mysql_fetch_array($result);

    if ( $row['Name'] == $Name && $row['Password'] == $Password ) {
        echo "welcome";
    } else {
        echo "Fail login";
    }
?>

好吧 MySQL table 列名是区分大小写的。因此,您应该使用 $row['Name']$row['Password'] 而不是 $row['name']$row['password']。所以行:

if ( $row['Name'] == $Name && $row['Password'] == $Password ) 

应替换为:

if ( $row['name'] == $Name && $row['password'] == $Password )

也使用 mysqli or MySQL_PDO 而不是 mysql 函数。 mysql 扩展已在 Php 7.0.0.

中删除