当前位置: 首页 > 知识库问答 >
问题:

如何在db中检查用户输入并关闭连接,然后在下一页回显输入

满俊楠
2023-03-14

我在test1.php输入表单,我想检查数据库中的用户输入,如果用户输入不存在于数据库中,它将test2.php并在test2.php.回声用户输入,重定向回到test1.php和回声,不可用。

现在,如果输入存在于sql中,我可以重定向回上一页,但无法在test2中回显用户输入。关闭连接后返回php。

这里是test1.php

<!doctype HTML>
<html>
<head>
</head>
<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
    echo '<ul class="err">';
    foreach($_SESSION['ERRMSG_ARR'] as $msg) {
        echo '<li>',$msg,'</li>'; 
    }
    echo '</ul>';
    unset($_SESSION['ERRMSG_ARR']);
}
?>
<form id="loginForm" name="loginForm" method="post" action="test-exec.php">
<table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<th>Email </th>
<td><input name="box" type="text" class="textfield" id="box" /></td>
</tr>
<td><input type="submit" name="Submit" value="Check" /></td>
</tr>
</table>
</form>

这里是testexec。php

<?php
session_start();

require_once('db/config.php');

$errmsg_arr = array();

$errflag = false;

    $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if(!$con) {
    die('Failed to connect to server: ' . mysqli_connect_error());
}

$db = mysqli_select_db($con, DB_DATABASE);
if(!$db) {
    die("Unable to select database");
}

$box = mysqli_real_escape_string($con, $_POST['box']);

if($box != '') {
    $qry = "SELECT * FROM members WHERE box='$box'";
    $result = mysqli_query($con,$qry);
    if($result) {
        if(mysqli_num_rows($result) > 0) {
            $errmsg_arr[] = 'Box already in use';
            $errflag = true;
        }
        @mysql_free_result($result);
    }
    else {
        die("Query failed");
    }
}

if($errflag) {
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    session_write_close();
    header("location: test1.php");
    exit();
}else {
    header("location: test2.php");
    exit();

mysqli_close($con);

}
?>

这里是test2。php

<!doctype HTML>
<html>
<head>
</head>

<form id="loginForm" name="loginForm" method="post" action="register.php">
<table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<th>Email </th>
<td><input name="box" type="text" class="textfield" id="box" value="<?php echo $_POST['box']; ?>" /></td>
</tr>
<td><input type="submit" name="submit" value="Submit" /></td>
</tr>
</table>
</form>

共有1个答案

丌官博文
2023-03-14
if($errflag) {
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    session_write_close();
    header("location: test1.php");
    exit();
}else {
    $_SESSION['SESS_box'] = $box;
    session_write_close();
    header("location: test2.php");
    exit();

    mysqli_close($con);
}
?>


then in the html use this:
<?php echo $_SESSION["SESS_box"]; ?> 
to echo the input.
 类似资料:
  • 我正在做一个简单的程序,要求用户输入0-19之间的五个数字。我想在每个数字后面添加一些东西(比如if语句),以确保它在这个范围内。如果不是,程序应该说“请再读指令”,然后system.exit(0)。这段代码是相关的: 如有任何帮助,将不胜感激。

  • 问题内容: 我有一个简单的PHP邮件程序脚本,该脚本从通过POST提交的表单中获取值并将其邮寄给我: 如何清除输入内容? 问题答案: 用清理发布变量。 这里的例子。喜欢:

  • 如果找到manager用户,则将表设置为可编辑,并执行以下操作:

  • 我正在编写一个程序,我希望将用户输入作为字符/符号(@,+,$,-),并使用if语句测试它以了解它是否是一个特定的符号,所以我使用了下面的代码,但它不起作用

  • 我正试着做这样的事。 当用户单击“+”图标时,将显示模态内部的表单。 并且当用户点击“添加成员”按钮时,模态会关闭,用户输入的输入值会显示在“+”图标的正下方。问题是,当用户再次点击“+”图标时,表单会显示出来,但当点击“添加成员”按钮时,以前的输入值会被用户输入的最新值所改变。 “+”图标 表单代码段 单击“添加成员”按钮时(我只尝试显示firstname) 我尝试了console.log(数据

  • 问题内容: 我在try / catch块中有以下代码 我的问题是,当我必须在finally块中关闭这些流时,是否必须关闭所有3个流,或者仅关闭 befferedreader 会关闭所有其他流? 问题答案: 按照惯例,包装流(用于包装现有流)在关闭时会关闭基础流,因此仅在示例中必须关闭。而且,关闭已经关闭的流通常是无害的,因此关闭所有3个流都不会受到伤害。