2014-04-15 196 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'并查看整个文件是否在那里。 –