2016-01-22 73 views
0

我正在根据管理员输入创建激活/停用。 这个想法是允许管理员从帐户表中查看所有帐户,并使用无线电输入从选择(激活或停用)中选择一个帐户。 我真的很感激,如果你们可以帮助我在这个网页上,我的项目几乎完成。 谢谢所有您的建议,我只是想让管理员可以选择激活或停用用户帐户,使用此代码。 该代码基本上查看帐户的所有信息,管理员只是复选框,她想激活任何人,并从无线电选择(激活/停用),并根据她的输入将设置数据库中的值为0,这是停用和1激活。 谢谢PHP/HTML:通过管理页面使用单选按钮激活用户

<?php 
session_start(); 
if(isset($_SESSION['username'])){ 

//Connect to DB 
//include_once("Project/CIEconn.php"); 
$mysqlCON= mysqli_connect("localhost", "root", "","CIE") or die(mysqli_connect_error()); 
mysqli_select_db($mysqlCON,'CIE') or die ("no database"); 

if(isset($_POST['ActivateUsers'])){ 
     if(empty($_POST['Id']) || $_POST['Id'] == 0){ 
      echo"<h4> please choose someone to activate </h4>"; 
     }else{ 

      $impid = implode("' , '" , $_POST['Id']); 
$sqlDelete = "UPDATE Accounts SET Activated='$_POST[activate]' WHERE Id IN ('" . $impid . "')"; 

$DeleteQuery = mysqli_query($mysqlCON,$sqlDelete) or die ("Error : ".mysqli_error($mysqlCON)); 

     } 
} 

$sqlCommand = "SELECT * FROM Accounts "; 
$result = mysqli_query($mysqlCON,$sqlCommand) or die(mysql_error()); 

echo "<h1> Activate/Deactive User Account </h1>"; 

echo "<table border='1' width = 80% align=center > 
<tr> 
<th>Check </th> 
<th>SSU ID</th> 
<th>Email</th> 
<th>First Name</th> 
<th>Last Name</th> 
<th>User Type </th> 
<th>Activated</th> 
<th>Activate/Deactive</th> 

</tr>"; 

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

echo "<tr>"; 
echo "<form action='ActivateD.php' method='post'>"; 
echo "<td> <input type='checkbox' name='Id[]' value='". $row['SSU'] ."' /> </td> " ; 
echo "<td align=center > " . $row['SSU'] . "</td>"; 
echo "<td align=center>" . $row['Email'] . "</td>"; 
echo "<td align=center>" . $row['First_Name'] . "</td>"; 
echo "<td align=center>" . $row['Last_Name'] . "</td>"; 
echo "<td align=center>" . $row['userType'] . "</td>"; 
echo "<td align=center>" . $row['Activated'] . "</td>"; 
echo "<td align=center>" . 
" 
<input type='radio' name='activate' value='1' > Activate 
    <input type='radio' name='activate' value='0'> Deactive 
</form>" 
. "</td>"; 

echo "</tr> "; 
} 
echo "</table>"; 

echo " <br> 
    <form action='ActivateD.php' method='post'> 

           <div align='center'> 

<input type='submit' name='ActivateUsers' value='Activate/Deactive'> 


           </div> 

    </form>"; 

mysqli_close($mysqlCON); 

} 
    else{echo "must logout to see this page..!!";} 

?> 

<html> 
<head><title> Activate/Deactive User Account </title> 
<style type="text/css"> 
body{ 
    background-color: #23438e; 
} 
table{ 
    background: white; 

} 

h1{ 
    color: #FF942B; 
    text-align: center; 
    padding-top : 50px; 
    text-decoration: none; 
} 

</style> 
</head> 
<body> 
</body> 
</html> 
+0

请问您可以编辑您的问题以包含更多信息?诸如代码做什么或不做什么(以及你尝试过的)等事情都可以让某人提供更好的帮助。 – cokeman19

+0

谢谢,我只是添加了一些信息到我的文章 – AAaaAA

回答

0

似乎有几个问题你的脚本:

  1. 你周围包裹你的每一个无线电输入和复选框,但独立的形式,在你的提交按钮的形式。在此设置中,表单在提交时不会发送正确的数据。
  2. 在每一行上复制具有相同名称的单选框。由于您只使用一个值作为激活/非激活值,因此您应该在窗体底部放置一组单选按钮。
  3. 你的SQL查询逃逸是不正确的:

而不是 $sqlDelete = "UPDATE Accounts SET Activated='$_POST[activate]' WHERE Id IN ('" . $impid . "')";

您应该使用$sql = "update Accounts set Activated='" . $_POST['activate'] . "' where Id in ('" . $impid . "')";

  • 缺少的错误处理和输入清理
  • +0

    我感谢您的帮助,这是我的第一个使用PHP的项目,我正在学习,我会尽量改变代码,如你所说。并参见 – AAaaAA

    +0

    你是否会请你解释更多关于#2你的建议? – AAaaAA

    +0

    您的无线电输入具有相同的名称'激活'和不同的值。因此,无论用户选择哪种无线电,$ _POST ['activate']的值将为1或0 - 或者如果收音机位于要提交的表单内(使用提交按钮),则会是。如果用户没有选择任何选项,那么将不会定义该键,因此您在运行更新查询之前还应该检查它是否存在。由于您只允许两个选项(1/0),因此仅包含一次启用/禁用无线电(表单的顶部或底部)而不是每行都有意义。 – solocommand

    相关问题