我有一个我无法弄清楚的疯狂问题。我的表单有两个字段和一个提交按钮。当我提交vars时,传递到$ _POST就好了......
print('<div class=error>');
print_r($_POST);
print('</div>');
它为我提供了两个具有预期值的字段以及提交按钮的值。
无论其!当我添加以下代码行,以便我可以根据提交按钮进行处理时,它会清除所有数据。 post数组显示为空。
if ($_POST['submit'] == 'Submit') {
清除数据。如果我将值从“提交”更改为其他任何内容,则vars仍会显示在$ _POST中,当我尝试检查它们时它们会被清除。
我在这里做错了什么想法?
这是表格:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?
if (isset($msg)) {
echo "$msg";
}
?>
<input type=text name='email'><br>
<br><input type=password name='password'>
<br>
<input type="submit" name="submit" value=Submit>
</form>
这是处理代码:
if ($_POST['submit'] == 'Submit') {
echo "<div class=error>made it here</div>";
$u = $_POST['email'];
$p = $_POST['password'];
$auth = mysql_query("Select * from member where email='$u' and password='$p'");
$auth = mysql_fetch_array($auth);
if ($auth) {
$pid = $auth[id];
echo "aa";
sess_register("sess_msg");
$sess_msg = null;
global $auth, $pid;
}
}
如果我在检查提交按钮的值是否超出提交按钮的实际值(即“提交”)时更改值,则会清除发送到$ _POST的所有变量
答案 0 :(得分:1)
如果要查看单击了哪个提交按钮,则只需在阵列$_POST
中查找其名称作为键。
所以你应该这样做:
if (array_key_exists('submit', $_POST)) {
// your code
}
小建议:在将$ _POST数据放入查询之前,你最好逃避数据! 看看这个:http://php.net/manual/en/function.mysql-real-escape-string.php
答案 1 :(得分:0)
从你的帖子中看,你的代码看起来不应该清空$ _POST数组。我现在唯一可以想到的是,在代码中你可能只放了一个'='符号。
var_dump( $_POST );
if ( isset( $_POST['submit'] ) ) {
var_dump( $_POST );
echo "<div class=error>made it here</div>";
$u = $_POST['email'];
$p = $_POST['password'];
$auth = mysql_query("Select * from member where email='$u' and password='$p'");
$auth = mysql_fetch_array($auth);
if ($auth) {
$pid = $auth[id];
echo "aa";
sess_register("sess_msg");
$sess_msg = null;
global $auth, $pid;
}
}
var_dump( $_POST );
var_dump( $_POST );
if ( isset( $_POST['submit'] ) ) {
var_dump( $_POST );
echo "<div class=error>made it here</div>";
$u = $_POST['email'];
$p = $_POST['password'];
$auth = mysql_query("Select * from member where email='$u' and password='$p'");
$auth = mysql_fetch_array($auth);
if ($auth) {
$pid = $auth[id];
echo "aa";
sess_register("sess_msg");
$sess_msg = null;
global $auth, $pid;
}
}
var_dump( $_POST );