php
  • parsing
  • syntax-error
  • tstringlist
  • 2012-12-30 91 views 0 likes 
    0

    可能有人請解釋一下爲什麼我recieving在下面的代碼,這個錯誤,我能做些什麼來解決這個問題,錯誤指的是:echo "<tr><td>{$r['logID']}</td><td><a href='viewuser.php?u={$r['>{$r['username']}</a> [{$r['userID']}]</td><td>{$r['amount']}</td><td><a href='5050.php?chal={$r['>Challenge</a></td><td>";語法錯誤,意想不到的T_STRING,期待「]」

    付諸上下文是整個片段。

    <?php 
    include "globals.php"; 
    $minbet=1; 
    $maxg=10; 
    echo "<big>50/50 Crystals Game</big>"; 
    function add_game() 
    { 
         global $ir,$t,$userid, $db, $minbet, $maxg; 
         if(!isset($_POST['amt'])) 
         { 
          echo "<big>Adding a game</big> 
           <form action='5050.php?add=1' method='post'> 
           Amount of crystals:<input type='text' name='amt' size=10 maxlength=10> 
           <input type='submit' value='Add!'></form> 
           ($maxg games max per user) 
           <a href='5050.php'>Back</a>"; 
    
         } 
        else 
         { 
          $_POST['amt'] = abs((int) $_POST['amt']); 
          if($_POST['amt'] < $minbet) 
           { 
            echo "The minimum bet is $minbet 
             <a href='5050.php?add=1'>Back</a>";exit; 
           } 
          $theckcount=$db->query("SELECT logID FROM tchance WHERE userID={$ir['userid']} and active=1"); 
          if($db->num_rows($theckcount) > ($maxg-1)) 
           { 
           echo "There is a maximum of $maxg games per user. 
            <a href='5050.php'>Back</a>";exit; 
           } 
          if($ir['crystals'] < $_POST['amt']) 
           { 
           echo "You cannot afford that amount. 
            <a href='5050.php'>Back</a>";exit; 
           } 
          $db->query("UPDATE users SET crystals = crystals - {$_POST['amt']} WHERE userid = {$ir['userid']}"); 
          $ir['crystals']=$ir['crystals'] - $_POST['amt']; 
          $db->query("INSERT INTO tchance VALUES ('', {$ir['userid']}, {$_POST['amt']}, 1)"); 
          echo "Your game has been set.  Good Luck. 
           <a href='5050.php'>Back</a>"; 
         } 
    
    } 
    function view_games() 
    { 
         global $ir,$t,$userid, $db, $maxg; 
    
         $q=$db->query("SELECT t.*, u.username FROM tchance t left join users u on u.userid = t.userID WHERE t.active = 1 ORDER BY t.logID ASC"); 
    
         echo "<a href='5050.php?add=1'>Add Game</a> 
    
        Table of users awaiting a challenge 
    
         <table class='table' width=50%><tr><th>Game ID</th><th>User</th><th>Amount</th><th>Challenge</th><th>Cancel</th></tr>"; 
         if($db->num_rows($q) < 1){echo "<tr><td colspan=5>There are currenly no challenges</td></tr>";} 
         while($r=$db->fetch_row($q)) 
        { 
         echo "<tr><td>{$r['logID']}</td><td><a href='viewuser.php?u={$r['>{$r['username']}</a> [{$r['userID']}]</td><td>{$r['amount']}</td><td><a href='5050.php?chal={$r['>Challenge</a></td><td>"; 
         if($ir['userid']==$r['userID']){echo "<a href='5050.php?cancel={$r['>Cancel</a>";}             
         echo "</td></tr>"; 
         } 
         echo "</table>"; 
         } 
        function dogame() 
         { 
            global $ir,$t,$userid, $db; 
         $_GET['chal'] = abs((int) $_GET['chal']); 
         $q=$db->query("SELECT t.*, u.username from tchance t LEFT JOIN users u ON t.userID = u.userid Where t.logID={$_GET['chal']} AND t.active = 1 LIMIT 1"); 
            if($db->num_rows($q) > 0) 
         { 
          $r=$db->fetch_row($q); 
          if($ir['crystals'] < $r['amount']) 
           { 
            echo "You cannot afford the challenge amount. 
            <a href='5050.php'>Back</a>";exit; 
           } 
           if($ir['userid'] == $r['userID']) 
           { 
            echo "You cannot accept your own challenge. 
            <a href='5050.php'>Back</a>";exit; 
           } 
           if(rand(1,2) == 1) 
           { 
            $winner=$r['userID']; $loser=$ir['userid']; 
            $winnername=$r['username']; 
            $losername=$ir['username']; 
            $tstring="Sorry, you Lost. Better luck next time. 
            <a href='5050.php'>Back</a>"; 
            $db->query("UPDATE users SET crystals = crystals - {$r['amount']} WHERE userid={$ir['userid']}"); 
            $db->query("UPDATE users SET crystals = crystals + ({$r['amount']} * 2) WHERE userid={$r['userID']}"); 
           } 
           else 
           { 
            $winner=$ir['userid']; $loser=$r['userID']; 
            $winnername=$ir['username']; 
            $losername=$r['username']; 
            $tstring="You Won! Congratulations! You Won {$r['amount']} crystals. 
            <a href='5050.php'>Back</a>"; 
            $db->query("UPDATE users SET crystals = crystals + {$r['amount']} WHERE userid={$ir['userid']}"); 
           } 
           event_add($winner, "The game of {$r['amount']} crystals challenged by <a href='viewuser.php?u={$r['>{$r['username']}</a> was won by <a href='viewuser.php?u={$winner}'>{$winnername}</a>.", $t); 
           event_add($loser, "The game of {$r['amount']} crystals challenged by <a href='viewuser.php?u={$r['>{$r['username']}</a> was won by <a href='viewuser.php?u={$winner}'>{$winnername}</a>.", $t); 
           $db->query("UPDATE tchance SET active = 0 WHERE logID={$_GET['chal']}"); 
           echo $tstring; 
         } 
            else 
         { 
          echo "This game has either been cancelled or someone played before you got the 5050. 
          <a href='5050.php'>Back</a>"; exit; 
         } 
        } 
    
    
    function cancel() 
    { 
        global $ir,$t,$userid, $db; 
        $_GET['cancel'] = abs((int) $_GET['cancel']); 
        $q=$db->query("SELECT * from tchance where logID={$_GET['cancel']} AND active = 1"); 
        if($db->num_rows($q) > 0) 
        { 
         $r=$db->fetch_row($q); 
         $db->query("UPDATE users SET crystals = crystals + {$r['amount']} WHERE userid = {$ir['userid']}"); 
         $ir['crystals']=$ir['crystals'] + $r['amount']; 
         $db->query("UPDATE tchance SET active = -1 WHERE logID = {$_GET['cancel']}"); 
         echo "The game has been cancelled, and your crystals has been returned. 
         <a href='5050.php'>Back</a>"; 
        } 
         else 
        { 
         echo "This game has already been canceled, does not exist, or someone already played. 
         <a href='5050.php'>Back</a>"; 
        } 
      
    } 
    
    if(isset($_GET['cancel'])){cancel();} 
    elseif(isset($_GET['chal'])){dogame();} 
    elseif(isset($_GET['add'])){add_game();} 
    else{view_games();} 
    
    ?> 
    

    感謝您花時間幫助我,教我。

    +0

    我相信我已經完成,因爲你們都說,但我得到這個:http://codepad.org/YDD25GPW –

    +1

    這是越來越可笑 –

    回答

    2
    echo "<tr><td>{$r['logID']}</td><td><a href='viewuser.php?u={$r['>{$r['username']}</a> [{$r['userID']}]</td><td>{$r['amount']}</td><td><a href='5050.php?chal={$r['>Challenge</a></td><td>"; 
    

    你有 「$ R [」 在雙引號中間。用斜線逃脫,你會變得更好(PHP正試圖評估你的變量)。你可能並不意味着有$ R,但只是[R

    echo "<tr><td>{$r['logID']}</td><td><a href='viewuser.php?u={\$r['>{$r['username']}</a> [{$r['userID']}]</td><td>{$r['amount']}</td><td><a href='5050.php?chal={$r['>Challenge</a></td><td>"; 
    

    我個人認爲你的語法是混亂的,我寧願使用「」連接字符串和變量:

    echo ' <tr><td>' 
         . $r['logID'] 
         . '</td><td>' 
         . '<a href="viewuser.php?u=r[' . $r['username'] .']">'.$r['username'].'</a>' 
         . '['.$r['userID'].']</td><td>' 
         . $r['amount'] . '</td><td>' 
         . '<a href="5050.php?chal=r">Challenge</a></td><td>'; 
    
    +0

    感謝chwagssd,我做到了,但現在我收到一個意想不到的tstring,它期待','或';' –

    2

    你忘了關陣列: ?chal={$r['>Challenge</a></td><td>

    +0

    我相信我已經關閉它,現在仍然收到相同的錯誤:(http://codepad.org/YDD25GPW –

    0

    您的回聲中還有很多未轉義的雙引號引起了另一個錯誤。看看你能否找到它們!這是很好的做法。

    我還建議在過度使用雙引號時使用單引號,反之亦然。

    相關問題