php
2009-11-09 146 views 0 likes 
0

有人可以检查PHP编码是否正确 script。它需要一双新鲜的眼睛来检查。检查PHP编码是否正确

由于这个脚本是稍微大一点的,因为我在这最后的工作,我不记得我做修复它是什么小的变化...

那么,有什么错呢?复选框权限没有被保存在这一刻 - 不知道为什么:(

if ($_POST) { 
$upd = mysqli_query($db, "UPDATE `tbl_user` SET `username` = '".mysqli_real_escape_string($db,$_POST['username'])."', `userfullname` = '".mysqli_real_escape_string($db,$_POST['fullname'])."', `useremail` = '".mysqli_real_escape_string($db,$_POST['email'])."', `userlevel`= '".mysqli_real_escape_string($db,$_POST['userlevel'])."', `usertitle` = '".mysqli_real_escape_string($db,$_POST['title'])."' WHERE `userid` = '".mysqli_real_escape_string($db,$_GET['userid'])."'"); 
$insert = mysqli_query($db,"UPDATE `tbl_perms` SET 
`1` ='" . mysqli_real_escape_string($db,$_POST['permsA_1']) . "',  
`2` ='" . mysqli_real_escape_string($db,$_POST['permsA_2']) . "',  
`3` ='" . mysqli_real_escape_string($db,$_POST['permsA_3']) . "',  
`4` ='" . mysqli_real_escape_string($db,$_POST['permsA_4']) . "',  
`5` ='" . mysqli_real_escape_string($db,$_POST['permsA_5']) . "', 
`6` ='" . mysqli_real_escape_string($db,$_POST['permsA_6']) . "', 
`7` ='" . mysqli_real_escape_string($db,$_POST['permsA_7']) . "', 
`8` ='" . mysqli_real_escape_string($db,$_POST['permsA_8']) . "', 
`9` ='" . mysqli_real_escape_string($db,$_POST['permsA_9']) . "', 
`10` ='" . mysqli_real_escape_string($db,$_POST['permsA_10']) . "', 
`11` ='" . mysqli_real_escape_string($db,$_POST['permsA_11']) . "', 
`12` ='" . mysqli_real_escape_string($db,$_POST['permsA_12']) . "', 
`13` ='" . mysqli_real_escape_string($db,$_POST['permsA_13']) . "', 
`14` ='" . mysqli_real_escape_string($db,$_POST['permsA_14']) . "', 
`15` ='" . mysqli_real_escape_string($db,$_POST['permsA_15']) . "', 
`16` ='" . mysqli_real_escape_string($db,$_POST['permsA_16']) . "', 
`17` ='" . mysqli_real_escape_string($db,$_POST['permsA_17']) . "', 
`18` ='" . mysqli_real_escape_string($db,$_POST['permsA_18']) . "', 
`19` ='" . mysqli_real_escape_string($db,$_POST['permsA_19']) . "', 
`20` ='" . mysqli_real_escape_string($db,$_POST['permsA_20']) . "', 
`21` ='" . mysqli_real_escape_string($db,$_POST['permsA_21']) . "', 
`22` ='" . mysqli_real_escape_string($db,$_POST['permsA_22']) . "' 
WHERE `userid` = '$id' ")or die(mysqli_error($db)); 

$insert = mysqli_query($db,"UPDATE `tbl_usrdepts` SET 
`1` ='" . mysqli_real_escape_string($db,$_POST['dept_1']) . "',  
`2` ='" . mysqli_real_escape_string($db,$_POST['dept_2']) . "',  
`3` ='" . mysqli_real_escape_string($db,$_POST['dept_3']) . "'  
WHERE `userid` = '$id' ")or die(mysqli_error($db)); 
$updated = "1";} 

if(!empty($_GET['userid'])) {  
$sql = mysqli_query($db, "SELECT * from tbl_user WHERE userid = $id LIMIT 1");  
if(mysqli_affected_rows($db) == 0) {   
    $noid = "1";  
} else {   
    $current = mysqli_fetch_assoc($sql);   
    $currentperms = mysqli_fetch_assoc(mysqli_query($db, "SELECT * from tbl_perms WHERE userid = $id")); 
    $currentdepts = mysqli_fetch_assoc(mysqli_query($db, "SELECT * from tbl_usrdepts WHERE userid = $id"));       
    }} else {  
    $noidentered = "1";} 
// Set Permissions 
$permissionid_select = mysqli_query($db,"SELECT * FROM `tbl_perms` WHERE `userid` = '$id'")or die(mysqli_error($db)); 
$permissionid = mysqli_fetch_array($permissionid_select); 
$deptid_select = mysqli_query($db,"SELECT * FROM `tbl_usrdepts` WHERE `userid` = '$id'")or die(mysqli_error($db)); 
$deptid = mysqli_fetch_array($deptid_select); 
$get_perms = mysqli_query($db,"SELECT * FROM `perm_sets` WHERE `status` = '1' ORDER BY `id` ASC")or die(mysqli_error($db)); 

而现在的显示代码:

<tr valign="top"> 
<td class="alt2">Application Permissions</td> 
<td class="alt2"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr valign="top"><td> 
<div id="ctrl_user[membergroupids]" class="smallfont"> 
<? 
    while($i = mysqli_fetch_array($get_perms)){ 

$pname = $i[pname]; 
$id = $i[id]; 
?> 
    <div> 
<input type="checkbox" tabindex="1" name="permsA_<? echo $id;?>" value="1" <? if($permissionid[$id] == '1') {echo ' checked="checked" ';}?> /><?echo htmlspecialchars($pname);?></div> 
<? } ?>  
</tr> 
</table> 
<br /> 
</td> 
</tr> 

<tr valign="top"> 
<td class="alt1">User Departments</td> 
<td class="alt1"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr valign="top"><td><div id="ctrl_user[membergroupids]" class="smallfont"> 
<? 
$get_depts = mysqli_query($db,"SELECT * FROM `tbl_depts` ORDER BY `id` ASC")or die(mysqli_error($db)); 
while($i = mysqli_fetch_array($get_depts)){ 

$dname = $i[name]; 
$id = $i[id]; 
?>  
    <div><input type="checkbox" tabindex="1" name="dept_<? echo $id ;?>" value="1" <? if($deptid[$id] == '1') {echo ' checked="checked" ';}?> /><?echo htmlspecialchars($dname);?></div> 
<? } ?> 
</tr> 
</table> 
<br /> 
</td> 
</tr> 

感谢

+12

上帝的甜妈 – ryeguy 2009-11-09 19:53:24

+2

如果您希望我们调试您的代码,您至少应该:a。包括它的副本。湾解释你认为什么是错的,你尝试了什么。 – 2009-11-09 19:55:13

+2

你真的把你所有的表列命名为序列号吗?伊克! – dnagirl 2009-11-09 19:58:05

回答

0

几个标准的调试技术和评论:

  • 注释掉表示代码 只是模糊了事情
  • print_r($var)之后立即 每个$ var不行为。立即从问题开始 并从那里回溯。
  • 请勿使用php短标签(<?)。他们 已弃用。
  • 回应你的SQL查询,所以你可以 看看他们是否看起来像你期望的 他们。

在您发布的一大堆代码中,没有什么东西立即显而易见。清理非关键的东西,你(和我们)会更容易看到发生了什么。

+0

有任何文档重新:短标签被弃用?一个快速的谷歌搜索只出现未​​经证实的传言。 – 2009-11-09 22:10:32

+0

弃用是错误的词,但它相当于相同的事情:从手册中“PHP有四种不同的开始和结束标签,其中两种,''和'',总是可用的,另外两个是短标签和ASP风格的标签,可以从'php.ini'配置文件打开和关闭,因此,有些人发现短标签和ASP风格标签方便,便携性较差,一般不推荐。“ http://ca2.php.net/manual/en/language.basic-syntax.phpmode.php – dnagirl 2009-11-10 01:18:44

相关问题