消息传递问题!

时间:2011-01-04 22:17:29

标签: php

我有一个正常运行的消息传递脚本 我想做的是允许2件额外的东西。

一个是消息我按钮。 第二是回复功能。

当用户发送消息时,他们会从下拉框中选择消息。 所以就像<option value ="id">一样,它会显示用户名。

当使用消息我按钮时,我假设我需要发布用户名并从列表中选择它。 在回复时,我再次发布用户名并从列表中选择它?

<form method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>?p=new'>
    <input type='hidden' name='rfrom' value='<?php echo $row['username']; ?>' />
    <input type='hidden' name='rsubject' value='Re: <?php echo $row['title']; ?>' />
    <input type='hidden' name='rmessage' value='Re: <<?php echo $row['message']; ?>>' />
    <input type='submit' name='reply' class="button" value='Reply' />
</form>

这是回复代码。如您所见,我将用户名传递为$_POST['rfrom']

我想出了以下代码,从列表中选择用户。

$fromname=(isset($_POST['rfrom'])) ? $_POST['rfrom'] : ''; //ought to validate $_POST
$selected=($u==$fromname) ? 'selected="selected"' : '';
echo "<option value='$uid'>$u</option>"; 

这不起作用,当我点击回复时,我只是在列表中找到第一个用户。

另外,有人可以确认我是否可以使用id来代替用户名吗? 使用按钮从用户的个人资料中发送新消息会更容易。

谢谢你的阅读,希望你能帮忙!

修改

我现在正在使用$_POST['rfrom']传递用户ID。

用户ID将是选项值。

但是,我无法在列表中选择正确的用户。

有人请帮忙!

3 个答案:

答案 0 :(得分:0)

我绝对会在表单的POST中使用userId,并将其验证为远端的INT,这也会使Drop O'Tables这样的名称不会破坏您的表单。

答案 1 :(得分:0)

当您输出选择框选项时,您忘记包含$selected

变化:

echo "<option value='$uid'>$u</option>"; 

要:

echo "<option value='$uid' $selected>$u</option>"; 

答案 2 :(得分:0)

有一个firefox错误,在刷新页面或使用浏览器后退按钮时,它无法正确识别selected="selected"。在其他浏览器中测试它,以确保它是您的代码实际上是问题。

从Mozillazine逐字复制:

  

按住Shift键的同时按下重新加载按钮。