gpt4 book ai didi

javascript - 如果存在错误,使用 PHP + 验证表单不会刷新

转载 作者:行者123 更新时间:2023-11-28 01:35:10 25 4
gpt4 key购买 nike

我正在尝试在按下提交后使用 php 验证我的表单,我想要以下内容:

用户按下提交,如果没有发现错误,则处理注册表并将数据发送到数据库。

如果存在错误,页面不会刷新并显示错误控制台。

每次用户单击提交时,如果发现错误,旧消息将被删除,新消息将发布在错误控制台 div 中。

我编写了表单、验证(php)、错误控制台 div 和 CSS 的所有代码。我只是不知道如何将它们整合在一起

类似:

if ( ($username && $email) != 0 ) { error console + remain on same page } else {send to db};

img
(来源:1.ii.gl)

PHP 验证码

        $username = 0;

$uservar = $_POST['username'];

if (empty($uservar))
{
$username = 1;
}
else if (!preg_match("/^\w{5,20}$/",$uservar))
{
$username = 2;
}


if ( ($username) != 0 ) {

echo "<h4 class='error2'><img src='http://s28.postimg.org/ql0x06555/warning6.png' alt='Error'> Error Console</h4> </br>";


switch ($username) {

case 1:
echo "<img src='http://s27.postimg.org/vjxntq073/sign5.png' alt='Error'>";
echo " The Field 'Username' cannot be left blank";
break;
case 2:
echo "<img src='http://s27.postimg.org/vjxntq073/sign5.png' alt='Error'>";
echo " Invalid 'Username' Format - Please use Letters & Numbers only (5-20 Characters)";
break;
}}

</div>

表格:

<form id="registration-form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


<input type="text" name="username" id="username" placeholder="Username">

<button type="submit" name="submit" id="submit" class="button-submit">Submit</button>


</form>

最佳答案

  1. 将主 php 与 html 分开

  2. html 中的 php 只处理简单的逻辑和显示结果

作为快速回答,请检查下面的代码:

<?php

function valiation(){
$aryMsg = array();
$aryExport = array();
if( !isset( $_POST['_submit'] ) ){
//no submit
return array( $aryMsg, $aryExport );
}

$aryPostFieldWhiteList = array( 'username' );
//1. post content filter
//make sure pass all the field you need from $_POST to $aryExport
foreach( $aryPostFieldWhiteList as $strField ){
$aryExport[$strField] = htmlentities( $_POST[$strField], ENT_QUOTES );
}

//2. post content filter
//...
//if username is wrong fill $aryMsg['username'] ... etc

//3. check validation result
if( sizeof($aryMsg) ){
//means not pass the validation, return error message and filtered data
return array( $aryMsg, $aryExport );
}

//4. past validation

//4.1 all db, to insert result
//db insert ...etc


//4.2 page redirect to thank you page
header( 'Location: /thankyou.php' );

die();
}

list( $aryMsg, $aryPost ) = valiation();
?>
<html>
<head>
...
</head>
<body>
<?php if( is_array( $aryMsg ) && sizeof( $aryMsg ) ):?>
<h4 class='error2'><img src='http://s28.postimg.org/ql0x06555/warning6.png' alt='Error'> Error Console</h4>
<ul class="error_msg">
<?php foreach( $aryMsg as $strMsg ):?>
<li><?php echo $strMsg;?></li>
<?php endforeach;?>
</ul>
<?php endif;?>

<form id="registration-form" action="" method="post">

<input type="text" name="username" id="username" placeholder="Username" value="<?php echo $aryPost['username'];?>">

<button type="submit" name="_submit" id="submit" class="button-submit">Submit</button>

</form>

</body>
</html>

关于javascript - 如果存在错误,使用 PHP + 验证表单不会刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com