我的数据库中有2个表:users(id, pass, email)messages(id, ownerid, text)

我想允许每个用户编辑自己的消息(通过ajax,但是现在没有关系)。

问题是,在访问用户的所有消息之后

$STH = $DBH->prepare( "SELECT * FROM messages WHERE ownerid=:ownerid " );
//bind
$data = array( 'ownerid' => $_SESSION['id'] );
//exec
$STH->execute( $data );

while ( $results = $STH->fetch() ) {

    echo $results['text'];
}


我想在可编辑的文本字段中显示它们。问题是,单击某个文本框后,如何获得消息的id?我正在考虑将其包含在html输出中,但这不是最安全的选择。

最佳答案

这是一个安全的选择。当用户编辑他的评论时,您发出GET请求。收到GET请求后,您检查拥有注释的用户的有效性:

SELECT ownerid FROM messages WHERE id = $_GET['id']


(尽管,请确保保护自己免受mysql注入(使用PDO),上面的示例并不安全)。

10-04 16:06
查看更多