Php 使按钮执行SQL语句
我在这里碰碰运气。我目前正在开发一个网站,人们应该能够发送消息,并添加一个用户作为朋友从该人的个人资料页。我有一个按钮,即使用basicPhp 使按钮执行SQL语句,php,mysql,button,Php,Mysql,Button,我在这里碰碰运气。我目前正在开发一个网站,人们应该能够发送消息,并添加一个用户作为朋友从该人的个人资料页。我有一个按钮,即使用basic子句的[addasfriend]。这样做的最佳解决方案是什么 例如,我希望SQL语句:在单击[Add this friend]按钮时插入到friends(uid、fid、isapproved)值(“1”、“2”、“1”) 我现在只使用php和MySQL。任何建议都是非常受欢迎的。谢谢,伙计们。 按钮调用javascript函数 Javascript函数将(AJA
子句的[addasfriend]。这样做的最佳解决方案是什么
例如,我希望SQL语句:在单击[Add this friend]按钮时插入到friends(uid、fid、isapproved)值(“1”、“2”、“1”)
我现在只使用php和MySQL。任何建议都是非常受欢迎的。谢谢,伙计们。- 按钮调用
函数李>javascript
函数将(Javascript
,可能使用jquery)发布到php文件“addfriend”AJAX
文件执行PHP
,返回mysql
JSON
函数调用Javascript
并显示返回值callback
- 按钮调用
函数李>javascript
函数将(Javascript
,可能使用jquery)发布到php文件“addfriend”AJAX
文件执行PHP
,返回mysql
JSON
函数调用Javascript
并显示返回值callback
对于在同一页面上工作的朋友,您需要使用javascript和Ajax对php文件进行后台调用,该文件将以静默方式处理请求并在成功时返回响应。如果您仅将php用作脚本语言而不使用任何javascript,然后,您应该使该按钮直接指向一个页面,该页面处理给定用户id的添加好友请求
要在同一页面上添加好友,您需要使用javascript和Ajax对php文件进行后台调用,该文件将以静默方式处理请求,并在成功后返回响应。将Ajax请求与POST一起发送和/或将数据发送到负责添加好友的url,例如:mysupersocialnetwork.org/friend/add/
此页面请求将触发php,php将执行脚本。将带有POST和/或获取数据的AJAX请求发送到负责添加好友的url,例如:mysupersocialnetwork.org/friend/add/
此页面请求将触发php,php将执行脚本。如果您不使用AJAX,类似这样的内容就足够了 addfriend.tpl.php文件
<form method="post" action="action_addfriend.php">
<input type="hidden" value="<?=$userid;?>" name="userid" />
<input type="submit" value="Add as Friend" />
</form>
<?php
if ($_POST)
{
$fid = htmlspecialchars(stripslashes($_POST['userid']));
$fid = mysql_real_escape_string($fid);
include("your_connectdb_file.php");
mysql_query("INSERT into friends (uid, fid, isapproved) VALUES ('1', '$fid', '1')");
mysql_free_result();
}
?>
如果您没有使用AJAX,那么这样的东西就足够了
addfriend.tpl.php文件
<form method="post" action="action_addfriend.php">
<input type="hidden" value="<?=$userid;?>" name="userid" />
<input type="submit" value="Add as Friend" />
</form>
<?php
if ($_POST)
{
$fid = htmlspecialchars(stripslashes($_POST['userid']));
$fid = mysql_real_escape_string($fid);
include("your_connectdb_file.php");
mysql_query("INSERT into friends (uid, fid, isapproved) VALUES ('1', '$fid', '1')");
mysql_free_result();
}
?>
你不清楚哪一部分?我对费尔南多下面的回答也有同样的想法。我只是想看看还有哪些其他方法可供选择,因此提出了建议请求。你不清楚哪一部分?我对费尔南多下面的回答有着相同的想法。我只是想看看还有哪些其他方法可以使用,因此我提出了建议请求。我同意这种方法,但我建议不要使用上面的查询。这个查询为SQL注入留下了很大的空间。将PDO或mysqli与准备好的语句一起使用,以便在$fid变量中检测用户提供的数据。好的,如果您在生产服务器中编程,则必须进行验证和清理。顺便说一句,您应该使用->mysql\u real\u escape\u string()@ray:没有任何东西可以阻止SQLI实现这样的目标。谢谢+对于非AJAX的答案,@Fernando,我看到您使用的是mysql\u real\u escape\u字符串,而不是非常糟糕的旧mysql\u escape\u字符串。你是对的,它是安全的,我有罪的下意识反应没有更密切地注意到这个重要的细节。不要让我的错误影响到我仍然强烈建议使用PDO或mysqli以及预处理语句,以防止注入,以及相对于原始的非OO mysql功能的许多其他好处。我同意这种方法,但我建议不要使用上述查询。这个查询为SQL注入留下了很大的空间。将PDO或mysqli与准备好的语句一起使用,以便在$fid变量中检测用户提供的数据。好的,如果您在生产服务器中编程,则必须进行验证和清理。顺便说一句,您应该使用->mysql\u real\u escape\u string()@ray:没有任何东西可以阻止SQLI实现这样的目标。谢谢+对于非AJAX的答案,@Fernando,我看到您使用的是mysql\u real\u escape\u字符串,而不是非常糟糕的旧mysql\u escape\u字符串。你是对的,它是安全的,我有罪的下意识反应没有更密切地注意到这个重要的细节。不要让我的错误影响到我仍然强烈建议使用PDO或mysqli,并准备好防止注入的语句,以及与原始的非OO mysql功能相比的许多其他好处。谢谢!我目前没有使用AJAX,但我预计将来会使用它,所以你的回答会帮助我很多。谢谢!我目前没有使用AJAX,但预计将来会使用它,所以您的回答会有很大帮助。