Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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 如果填写了一个输入框,则标题不更改URL_Php_Html - Fatal编程技术网

Php 如果填写了一个输入框,则标题不更改URL

Php 如果填写了一个输入框,则标题不更改URL,php,html,Php,Html,我一直在开发一个使用html、css和PHP的网站。目前,我正试图使它成为这样,当一个人试图注册,但例如离开用户名为空,URL错误应该是这样的。但URL保持不变 注册 用户名 电子邮件 密码 重复密码 应该是&而不是%和$\u POST而不是$\u POST。试试这个: <?php if (isset($_POST['signup-submit'])) { require 'dbh.inc.php'; $username = $_POST['uid'];

我一直在开发一个使用html、css和PHP的网站。目前,我正试图使它成为这样,当一个人试图注册,但例如离开用户名为空,URL错误应该是这样的。但URL保持不变


注册
用户名

电子邮件

密码

重复密码


应该是
&
而不是
%
$\u POST
而不是
$\u POST
。试试这个:

<?php

if (isset($_POST['signup-submit']))
{
    require 'dbh.inc.php';


    $username = $_POST['uid'];
    $email = $_POST['mail'];
    $password = $_POST['pwd'];
    $passwordrepeat = $_POST['pwd-repeat'];

    if (empty($username) || empty($username) || empty($username) || empty($username))
    {

        header("Location: ../PresenceSignup.php?error=emptyfields&uid=".$username."&mail=".$email);
        exit();
    }

}

不要像这样手动构造URL。这是非常不安全和容易出错的。PHP对此有一个解决方案。使用

例如,您可以这样使用它:

$username = $_POST['uid'];
$email = $_POST['mail'];
$password = $_POST['pwd'];
$passwordrepeat = $_POST['pwd-repeat'];

if (empty($username)) {
    $queryStringArray = [
        'error' => 'emptyfields',
        'uid' => $username,
        'mail' => $email,
    ];
    header("Location: ../PresenceSignup.php?".http_build_query($queryStringArray));
    exit();
}

此外,正如所指出的,但其他人认为它是
$\u POST
而不是
$\u POST
,并且您检查了4次
空($username)

为什么要重定向以显示错误消息?只需直接呈现页面。抱歉,第一次使用此网站时,您在第二个脚本上多次检查用户名,如果(empty($username)| | | empty($email)| | empty($passwordrepea){…}
使用此条件来检查其他值,您必须尝试,无更改URL仍然只打印出/PresenceSignup.php?错误=emptyfields&uid=&mail=“您正在填写
电子邮件
输入框吗?我想我弄错了,您使用的是小写字母的
$\u post
,应该是大写字母的
$\u post
。”。更新了答案。现在试试。是的,在我的表单上,我填写了电子邮件、密码和密码重复框,而用户名框为空。好的,是的,这解决了问题。谢谢你,已经做了一段时间,但没有意识到我的语法错误。
<?php

$servername = "localhost";
$dBUsername = "root";
$dBPassword = "";
$dBName = "loginsystem";

$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBName);

if (!$conn)
{
    die("Connection Failed: ".mysqli_connect_error());
}
<?php

if (isset($_POST['signup-submit']))
{
    require 'dbh.inc.php';


    $username = $_POST['uid'];
    $email = $_POST['mail'];
    $password = $_POST['pwd'];
    $passwordrepeat = $_POST['pwd-repeat'];

    if (empty($username) || empty($username) || empty($username) || empty($username))
    {

        header("Location: ../PresenceSignup.php?error=emptyfields&uid=".$username."&mail=".$email);
        exit();
    }

}
$username = $_POST['uid'];
$email = $_POST['mail'];
$password = $_POST['pwd'];
$passwordrepeat = $_POST['pwd-repeat'];

if (empty($username)) {
    $queryStringArray = [
        'error' => 'emptyfields',
        'uid' => $username,
        'mail' => $email,
    ];
    header("Location: ../PresenceSignup.php?".http_build_query($queryStringArray));
    exit();
}