2011-12-16 2 views
0

스크립트에서 작업하고 있었지만 한 지점에서 멈추었습니다.데이터베이스 액세스 오류, 일부 PHP 함수 어쩌면

하지만 사용자가 사용자 ID를 가져 와서 확인 코드를 설정하고 데이터베이스에 저장하여 액세스 할 때 다른 사용자에게 알립니다. 이 코드는 친구를 추가하고 친구를 확인한 다음 친구를 친구 목록에서 삭제합니다. 그 오류는 다른 누군가가 친구 추가를 요청하면 아무런 통지도받지 못하고 상대방이 여전히 첫 번째 상대방을 친구로 추가 할 수 있지만 어느 쪽에도 효과가 나타나지 않는다는 것입니다. 나는 실제 문제가 무엇인지 알 수는 없다고 생각합니다. 나는 전화를하고 기능을 점검했지만 문제가 무엇인지 알아낼 수는 없습니다. 다음과 같이 데이터베이스의 필드 값은 다음과 같습니다 - ID/friend_id/USER_ID/verify_code이 코드입니다

-

@session_start(); 
if(empty($_SESSION["email"]) and empty($_SESSION["display_name"])) 
{ 
header("Location: ./login.php"); 
exit; 
} 

$user_id=get_user_data('user_id'); 

$id=$_GET[id]; 
////////////////////////////////////////////////////////////////////////// 



////////////////////////////////////////////////////////////////////////// 
if($_GET[f]=='verifyfriend' && $_GET[code]!='') 
{ 
//confirm 
$result=mysql_query("SELECT * FROM `friend` where `verify_code`='$_GET[code]' "); 
if(mysql_num_rows($result)) // existing verify code. 
{ 
//clear code 
$row=mysql_fetch_assoc($result); 
mysql_query("UPDATE `friend` SET `verify_code`='' WHERE        `verify_code`    '$_GET[code]'"); 

    //add friend's friend 
    mysql_query("INSERT INTO `friend` (`friend_id` ,`user_id`) VALUES ('$row[user_id]', '$row[friend_id]') "); 


    //update friend number: initiator 
    $row2 = mysql_fetch_array(mysql_query("select * from `user` where user_id='$row[user_id]'")); 
    $friends_num=$row2[friends_num]+1; 
    $query="UPDATE `user` set friends_num='$friends_num' where user_id='$row[user_id]'"; 
    $result=mysql_query($query); 
    //update friend number: friend 
    $row3 = mysql_fetch_array(mysql_query("select * from `user` where user_id='$row[friend_id]'")); 
    $friends_num=$row3[friends_num]+1; 
    $query="UPDATE `user` set friends_num='$friends_num' where user_id='$row[friend_id]'"; 
    $result=mysql_query($query); 


} 



echo "<script>alert('".l('Friend added!')."'); location='/my/'</script>"; 




} 


////////////////////////////////////////////////////////////////////////// 
if($_GET[f]=='addfriend') 
{ 
// 就是否已经是好友 
$result=mysql_query("SELECT * FROM `friend` where user_id='$user_id' and friend_id='$id' and `verify_code`='' "); 

if(mysql_num_rows($result)==0&&$user_id!=$id) 
{ 
    $query="DELETE FROM `friend` where `user_id`='$user_id' and `friend_id`='$id' "; 
    $result=mysql_query($query); 

    $code=md5(rand()); 
    $query="insert into `friend` (`user_id`,`friend_id`, `verify_code`) values ('$user_id','$id', '".$code."')"; 
    $result=mysql_query($query); 

    $url="http://"._DOMAIN_."/my/func.php?f=verifyfriend&code=".$code; 
    mailcom($id,'addfriend',"$url"); 

    //////////end friend number//////// 
    echo "{'MSG':'1'}"; 
} 
else 
{ 
    echo "{'MSG':'0'}"; 
} 
exit; 
} 
////////////////////////////////////////////////////////////////////////// 
if($_GET[f]=='delfriend') 
{ 
$result=mysql_query("delete from `friend` where user_id='$user_id' and friend_id='$id' limit 1"); 
////////user 's friend number ////////// 
    $row = mysql_fetch_array(mysql_query("select * from `user` where user_id='$user_id'")); 
    $friends_num=$row[friends_num]-1; 
    $query="UPDATE `user` set friends_num='$friends_num' where user_id='$user_id'"; 
    $result=mysql_query($query); 
//////////end friend number//////// 
echo "<script>alert('".l('Friend deleted!')."');</script>" ; 

} 

