我很难将变量从第一种形式传递给第二种形式。涉及四个脚本:debug.php,getVar.php,printme.php和scripta.php。运行debug.php并输入“blah”作为“密码继续”,从下拉列表中选择scripta.php并点击“提交”,我希望看到所有脚本的$ dbpass =“blah”。我在第一页看到它,但是在按下第二页“提交”按钮后,一旦在“printme.php”内部忘记了该值。我怀疑这与变量范围有关。任何帮助表示赞赏。
debug.php:
<html>
<body>
<form name="gateway" action= "" method="POST">
<fieldset>
<label>password to continue:</label>
<input type="text" id="dbpass" name="dbpass">
<label>Select Script:</label>
<select name="scriptSelect" id="scriptSelect">
<option value="">Please make a selection</option>
<option value="scripta.php">scripta</option>
</select>
<input name="updateGateway" type="submit" value="Submit">
<input name="resetForm" id="resetForm" type="reset" value="Reset Form">
</fieldset>
</form>
</body>
</html>
<script type="text/javascript">
document.getElementById('scriptSelect').addEventListener('change', function(e){
var selected_value = e.target.value;
document.forms['gateway'].action = selected_value;
alert(selected_value);
});
</script>
scripta.php:
<html>
<body>
<?php require 'getVar.php'; ?>
<form name="secondform" action= "printme.php" method="POST">
<fieldset>
<label>Hit submit to continue:</label>
<input name="updateScripta" type="submit" value="Submit">
</fieldset>
</form>
</body>
</html>
getVar.php:
<?php
if (isset($_POST['dbpass'])) {
$dbpass = @$_POST["dbpass"];
}
echo "you entered $dbpass";
?>
printme.php:
<?php
echo "Inside of printme, you entered $dbpass";
?>
由于
答案 0 :(得分:0)
<input type="hidden" name="dbpass" value="<? echo $dbpass ?>" />
。<? $dbpass = $_POST['dbpass'] ?>
您提供的脚本中可能存在其他错误。完成上述更改后请回来查看。
答案 1 :(得分:0)
Mate ......这不是它的工作方式...... 每个请求都是独立的 ......
为了将值从一个脚本传递到另一个脚本,您可以使用会话($_SESSION),或者需要重新发布变量。
另外,我不知道你要完成什么,而是以明文形式传递密码......
在scripta.php中添加此
<input name="dbpass" value="<?php $dbpass; ?>" type="hidden"/>
到你的表格。这会将$dbpass
中包含的值发送到隐藏值。
然后,在printme.php中,您需要检索该值,因此只需要getVar.php script
require 'getVar.php';
echo "Inside of printme, you entered $dbpass";
更改 getVar.php
session_start();
if (isset($_POST['dbpass'])) {
$_SESSION['dbpass'] = $_POST["dbpass"]; // you don't need that @
} else {
$_SESSION['dbpass'] = null;
}
然后在后续脚本中,每次要访问dbpass时只需使用
session_start();
$_SESSION['dbpass']
示例:
<?php
session_start();
$_SESSION['dbpass']
echo "Inside of printme, you entered $dbpass";