php mysql + 创建好友请求系统
Posted
技术标签:
【中文标题】php mysql + 创建好友请求系统【英文标题】:php mysql + create a friend request system 【发布时间】:2013-04-28 15:07:34 【问题描述】:我正在创建一个好友请求系统,允许用户相互发送请求以添加为 Facebook 等好友 我有两个条件,如果:
用户是个人资料所有者,他不能添加自己我会回应 错误信息 用户不是配置文件的所有者,它将回显一条消息: 说等待然后发送请求如果用户已经发送了请求,我将回显一条消息以告知用户已发送请求。
但错误是我处于第一个条件,因为系统显示用户是所有者个人资料,但这是错误的
谁能帮帮我??
这是一段代码
function addAsFriend(a,b)
//alert("Member with id:" + a + "request friendship with the memeber with id:" + b);
var url = "script_for_profile/request_as_friend.php";
$("#add_friend").text("please wait...").show();
$.post(url,request:"requestFreindship",mem1:a,mem2:b,function(data)
$("#add_friend").html(data).show().fadeOut(12000);
);
<div class="interactContainers" id="add_friend">
<div align="right"><a href="#" onclick="return false" onmousedown="javascript:toggleInteractContainers('add_friend');">Cancel</a></div>
Add <?php echo $username ?> as Friend?
<a href ="#" onclick="return false" onmousedown="javascript:addAsFriend(<?php echo $_SESSION['user_id']; ?>,<?php echo $userid; ?>);">Yes</a>
request_as_friend.php
<?php
//var we need for both members
$mem1=preg_replace('#[^0-9]#i','',$_POST['mem1']);
$mem2=preg_replace('#[^0-9]#i','',$_POST['mem2']);
if(!$mem1||!$mem2)
echo "Error .missing data";
exit();
if($mem1==$mem2)
echo "Error you can not add yourself as friend";
exit();
require_once('../include/connect.php');
if($_POST['request']=="requestFriendship")
//check that there is not a request pending where this viewer is requesting this profile owner
$sql = mysql_query("SELECT id FROM friend_requests WHERE mem1='$mem1' AND mem2='$mem2'limit1")or die(mysql_error());
$numRows = mysql_num_rows($sql);
if($numRows > 0)
echo "You have a friend request pending already for this member. they must approve it when they view their request list";
exit();
//check that there is not a request pending where this profile owner is not already requesting this viewer
$sql = mysql_query("SELECT id FROM friend_requests WHERE mem1='$mem2' AND mem2='$mem1'limit1")or die(mysql_error());
$numRows = mysql_num_rows($sql);
if($numRows > 0)
echo "This user has requested you as friend already! Check your friend Request on your profile";
exit();
$sql = mysql_query("INSERT INTO friend_requests(mem1,mem2,timedate) VALUES('$mem1','$mem2',now())") or die (mysql_error("friend request insertionn error"));
//$sql = mysql_query("INSERT INTO pms(to,from,time,sub,msg) VALUES('$mem2','XXXXX',now(),'New Friend Request','YOU Have a New friend request waiting for approval.<br /><br />Navigate to your profile and check your friend request.<br /><br />Thank you.')") or die (mysql_error("friend request PM insertionn error"));
echo "Friend Request sent succesfully. this member must approve the request";
exit();
?>
【问题讨论】:
【参考方案1】:post 数组为 mem1 和 mem2 返回什么?
但是,您不应该比较帖子数据。或者两者都不是。
例如你已经登录,你的 id 存储在 session.您正在打开用户配置文件,即:http://yoursite.com/viewprofile.php?id=1001。然后从 jquery 传递后,您应该检查 PHP smth,如:
if ($_GET['id'] = $_SESSIOM['id'])
//you cannot add yourself
【讨论】:
系统显示用户id与会话相同['user_id']但这是错误的 转储会话并且请求返回相同的ID?【参考方案2】:我完全错了,您不需要创建任何额外的标志,只需存储 user_id
-您在用户登录时从数据库中检索 - 将其存储在会话中然后当他/她点击添加朋友按钮时,在完成友谊功能之前检查$_SESSION['user_id']
和其他用户的ID,如果他们都相同,则表示是同一个人,否则加好友。
【讨论】:
这里怎么用??我的意思是我在数据库中添加布尔字段,然后如果我错了,我会检查 php 是否正确 您可以在用户登录系统时从数据库中检索它的值后将其存储在会话中,虽然这有一些与会话劫持有关的安全问题,但您可以在之前检查它的值 -添加朋友- 这是我必须做的:创建 $is_owner = 0;在 sql 查询之后我添加 $_SESSION['isowner'] = 1;然后我在个人资料页面中使用此会话 @user2338686 不不抱歉我错了,检查我更新的答案,我再次道歉 我确实将 user_id 存储在会话中,所以我需要按照您的说法检查是否 SESSION['user_id'] = $userid ????所以我在 [[Add as Friend? 是]] 我没明白你的意思???以上是关于php mysql + 创建好友请求系统的主要内容,如果未能解决你的问题,请参考以下文章