我的php代码有两个问题。
第一个是变量
$linkorig
可以看到
$_POST['formsubmitted']
,当我从重定向页面获取它时?
第二个问题是在完成所有错误检查后,如何通过不同的操作提交表单?
也许可以使用一些javascript或php代码。
<?php
$linkorig=$_POST['link-orig']; // get destination link from redirected page , for excample http://mikrotik.lv -- works fine
if (isset($_POST['formsubmitted']))
{
// script try login with credentials with <form action="login.php" --- works fine
//Error checking !
if (empty($error)) //if not found any errors {
// login with credentials and same form but with <form action="other_login.php" --- i dont know how to do :(
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login Form</title>
</head>
<body>
<form name="login" action="login.php" method="post" class="registration_form" onSubmit="return doLogin()" >
<input type="hidden" name="dst" value="<?php echo $linkorig; ?>" />
<input type="hidden" name="popup" value="true" />
<fieldset>
<legend>Login Form </legend>
<p>Enter Your username and Password Below </p>
<div class="elements">
<label for="name">Email :</label>
<input type="text" id="e-mail" name="username" size="25" value="" />
</div>
<div class="elements">
<label for="Password">Password:</label>
<input type="password" id="Password" name="password" size="25" />
</div>
<div class="submit">
<input type="hidden" name="formsubmitted" value="TRUE" value="OK" />
<input type="submit" value="Login" />
</div>
</fieldset>
</form>
<!-- $(if error) -->
<br /><div style="color: #FF8080; font-size: 9px"> </div>
<!-- $(endif) -->
<script type="text/javascript">
<!--
document.login.username.focus();
//-->
</script>
</body>
</html>
答案 0 :(得分:1)
您可以轻松地将一个表单用于两个操作:
<form method='post' action='post.php'>
<input type='text' name='field1' />
<input type='text' name='field1' />
<button name='action1'>action1</button>
<button name='action2'>action2</button>
</form>
在页面post.php
上:
您的所有变量都位于$_POST
,即$_POST['field1'], $_POST['field2'], $_POST['action1'] and $_POST['action2']
使用简单的条件:
if(isset($_POST['action1'])) {
//some code here but still check action2
// edit : you can call the action2 with jquery and [ajax][1]
// you can use header('location: http://example.com?field1='.$_POST['field1'].'&field2='.$_POST['field1']) to redirect, but no output before using header => see ob_get_clean() if you have any problem.
}
else { exit; } //stop it all if action1 failed
但是,如果您重定向页面,则不再有$ _POST变量。您可以使用/page.php?var1=...
和$ _GET,就像使用$ _POST一样。