gpt4 book ai didi

javascript - 如何通过PHP动态显示错误信息

转载 作者:行者123 更新时间:2023-11-30 17:33:07 25 4
gpt4 key购买 nike

我正在创建一个 PHP 登录脚本。到目前为止,我只进行了注册工作。

我的问题是,如何在不刷新页面的情况下处理 PHP 中的验证?我想输出用户输入信息错误的反馈,但又不想刷新页面。这是因为我使用的是AJAX,所以我希望它在页面上输出。

这可能吗?

请看这里,如果您“注册”时没有填写任何框,它会向您显示一些错误消息。问题是它会重新加载页面。有没有办法在不重新加载页面的情况下仍然显示这些数据?

http://marmiteontoast.co.uk/fyp/login-register/test/index.php

这是仅针对用户名的 if 语句示例。这也与所有其他字段重复:

if(isset($_POST['username'])){
$username = mysql_real_escape_string(trim($_POST['username']));
if(strlen($username) > 3){
// passed
if(strlen($username) < 31){
// passed
} else {
$_SESSION['status']['register']['error'][] = 'The Username is greater than 30 characters.';
}
} else {
$_SESSION['status']['register']['error'][] = 'The username is less than 4 characters.';
}
} else {
$_SESSION['status']['register']['error'][] = 'The Username is not entered.';
}

一旦它通过了所有验证,它就会:

header('Location:index.php');

错误通过以下方式在索引页上输出:

<?php
if(isset($_SESSION['status']['register']['error'])){
?>
<div class="alert alert-error">
<p><strong>There's a problem!</strong><br /><br />
<?php
foreach($_SESSION['status']['register']['error'] as $error){
// Outputs list of all errors, breaks to new line
echo $error . '<br />';
}
?>
</p>

<强>1。是否可以使用 PHP 动态输出这些?

<强>2。我可以在前端进行验证,然后将其传递给 PHP 传递给数据库吗?

2a。我将如何处理运行用户名存在检查是否在前端?

最佳答案

这是我前几天刚做的东西!

我有一个名为“register.js”的文件、一个名为“register_process.php”的文件和一些 html。

我的服务器是如何设置的:

html_docs (www):
ajax:
register_process.php
js:
register.js
jquery-1.6.2.js
register.html

因此在我的 register.html 中,我的代码如下所示:

<script type="text/javascript" src="js/md5.js"></script> <!-- this is in my head -->
<script type="text/javascript" src="js/jquery-1.6.2.js"></script>
<!-- everything else is in my body -->
<div id="error_message" style="display: none;">

</div>
<div id="register_div">
<input type="text" name="username" id="username"><br>
<input type="password" name="password" id="password"><br>
<input type="submit" name="submitbutton" id="reg_button" value="Register" onclick="AttemptRegisterAjax(); return false;"><br>
</div>

这会调用我的 register.js 文件中的函数。该函数看起来像这样:

function AttemptAjaxRegister(){
var url = "ajax/register_process.php?";
url += "time=" + (new Date().getTime()) + "&un=";
var username_ele = document.getElementById("reg_username");
var password_ele = document.getElementById("reg_password");
var error_ele = document.getElementById("error_message");
var username = username_ele.value;
var password = password_ele.value;
if((username.length >=4) && (password.length >= 4)){
url += encodeURIComponent(username) + "&pw=" + encodeURIComponent(password);
console.log(url);
$.get(url, function(data, status, xhr){
data = data.trim();
if(data != "true"){
error_ele.innerText = data;
error_ele.style = "display: block;";
}else{
window.location = "/profile.php";
}
});
}else{
error_ele.innerText = "Please make sure your password and username are both 4 characters long";
error_ele.style = "display: block;";
}
}

现在,在您的 php 内部,您将希望像注册它一样设置所有内容,但您实际上只想调用 die($YourErrorMessage); 或如果注册成功,die("true");

关于javascript - 如何通过PHP动态显示错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22584469/

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