2016-12-24 81 views
0

我有2個重要的在這裏 - 系統消息(系統消息)和friendrequests(包含所有朋友/待決/拒絕的請求)。MySQL和PHP的錯誤

下面是我使用這個腳本的主要代碼:

if(isset($invitefriend)){ 
if(!empty($invitefriendname)){ 
    if($invitefriendname !== $sessionname){ 
     $sqlcheckforrequest = "SELECT * FROM friendrequests WHERE sendername='$sessionname' AND recipientname='$invitefriendname'"; 
     $resultcheckforrequest = mysqli_query($conn, $sqlcheckforrequest); 
     if(mysqli_num_rows($resultcheckforrequest) == 0){ 
      $sqlscheckforusername = "SELECT * FROM registered WHERE userName='$invitefriendname'"; 
      $resultcheckforusernamesql = mysqli_query($conn, $sqlscheckforusername); 
      if(mysqli_num_rows($resultcheckforusernamesql) !== 0){ 
       while($reqfriend = mysqli_fetch_array($resultcheckforusernamesql)){ 
        $frsendid = $reqfriend['id']; 
        $frsendname = $reqfriend['userName']; 
       } 
       $sqlsendrequest = "INSERT INTO friendrequests (senderid,recipientid,sendername,recipientname,status) VALUES ('$sessionid','$frsendid','$sessionname','$frsendname','0')"; 
       $resultsendrequest = mysqli_query($conn, $sqlsendrequest); 
       if($resultsendrequest == true){ 
        if($rights = 0){ 
         $myusernamefriendupdate = "<a href=\'profile.php?id=$sessionid\' class=\'u-onsys\'>$sessionname</a>"; 
        } 
        if($rights = 1){ 
         $myusernamefriendupdate = "<a href=\'profile.php?id=$sessionid\' class=\'cmod-onsys\'>$sessionname</a>"; 
        } 
        if($rights = 2){ 
         $myusernamefriendupdate = "<a href=\'profile.php?id=$sessionid\' class=\'mod-onsys\'>$sessionname</a>"; 
        } 
        if($rights = 3){ 
         $myusernamefriendupdate = "<a href=\'profile.php?id=$sessionid\' class=\'adm-onsys\'>$sessionname</a>"; 
        } 
        if($rights = 4){ 
         $myusernamefriendupdate = "<a href=\'profile.php?id=$sessionid\' class=\'root-onsys\'>$sessionname</a>"; 
        } 
       $systemmessage = "$myusernamefriendupdate invited you to become his friend."; 
       $systemtitle = "Friend request"; 
       $sqlupdatesystemmessage = "INSERT INTO systemmsg (systemtitle, systemto, systemtext) VALUES ('$systemtitle','$frsendname','$systemmessage')"; 
       mysqli_query($conn, $sqlupdatesystemmessage); 
       $countsystemmessages++; 
       $invitefrerror = "Success"; 
       } 
      } else { 
       $invitefrerror = "We couldn't find that username"; 
      } 
     } else { 
      $invitefrerror = "You already invited this user"; 
     } 
    } else { 
     $invitefrerror = "Inviting yourself"; 
    } 
} else { 
    $invitefrerror = "Empty"; 
} 

}

因此腳本應該工作方式:

用戶1發送好友請求,用戶2 ,用戶2收到系統消息說: usericon(由已發送請求的用戶權限變量)用戶名已向您發送邀請。 (或其他)

我們有一個包含2個輸入文本並提交的正常形式。我們從註冊(用戶)數據庫選擇了我們會議的權利,它是

$rights = $row['rights']; 

之前,我點擊「發送請求」我的工作正常(會話權)(獲得從DB 0的實數(用於用戶,聊天版主爲1,版主爲2,管理員爲3,根目錄爲4),但是當我點擊那個小小的厚臉皮按鈕時,權限會變成一個常數(本例中爲4),並顯示來自正常的邀請我不知道如何解決這個問題以及實際發生的錯誤

我希望你們大多數人都能理解我的問題,因爲除了你以外沒有其他人可以問你了此刻,

感謝您的時間!

+0

'如果($權利= 0){'你分配給它,所以所有這些'if'語句將返回true。看看這個:http://stackoverflow.com/a/2063500/7334173 – Tolios

+0

工作,謝謝...這樣一個愚蠢的錯誤。 – simplepickup

回答

0

更改您的if ($rights = 1) {實例if ($rights == 1) {使用比較操作,而不是變量賦值。單個等號(=)總是返回被分配的值,並可以鏈接,因此($權利= 1)將永遠是正確的。

欲瞭解更多信息,檢查出The 3 different equals