Javascript 注册表单(HTML、PHP和MySQL)在出现错误或缺少值后重定向
我对HTML、PHP、CSS等的开发还不熟悉 我需要做这个小的注册和登录表格。我还没有详细介绍面向对象的PHP,我正在以最简单的方式工作,因为这项任务需要在短时间内完成,而在过去的两天里,我只对这些语言进行了编码和实验 我已经有了一个有效的注册和登录表单,当它们被提交时,信息会被发布到另一个php文件中。然后验证数据是否已输入,以及电子邮件是否尚未使用。我需要的是,当电子邮件已经被使用,并且某个字段为空时,它会自动返回到注册/登录表单,并显示一条包含相应错误的消息 我知道这可能是以另一种方式完成的,但最后期限真的很近,所以我需要一个与我已有的解决方案一起工作的解决方案 如果已经有类似的问题,我很抱歉,但是我可能使用了不正确的关键字来搜索解决方案 我目前使用的关键词是重定向,“返回上一页” 如果JavaScript更适合这种操作,那么也可以例外,并且希望指出这一点,尽管php解决方案更受欢迎,因为我目前获得的php知识比JavaScript知识更多Javascript 注册表单(HTML、PHP和MySQL)在出现错误或缺少值后重定向,javascript,php,html,mysql,forms,Javascript,Php,Html,Mysql,Forms,我对HTML、PHP、CSS等的开发还不熟悉 我需要做这个小的注册和登录表格。我还没有详细介绍面向对象的PHP,我正在以最简单的方式工作,因为这项任务需要在短时间内完成,而在过去的两天里,我只对这些语言进行了编码和实验 我已经有了一个有效的注册和登录表单,当它们被提交时,信息会被发布到另一个php文件中。然后验证数据是否已输入,以及电子邮件是否尚未使用。我需要的是,当电子邮件已经被使用,并且某个字段为空时,它会自动返回到注册/登录表单,并显示一条包含相应错误的消息 我知道这可能是以另一种方式完成
谢谢,如果您能提供任何帮助或指导,我们将不胜感激 有很多不同的方法可以做到这一点。如果在提交表单时,您在另一个php文件上执行代码,那么您可能会有一个If语句,如果用户输入有错误,该语句会将标题重定向回表单页面,例如:
if($username == "")
{
header("Location: YOUR_FORM_PAGE.php");
}
希望这有帮助
要将执行添加到同一页面,可以执行以下操作
添加这些按钮
<input type="hidden" id="submitted" name="submitted" value="1">
<span class="label"></span><input type="submit" class="submit" value="Submit"><input type="reset" class="submit" value="Clear">
比如,
if($from_fullname == "")
{
$submission_status = '<div class="vpb_info" align="left">Please enter your fullname in the required field to proceed. Thanks.</div>';
}
if($from\u fullname==“”)
{
$submission_status='请在必填字段中输入您的全名以继续。谢谢';
}
并将其添加到要显示错误的页面中
<p> <?php echo $submission_status; ?></p>
您可以使用
- (A)
- B) 回显元数据HTTP-EQUIV=“刷新” CONTENT=“seconds;URL=\other URL”>
- C) 像你一样使用JS 将需要设置一个超时
if (empty ($_POST ['username']) || empty ($_POST ['password']))
{
echo "Please enter a username, or password";
header ("refresh:5; url=back.php");
exit;
}
听起来像是http重定向(http redirect)()应该能帮到你。你可以用它在你的错误条件下重定向 更新
使用redirect,您可以附加QueryString参数,以便将错误代码和/或消息作为查询字符串参数重定向回login.php页面。这些将帮助您开始注册或注册php文件以及我曾经创建的登录php文件 (个人信息是伪造的) SignUp.php
<?php
session_start();
$name = $_REQUEST['name'] ;
$userpassword = hash('sha512',$_REQUEST['password'] );
$signature = $_REQUEST['signature'] ;
$image = $_REQUEST['image'];
$email = $_REQUEST['email'] ;
$emailreplies = $_REQUEST['emailreplies'] ;
if (!isset($_REQUEST['name'])) {
header( "Location: MotesBlog.php" );
}else{
$username="root";
$password="root";
$database="MotesBlog";
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query=sprintf("SELECT Name FROM users WHERE Name LIKE '%s';",
mysql_real_escape_string($name));
$query=mysql_query($query);
if(mysql_num_rows($query)){
$query = sprintf("SELECT Email FROM users WHERE Name='%s';",
mysql_real_escape_string($name));
$query=mysql_query($query);
$_SESSION['NameTaken'] = true;
$_SESSION['UsedName'] = $name;
$_SESSION['UsedEmail'] = mysql_result($query,0);
header("Location: SignUp.html");
}else{
$query=sprintf("SELECT Email FROM users WHERE Email LIKE '%s';",
mysql_real_escape_string($email));
$query=mysql_query($query);
if(mysql_num_rows($query)){
$_SESSION['EmailTaken'] = true;
$_SESSION['UsedEmail'] = $email;
header("Location: SignUp.html");
}else{
$query = sprintf(" INSERT INTO users VALUES (
NULL , '%s', '%s' , '%s', '%s', '%s', CURRENT_TIMESTAMP , 0, $emailreplies);",
mysql_real_escape_string($name),
$userpassword,
mysql_real_escape_string($signature),
mysql_real_escape_string($image),
mysql_real_escape_string($email));
mysql_query($query);
$query = sprintf("SELECT JoinDate FROM users WHERE Name='%s';",
mysql_real_escape_string($name));
$vcode=md5(mysql_result(mysql_query($query),0));
mysql_close();
require_once "Mail.php";
$from = "PocketWoods Hunting Hall<pwoods@email.com>";
$to = $email;
$subject = "Welcome to Motes Blog";
$body = "<html>
<body>Thank you for your time. <br/>
To ensure a human made this account and not an
automated process please click the link below:<br>
<a href=\"http://site.com/MotesBlog/verifyaccount.php?vcode=".$vcode."&name=".$name."\">
Activate Account
</a>
</body>
</html>";
$host = "mail.root.com";
$username = "root@root.com";
$password = "root";
$headers = array ( 'From' => $from,
'To' => $to,
'Subject' => $subject,
'MIME-Version' => "1.0",
'Content-type' => "text/html; charset=iso-8859-1");
$smtp = Mail::factory('smtp',
array ( 'host' => $host,
'auth' => false,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
header("Location: success.html");
}
}
}
?>
php中的
。您可以使用header('Location:login.php');将一个页面重定向到另一个页面。好的,我找到了关于的信息,但是我可以发送信息吗?例如,login.php只是一个区分一个错误和另一个错误的数字,而login.php会相应地向用户显示一条消息吗?您可以发送类似标题的信息('Location:login.php?error=101');您可以使用$\u GET捕获错误,在if-else中求值并回显一些消息。谢谢,我会尝试的!我试过了,到现在为止效果都不好,它告诉我这个东西没有找到!我不认为C适用,因为我需要的是,一旦注册或登录表单被提交,就会被带到下一个php,除非所有内容都经过验证(每个字段都已填写,电子邮件也未被使用),否则它不会显示任何内容。选项A我已经看到了你给我的链接,但老实说,我不明白它到底是如何工作的。我不理解的部分是[,bool$replace=true[,int$http\u response\u code]])部分,你能给我举个小例子吗?在你的其他php脚本上,一旦你进行了验证,如果验证失败,你将使用选项a。。我认为,你不知道如何验证用户。。。如果这是正确的,你最好在这里发布你的代码。更新后的帖子,请尝试一下,如果可以的话。是的,我会谢谢你。如果你说的是JavaScript验证,不,我不知道怎么做。我所做的验证是以一种非常原始的方式进行的。不,我是说php,但是你可以使用JS。嗨,谢谢。是的,这很好,但是这能向YOUR_FORM_PAGE.php发送一个错误的信号吗,然后错误会显示在YOUR_FORM_PAGE.php中?执行此操作的最佳方法是在用户提交时将其重定向到同一表单页面,这可以通过将页面上的隐藏提交按钮设置为value=1,然后将表单操作设置为表单页面,然后从“如果(isset($\u POST[“submitted”])&&&$\u POST[“submitted”]==1)”,则可以从他们的邮件中显示任何错误消息。
<?php
session_start();
$name = $_REQUEST['name'] ;
$userpassword = hash('sha512',$_REQUEST['password'] );
$signature = $_REQUEST['signature'] ;
$image = $_REQUEST['image'];
$email = $_REQUEST['email'] ;
$emailreplies = $_REQUEST['emailreplies'] ;
if (!isset($_REQUEST['name'])) {
header( "Location: MotesBlog.php" );
}else{
$username="root";
$password="root";
$database="MotesBlog";
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query=sprintf("SELECT Name FROM users WHERE Name LIKE '%s';",
mysql_real_escape_string($name));
$query=mysql_query($query);
if(mysql_num_rows($query)){
$query = sprintf("SELECT Email FROM users WHERE Name='%s';",
mysql_real_escape_string($name));
$query=mysql_query($query);
$_SESSION['NameTaken'] = true;
$_SESSION['UsedName'] = $name;
$_SESSION['UsedEmail'] = mysql_result($query,0);
header("Location: SignUp.html");
}else{
$query=sprintf("SELECT Email FROM users WHERE Email LIKE '%s';",
mysql_real_escape_string($email));
$query=mysql_query($query);
if(mysql_num_rows($query)){
$_SESSION['EmailTaken'] = true;
$_SESSION['UsedEmail'] = $email;
header("Location: SignUp.html");
}else{
$query = sprintf(" INSERT INTO users VALUES (
NULL , '%s', '%s' , '%s', '%s', '%s', CURRENT_TIMESTAMP , 0, $emailreplies);",
mysql_real_escape_string($name),
$userpassword,
mysql_real_escape_string($signature),
mysql_real_escape_string($image),
mysql_real_escape_string($email));
mysql_query($query);
$query = sprintf("SELECT JoinDate FROM users WHERE Name='%s';",
mysql_real_escape_string($name));
$vcode=md5(mysql_result(mysql_query($query),0));
mysql_close();
require_once "Mail.php";
$from = "PocketWoods Hunting Hall<pwoods@email.com>";
$to = $email;
$subject = "Welcome to Motes Blog";
$body = "<html>
<body>Thank you for your time. <br/>
To ensure a human made this account and not an
automated process please click the link below:<br>
<a href=\"http://site.com/MotesBlog/verifyaccount.php?vcode=".$vcode."&name=".$name."\">
Activate Account
</a>
</body>
</html>";
$host = "mail.root.com";
$username = "root@root.com";
$password = "root";
$headers = array ( 'From' => $from,
'To' => $to,
'Subject' => $subject,
'MIME-Version' => "1.0",
'Content-type' => "text/html; charset=iso-8859-1");
$smtp = Mail::factory('smtp',
array ( 'host' => $host,
'auth' => false,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
header("Location: success.html");
}
}
}
?>
<?php
session_start();
$username="root";
$password="root";
$database="MotesBlog";
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$user_name = $_REQUEST['name'];
$user_password = $_REQUEST['password'];
if (!isset($_REQUEST['name'])) {
header( "Location: MotesBlog.php" );
}else{
if(isset($_SESSION['User'])){
if( ($_SESSION['CreatedTime'] + 3600) < time() ){
$_SESSION['Expired'] = true;
}
unset($_SESSION['User']);
}
$query = sprintf("SELECT Password FROM users WHERE Name='%s';",
mysql_real_escape_string($user_name));
$query=mysql_query($query);
if(mysql_num_rows($query)){
$real_password=mysql_result($query,0);
$query = sprintf("SELECT Email FROM users WHERE Name='%s';",
mysql_real_escape_string($user_name));
$query=mysql_query($query);
$email = mysql_result($query,0);
if($real_password == hash('sha512',$user_password)){
$query = sprintf("SELECT Validated FROM users WHERE Name='%s';",
mysql_real_escape_string($user_name));
$query=mysql_query($query);
mysql_close();
if(mysql_result($query,0)){
$_SESSION['User'] = $user_name;
$_SESSION['CreatedTime'] = time();
setcookie("User", $_REQUEST['name'], time() + 60*60*24*365);
header( "Location: MotesBlog.php" );
}else{
$_SESSION['resend_name'] = $user_name;
$_SESSION['resend_email'] = $email;
$_SESSION['NotValidated'] = true;
header( "Location: MotesBlog.php" );
}
}else{
$_SESSION['WrongPW'] = true;
$_SESSION['UsedEmail'] = $email;
header( "Location: MotesBlog.php" );
}
}else{
$_SESSION['WrongName'] = true;
header( "Location: MotesBlog.php" );
}
}
?>