我有一个疯狂的问题,我就是解决不了。我的表单有两个字段和一个提交按钮。当我提交var并将其传递到$_POST中时…
print('<div class=error>');
print_r($_POST);
print('</div>');这为我提供了两个字段,其中包含期望值以及submit按钮的值。
然而!当我添加以下代码行以便可以根据submit按钮进行处理时,它将清除所有数据。post数组显示为空。
if ($_POST['submit'] == 'Submit') {这将清除数据。如果我将值从'Submit‘更改为其他值,变量仍然会显示在$_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;
}
}如果我在检查submit按钮是否具有与submit按钮的实际值不同的值时更改了该值,即'Submit‘-它将清除发送到$_POST的所有变量
发布于 2012-01-25 02:46:08
如果您想检查哪个提交按钮被单击了,您只需在数组$_POST中查找它的名称作为键。
所以你应该这样做:
if (array_key_exists('submit', $_POST)) {
// your code
}小建议:在将$_POST数据放入查询之前,最好对其进行转义!看看这个:http://php.net/manual/en/function.mysql-real-escape-string.php
发布于 2012-01-25 03:23:46
从你的帖子看,你的代码不应该清空$_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 );
https://stackoverflow.com/questions/8992160
复制相似问题