Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注意:未定义变量:[值]_Php_Html_Database_Login_Web - Fatal编程技术网

Php 注意:未定义变量:[值]

Php 注意:未定义变量:[值],php,html,database,login,web,Php,Html,Database,Login,Web,我在stackoverflow上搜索了未定义变量,但找不到任何解决问题的方法 这是我的PHP代码: if(isset($_POST['login'])){ $username =mysql_real_escape_string( $_POST['naam']); $password =md5( $_POST['wacht']); $check_user = "select * from users where gebruikersnaam='$gebruikersna

我在stackoverflow上搜索了未定义变量,但找不到任何解决问题的方法

这是我的PHP代码:

if(isset($_POST['login'])){

    $username =mysql_real_escape_string( $_POST['naam']);
    $password =md5( $_POST['wacht']);

    $check_user = "select * from users where gebruikersnaam='$gebruikersnaam' AND wachtwoord='$wachtwoord'";

    $run =mysql_query($check_user);

    if(mysql_num_rows($run)>0){

    $_SESSION['naam']=$gebruikersnaam;

        echo "<script>window.open('welkom.php','_self')</script>";
    }
if(isset($\u POST['login'])){
$username=mysql\u real\u escape\u字符串($\u POST['naam']);
$password=md5($_POST['wacht']);
$check_user=“从用户中选择*,其中gebruikersnaam='$gebruikersnaam'和wachtwoord='$wachtwoord';
$run=mysql\u query($check\u user);
如果(mysql_num_rows($run)>0){
$\会话['naam']=$gebruikersnaam;
echo“window.open('welkom.php','u self');
}
这是我的HTML代码:

<div id=content>
    <form method='POST' action='login.php'>
        Gebruikersnaam:<br>
        <input type='text' name='naam' />
        <br>
        <br>
        Wachtwoord:<br>
        <input type='password' name='wacht' />
        <br>
        <br>
        <input type='submit' name='login' value='Inloggen' />
    </form>
    <br>
    Niet geregistreerd? <a href='registratie.php'>Klik hier.</a>
</div>  

格布鲁伊克斯纳姆:


瓦赫特伍德:



尼特·格雷格斯特雷德?
我看不出我的问题在哪里,它说我在这一行有一个未定义的变量:
$check_user=“select*from用户,其中gebruikersnaam='$gebruikersnaam'和wachtwoord='$wachtwoord'”;

我使用的名字来自我的数据库,所以我不会在名字上犯错误


你们能帮帮我吗?这会节省很多时间,因为我找不到问题所在。

在分配变量之前,您不必检查是否设置了以下变量

$_POST['naam']
$_POST['wacht']
正如您使用
$\u POST['login']
所做的那样,您可以使用
isset
在分配之前检查它们是否存在

if (isset($_POST['naam'] && isset($_POST['wacht']) {
    // Do something...
}
除此之外,在查询中,您正在使用变量
$gebruikersnaam
$wachtwoord
,而您似乎没有在其他任何地方引用这些变量?因此,经过一些谷歌翻译后,我猜您打算使用以下代码:

$username =mysql_real_escape_string( $_POST['naam']);
$password =md5( $_POST['wacht']);
具体如下:

$gebruikersnaam = mysql_real_escape_string($_POST['naam']);
$wachtwoord     = md5($_POST['wacht']);
希望这能有所帮助,尽管只是一个小插曲,我还是建议大家仔细阅读并熟悉一些PHP的最佳实践


在您的代码中,我会尝试重构它,并使用
password\u hash()
mysqli.*
作为
MD5()
不安全,最新版本的PHP中删除了
mysql\uucode>扩展,在此之前已被弃用。

我认为这只是一个输入错误,您创建了两个变量,分别名为
$username
$password
,但您在查询中没有使用它们,查询使用的是
$gebruikersnaam
$wachtwoord
,当然还没有定义

因此,对这个问题进行修正

if(isset($_POST['login'])){

    $username =mysql_real_escape_string( $_POST['naam']);
    $password =md5( $_POST['wacht']);

    $check_user = "SELECT * 
                   FROM users 
                   WHERE gebruikersnaam='$username' 
                     AND wachtwoord='$password'";

    $run =mysql_query($check_user);

    if(mysql_num_rows($run)>0){

    $_SESSION['naam']=$gebruikersnaam;

        echo "<script>window.open('welkom.php','_self')</script>";
}
if(isset($\u POST['login'])){
$username=mysql\u real\u escape\u字符串($\u POST['naam']);
$password=md5($_POST['wacht']);
$check\u user=“选择*
来自用户
其中gebruikersnaam='$username'
和wachtwoord=“$password”;
$run=mysql\u query($check\u user);
如果(mysql_num_rows($run)>0){
$\会话['naam']=$gebruikersnaam;
echo“window.open('welkom.php','u self');
}
补充说明:

请不要使用
mysql\uuz
数据库扩展,它已被弃用(在PHP7中永远消失) 特别是如果你只是在学习PHP,那么就花点精力学习
PDO
mysqli_u979;
数据库扩展,


不要因为按下“提交”按钮而假设设置了值。在所有
$\u POST
项目上使用
isset
。可能您没有定义$gebruikersnaam或$wachtwoord?@Script47我确实在所有POST项目上使用isset,请检查isset中的用户i。在使用
isset
之前,您正在分配一个变量。请替换您的query by
$check_user=“从用户中选择*,其中gebruikersnaam='$username'和wachtwoord='$password''
mmm好的,我可以在同一个地方用密码散列替换MD5吗?还有一点,手册将是一个很好的开始:我想给你更多的信息,但我现在没有时间,我可以简单地用mysli替换msql吗?不,我恐怕没有那么简单,我有现在我一直在阅读,这对我来说真的很复杂,我刚刚掌握了mysql的诀窍……问题是新的PHP7中不再存在
mysql\u
扩展。因此,使用
mysql\u
编写的任何代码都不会在该版本的PHP上运行。不幸的是,除了学习
mysqli\u
PDO
之后,再浪费更多的时间在
mysql
扩展上