Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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_Mysql_Login - Fatal编程技术网

Php 登录脚本未按要求工作

Php 登录脚本未按要求工作,php,mysql,login,Php,Mysql,Login,我是php新手,尝试开发一个登录脚本,但当我输入值时,它不起作用。我甚至找不到错误,因为当我点击提交时,它只是刷新页面 这是我的密码 <?php include "../utilities/config.php"; foreach($_GET as $key=>$value) { ${$key} = trim($value); } $error = ''; if($checking_member_availability == 'yes'){ if(empty($user_nam

我是php新手,尝试开发一个登录脚本,但当我输入值时,它不起作用。我甚至找不到错误,因为当我点击提交时,它只是刷新页面

这是我的密码

<?php include "../utilities/config.php"; 

foreach($_GET as $key=>$value)
{
${$key} = trim($value);
}
$error = '';
if($checking_member_availability == 'yes'){
if(empty($user_name)){
    $error .= "Please enter user name.<br />";
}
if(empty($password)){
    $error .= "Please enter password.<br />";
}
if(empty($error)){
        $sql = "select * from `".SITE_TABLE_PREFIX."user` where     email='".$user_name."' and pwd='".$password."'";
        $resultUser  = mysql_query($sql) or die(mysql_error().$sql);
        if(mysql_num_rows($resultUser)>0){
        $rowUser  = mysql_fetch_array($resultUser);
        $error .= '';
        $_SESSION['email']=$user_name;
        }else{
        $error .= "Please check Email and Password.";
    }
}

if(empty($error)){

    echo "myaccount.php";
}
else{
    echo "<font color='#A01D49'>$error</font>";
}
}
?>

您正在使用form
method=“post”
,但正在查找
$\u GET

使用
method=“get”
$\u POST

正如您从评论中收集到的,您的代码在安全性方面还存在一些其他问题。不要灰心,每个人都曾经是初学者。但是,您真的应该仔细阅读并停止将所有$\u GET值分配给字符串-完整命名每个字符串,即:

$user_name = trim($_GET['user_name']);
祝你好运,坚持下去


[编辑]啊,正如Stephen在评论中正确指出的那样,JS使用
get
来提交帖子,所以实际上问题出在“email”的字段名上。

好的,你有一个带有文件名的echo语句:

   echo "myaccount.php";
首先,你确定这就是你想要做的吗?我相信这将呼应字符串“myaccount.php”。我相信您会希望包含“myaccount.php”


第二,您在javascript中引用了表单字段“user_name”,但您试图访问的字段名为“email”。这也可能是问题的一部分

您也可以发布创建表单的HTML吗?您的代码易受SQl注入攻击。查看PDO或mysqli,学习如何使用预先准备好的语句(一点也不难,但可以在将来为您节省很多麻烦!)。看起来你依赖于全球注册。不要这样做,只需关闭register\u globals。我们需要查看html以帮助您。顺便说一句,由于for循环盲目地将表单值保存到内部变量,而select语句将这些值导入sql,您将自己置身于一个受伤的世界。说真的,只需取出所需的$\u GET值,专门将其保存到变量中,并使用mysql\u real\u escape\u字符串对输入进行一点清理。感谢stephenbayer,但我对php非常陌生,我刚刚编写了这段代码,只看了一些教程。表单是post,但javascript通过GET传递,所以我相信这不是问题,我认为这与“username”字段被命名为“email”有关,然后javascript会寻找“user_name”的表单名。你能帮我用sql注入来解决这个问题吗?比如,你能用登录表单处于工作状态并且没有sql注入问题的方式编辑代码吗。我很抱歉,我知道我要求很多,但我真的被thatHi Rajan搞砸了-我很乐意帮助你,但你真的应该提出一个新问题,这样它将在未来帮助其他人。但是我的新问题应该是什么样的?我问了一个新问题,关于工作登录系统。你现在能帮我做这个吗。提前感谢您似乎也在以一种复杂的方式进行验证,有一些javascript库可用,比如jQuery,它们已经被编写来执行您尝试进行的异步调用。我想开发一个以电子邮件作为用户名和密码的登录系统。我在网上搜索了几篇文章,从这些文章中我开发了一种类似于登录代码的代码。我不能纠正这个问题。如果您能修改此代码并使其运行,这将是非常棒的,我将非常感激。我知道我对你的要求很高,但我真的为此感到压力很大。
   echo "myaccount.php";