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

PHP-如果输入错误,不要转到下一页

PHP-如果输入错误,不要转到下一页,php,Php,我正在使用a.html和a.php。在default.html中,用户必须输入一些信息,当单击按钮时,html会向default2.php发送一篇文章。 在default2.php中,会检查数据,如果数据正确,则会将用户重定向到另一个页面。我遇到的问题是输入的数据有误。 我这里有两个问题: 当数据出错时,我会将用户重定向到default.html,因为如果我不这样做,它将保留在default2.php中,而default2.php对于用户来说没有什么重要的内容。我不知道这是不是最好的办法 当输入

我正在使用a.html和a.php。在default.html中,用户必须输入一些信息,当单击按钮时,html会向default2.php发送一篇文章。 在default2.php中,会检查数据,如果数据正确,则会将用户重定向到另一个页面。我遇到的问题是输入的数据有误。 我这里有两个问题:

  • 当数据出错时,我会将用户重定向到default.html,因为如果我不这样做,它将保留在default2.php中,而default2.php对于用户来说没有什么重要的内容。我不知道这是不是最好的办法
  • 当输入的数据错误时,我希望在default.html中向用户发送回显消息。但是我不知道如何从default2.php触发这个
  • 如何解决这两个问题? 谢谢


    default.html:
    
    PHP4
    身体{
    背景色:#CCC;
    }
    

    用户名

    密码



    default2.php:
    只需将一些参数添加到

    header("Location: default.html?test=failed");
    
    在html中,当变量test设置为failed时,使用Javascript显示一些合理的内容。您可以找到如何使用javascript获取url参数值的教程

    希望有帮助


    除此之外,您可以在
    default.html
    中使用
    PHP
    ,甚至可以使用
    AJAX
    请求进行验证,而无需离开页面并突出显示验证错误。

    只需向

    header("Location: default.html?test=failed");
    
    在html中,当变量test设置为failed时,使用Javascript显示一些合理的内容。您可以找到如何使用javascript获取url参数值的教程

    希望有帮助


    除此之外,您可以在
    default.html
    中使用
    PHP
    ,甚至可以在不离开页面并突出显示验证错误的情况下使用
    AJAX
    请求进行验证。

    如果将default.html设置为PHP文件,则可以通过URL传递变量,这将允许您使用
    $\u GET[]
    检查此变量是否已传递,并向用户显示一条消息

    例如,如果您将用户转发到

    default.php?错误=1

    在默认页面上,您可以有一段代码,例如

    if (isset($_GET['error'])) {
    echo "Show user a message here";
    }
    

    如果将default.html设置为PHP文件,则可以通过URL传递变量,这样就可以使用
    $\u GET[]
    检查是否传递了该变量,并向用户显示一条消息

    例如,如果您将用户转发到

    default.php?错误=1

    在默认页面上,您可以有一段代码,例如

    if (isset($_GET['error'])) {
    echo "Show user a message here";
    }
    

    就个人而言,我不喜欢使用查询字符串向用户公开“error”和“invalid”等状态。在这种情况下,我会将两个文件合并到一个PHP文件中,PHP代码在顶部,HTML代码在底部

    PHP代码中的
    if
    语句是:

    if ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) 
    {
        header("Location: main.php");
        exit;
    }
    else
    {
        $error = true;
    }
    
    在要显示消息的HTML的下面:

    <?php
    
    if( isset( $error ) && $error )
        echo 'You have entered the wrong data!';
    
    ?>
    
    
    
    当然,在表单元素中,您必须删除
    action=“default2.php”

    如果您喜欢分离逻辑和标记,可以将
    default.html
    更改为例如
    template.php
    ,并将其包含在控制器php文件的末尾


    我只是不喜欢没有任何内容的额外页面只充当重定向器的想法。

    就我个人而言,我不喜欢使用查询字符串向用户公开“错误”和“无效”等状态。在这种情况下,我会将两个文件合并到一个PHP文件中,PHP代码在顶部,HTML代码在底部

    PHP代码中的
    if
    语句是:

    if ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) 
    {
        header("Location: main.php");
        exit;
    }
    else
    {
        $error = true;
    }
    
    在要显示消息的HTML的下面:

    <?php
    
    if( isset( $error ) && $error )
        echo 'You have entered the wrong data!';
    
    ?>
    
    
    
    当然,在表单元素中,您必须删除
    action=“default2.php”

    如果您喜欢分离逻辑和标记,可以将
    default.html
    更改为例如
    template.php
    ,并将其包含在控制器php文件的末尾

    我只是不喜欢没有任何内容的额外页面只充当重定向器的想法