Неопределенная переменная: имя в MySQL PHP - PullRequest
0 голосов
/ 24 июня 2019

введите описание изображения здесь Если данные для входа неверны, система отобразит «Fail login» Правильно.

Но при корректной детализации система покажет " C: \ Users \ Alex \ Desktop \ OSMAD \ 8.5 \ root \ Project \ test3.php в строке 25
Fail login "

Здесь текст 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";
    }
?>

1 Ответ

1 голос
/ 24 июня 2019

Ну, имена столбцов таблицы MySQL чувствительны к регистру.Поэтому вместо $ row ['Name'] и $ row ['Password'] вы должны использовать $ row ['name'] и $ строки [ 'пароль'] .Поэтому строку:

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

следует заменить на:

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

Также используйте mysqli или MySQL_PDO вместо функций mysql.Расширение mysql было удалено в Php 7.0.0.

...