답변

0
@session_start(); 
if(empty($_SESSION["email"]) && empty($_SESSION["display_name"])) 
{ 
header("Location: ./login.php"); 
exit; 
} 

$user_id=get_user_data('user_id'); 

$id=$_GET['id']; 
////////////////////////////////////////////////////////////////////////// 



////////////////////////////////////////////////////////////////////////// 
if($_GET['f']=='verifyfriend' && $_GET['code']!='') 
{ 
//confirm 
$result=mysql_query("SELECT * FROM friend where verify_code='$_GET[code]' "); 
if(mysql_num_rows($result)) // existing verify code. 
{ 
//clear code 
$row=mysql_fetch_assoc($result); 
mysql_query("UPDATE friend SET verify_code='' WHERE verify_code = '$_GET[code]'"); 

    //add friend's friend 
    mysql_query("INSERT INTO friend (friend_id, user_id) VALUES ('$row[user_id]', '$row[friend_id]') "); 


    //update friend number: initiator 
    $row2 = mysql_fetch_array(mysql_query("select * from user where user_id='$row[user_id]'")); 
    $friends_num=$row2[friends_num]+1; 
    $query="UPDATE user set friends_num='$friends_num' where user_id='$row[user_id]'"; 
    $result=mysql_query($query); 
    //update friend number: friend 
    $row3 = mysql_fetch_array(mysql_query("select * from user where user_id='$row[friend_id]'")); 
    $friends_num=$row3[friends_num]++; 
    $query="UPDATE user set friends_num='$friends_num' where user_id='$row[friend_id]'"; 
    $result=mysql_query($query); 


} 



echo "<script>alert('".l('Friend added!')."'); location='/my/'</script>"; 




} 


////////////////////////////////////////////////////////////////////////// 
if($_GET['f']=="addfriend") 
{ 
// 就是否已经是好友 
$result=mysql_query("SELECT * FROM friend where user_id='$user_id' and friend_id='$id' and verify_code='' "); 

if(mysql_num_rows($result)==0 && $user_id!=$id) 
{ 
    $query="DELETE FROM friend where user_id='$user_id' and friend_id='$id' "; 
    $result=mysql_query($query); 

    $code=md5(rand()); 
    $query="insert into friend (user_id, friend_id, verify_code) values ('$user_id','$id', '$code')"; 
    $result=mysql_query($query); 

    $url="http://"._DOMAIN_."/my/func.php?f=verifyfriend&code=".$code; 
    mailcom($id,'addfriend',"$url"); 

    //////////end friend number//////// 
    echo "{'MSG':'1'}"; 
} 
else 
{ 
    echo "{'MSG':'0'}"; 
} 
exit; 
} 
////////////////////////////////////////////////////////////////////////// 
if($_GET['f']=="delfriend") 
{ 
$result=mysql_query("delete from friend` where user_id='$user_id' and friend_id='$id' limit 1"); 
////////user 's friend number ////////// 
    $row = mysql_fetch_array(mysql_query("select * from `user` where user_id='$user_id'")); 
    $friends_num=$row[friends_num]-1; 
    $query="UPDATE `user` set friends_num='$friends_num' where user_id='$user_id'"; 
    $result=mysql_query($query); 
//////////end friend number//////// 
echo "<script>alert('".l('Friend deleted!')."');</script>" ; 

}