使用$ _POST发送$ _SESSION的问题

时间:2013-04-12 11:48:26

标签: php mysql

我有一个更新表中行的函数,当我对电子邮件值进行硬编码时查询有效,但是当我想将值发送为$_SESSION时,行中没有任何反应,我赢了也得到任何错误。

我的工作查询是:

function profile_name($profile_name){
    $profile_name = mysql_real_escape_string(htmlentities($profile_name)); 
    mysql_query("UPDATE user SET user_name = '{$profile_name}' WHERE user_email = 'my@email.com' ");
}

当我使用以下代码发送my@email.com会话时:

(isset($_POST['profile'], $_POST["{$_SESSION['email']}"])){ } 
 function profile_name($profile_name, $email){
    $profile_name = mysql_real_escape_string(htmlentities($profile_name)); 
        mysql_query("UPDATE user SET user_name = '{$profile_name}' WHERE user_email = '{$email}' ");
    }
没有任何反应。

如果我回应会话$_SESSION['email'],则会打印my@email.com

2 个答案:

答案 0 :(得分:1)

仍然试图通过“发送$ _SESSION”来理解你的意思,但这句话看起来很奇怪:

$_POST["{$_SESSION['email']}"]

它的作用是使用密钥$_SESSIONemail数组中获取值,然后将此值用作$_POST数组的键。

假设您的$_SESSION['email']设置为myemail@hotmail.com,则期望$_POST['myemail@hotmail.com']返回一个值。为此,您的表单必须具有名为myemail@hotmail.com的输入控件。

由于这是一种非常不规范的做事方式,我认为这可能是一个问题,除非你的问题是一个错字。

你可能想要做的是:

if (isset($_POST['profile'], $_SESSION['email'])) {...

答案 1 :(得分:0)

我认为两列都不是整数,所以值应该用单引号包装,

UPDATE user SET user_name = '{$profile_name}' WHERE user_email = '{$email}'

我建议您使用PDOMySQLi开启。