首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册和登录

注册和登录
EN

Stack Overflow用户
提问于 2016-07-24 00:59:38
回答 1查看 37关注 0票数 0

在这个时候,我遇到了一个奇怪的问题。我做了一个简单的登录表单,它在半程内工作。您确实可以在其中写下您的名字,但是一旦您按下Submit按钮,我就会得到一些“未定义的索引: nameX”符号,甚至在函数之前为它添加了变量等等。

这是sql_connection.sql的内容(至少您必须看到其中的一部分)

代码语言:javascript
复制
/* Registration */
    $nameX = $_POST['name'];

    $query = isRegistered($_POST['name']); //this will check if they are valid or not

    if(isset($_POST['submit'])) {
        if(!empty($_POST['name'])) {
            if($query == true) {
                echo "Welcome back";
            }
        }
        else {
            echo "No accounts found";
        }
    }

function isRegistered($name) {
        global $handler;

        $query = "SELECT ID FROM players WHERE Username= '".$name."'";

        $result = mysqli_query($handler, $query);

        if(mysqli_num_rows($result) != 0) {
            while($row = mysqli_fetch_assoc($result)) {
                return true;
            }
        }
        else {
            return false;
        }
    }

这是实际的形式

代码语言:javascript
复制
<div id="login">
            <form action="includes/sql_connection.php" method="get">
                First name: <input type="text" name="name"><br>
                <input id="button" type="submit" name="submit" value="Sign-Up">
            </form>
        </div>

误差

注意:未定义索引:第101行C:\wamp\www\php\includes\sql_connection.php中的名称

和错误行(行: 101)

代码语言:javascript
复制
$nameX = $_POST['name'];
EN

回答 1

Stack Overflow用户

发布于 2016-07-24 01:11:54

几次快速观察

表单触发一个GET请求,但是您的代码正在查看POST输入。你什么也看不见。约翰·孔德指出了这一点。

您还存在逻辑缺陷。

代码语言:javascript
复制
$nameX = $_POST['name'];    
$query = isRegistered($_POST['name']);

if(isset($_POST['submit'])) {
    if(!empty($_POST['name'])) {

首先使用$_POST['name'],然后检查它是否是非空的。您首先访问表单输入,然后检查以后是否有任何输入(使用isset)。这将导致在没有表单输入时用未定义的变量调用isRegistered。这个顺序应该颠倒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38547771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档