2014-04-15 109 views
0

我有一個功能的文件,當我將一個函數添加它,無論身在何處,它說,那裏有文件就行意外結束51意外結束時,它不會結束

這裏的我的代碼。

<?php 

function newcat() { 

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 



    if (!isset($_SESSION['user_id'])) { 

    echo '<p class="login">Please <a href="login.php">log in</a> to access this page.</p>'; 

    exit(); 

    } 

    else { 

    echo('<p class="login">You are logged in as ' . $_SESSION['username'] . '. <a href="logout.php">Log out</a>.</p>'); 

    } 







    // Connect to the database 





    if (isset($_POST['submit'])) { 

    // Grab the profile data from the POST 

    $catt = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['catt']))); $desc = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['desc']))); 



    // Update the post data in the database 

     if (!empty($catt)) { 

     strip_tags($post1); 

    $query = "INSERT INTO categories (`name`, `desc`) VALUES ('$catt', '$desc')"; 

     mysqli_query($dbc, $query); 



     // Confirm success with the user 

     echo '<p>Your category has been successfully added. Would you like to go back to the <a href="acp.php">Admin Panel</a>?</p>'; 

     echo $catt; 

     mysqli_close($dbc); 

     exit(); 

     } 

     else { 

     echo '<p class="error">You must enter information into all of the fields.</p>'; 

     } 

    } // End of check for form submission 

if(!verify("O")){exit();} 

echo'<form enctype="multipart/form-data" method="post" action="acp.php?action=vc"> 

    <fieldset> 

     <legend>Create Category:</legend> 

     <label type="hidden" for="catt">Category name:</label><br /> 

     <input type="text" name="catt"><br /><br />    <label type="hidden" for="desc">Description</label><br />    <textarea rows="4" name="desc" id="desc" cols="100"></textarea> 

    </fieldset> 

    <input type="submit" value="Save Category" name="submit" />  

    </form>'; 


    echo '<table class"admin" border=1>'; 

    echo '<tr><th>Categories</th></tr>'; 

    $query = "SELECT * FROM categories ORDER BY cat_id ASC"; 

    $data = mysqli_query($dbc, $query); 

    $gender = $row['gender']; 

    while ($row = mysqli_fetch_array($data)) { 

    echo '<tr>'; 

    echo '<td>'.$row['name'].'</td></tr>'; 

    } 

      mysqli_close($dbc); 



    echo'</table>'; 

    echo'</div>'; 
} 

function verify($permissionName){ 

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    $query = "SELECT permissions FROM user WHERE user_id = '" . $_SESSION['user_id'] . "'"; 

    $data = mysqli_query($dbc, $query); 

$row = mysqli_fetch_array($data); 

    if($row['permissions'] === $permissionName){ 

    return true; 

    } else { 

    return false; 

    } 

} 





function group($groupName){ 

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    $query = "SELECT usergroup FROM user WHERE user_id = '" . $_SESSION['user_id'] . "'"; 

    $data = mysqli_query($dbc, $query); 

$row = mysqli_fetch_array($data); 

    if($row['usergroup'] === $groupName){ 

    return true; 

    } else { 

    return false; 

    } 

} 



function gperms($groupPerm, $user) { 

    $query = "SELECT * FROM groups WHERE group_id = $group"; 

    $data = mysqli_query($dbc, $query); 

$row = mysqli_fetch_array($data); 

$groupname = $row['groupname']; 

$users = explode(",", $row['username']); 

foreach($users as $k => $member){ 

    list($username, $rank) = explode(":", $member); 

} 



    $query = "SELECT usergroup FROM user WHERE user_id = '" . $_SESSION['user_id'] . "'"; 

    $data = mysqli_query($dbc, $query); 

$row = mysqli_fetch_array($data); 

    if(($row['username'] === $user) && ($rank === $groupPerm)){ 

    return true; 

    } else { 

    return false; 

    } 

    } 



?> 

我需要知道是什麼原因造成這一點,因爲上線51它說mysqli_query($dbc, $query);而不應結尾的文件。

此外,我可以在不同的文件中,它的工作原理,但不是在這個文件。

+0

您是否必須發佈*全部*您的代碼? –

+1

如果您正確縮進所有代碼,找到缺少的分號將會很簡單。 –

+0

@JohnConde其實,是的,並且沒有缺少分號 – user3534341

回答

0

也許你有編碼問題。也許你的服務器是由Linux驅動的,但是你使用Windows(反之亦然),而你的文本編輯器沒有考慮到Linux和Windows下的編碼差異。

+0

我可以看到,我猜,但我一直在編寫腳本,讓他們工作到現在。 – user3534341

+0

如果你用Windows編碼,我會建議你使用Notepad ++。在這個文本編輯器中,您可以使用「編碼(選項卡) - >轉換爲Unix格式」 –

+0

服務器足夠聰明來處理這個問題,尤其是在PHP中,它沒有任何區別。此外,以ASCII模式(或「自動」)運行的FTP程序也會爲您轉換換行符。 –

0

未檢測到語法錯誤。

對我來說,這需要在黑暗中拍攝:嘗試將文件再次上傳到服務器。

由於網絡故障,您的文件只能上傳一半,這可能會導致「文件意外結束」錯誤。

+0

我試過......沒有幫助。似乎只是繼續這樣說。我想我可以把它放在不同的文件中。 – user3534341

+0

嘗試一下,是的。另外,如果您有shell訪問權限,請嘗試'cat yourfile.php'並查看整個文件是否在那裏。 –