PHP/HTML:使用单选按钮通过管理页面激活用户

PHP/HTML:使用单选按钮通过管理页面激活用户,php,html,mysql,Php,Html,Mysql,我正在根据管理员输入创建激活/停用。 其想法是允许管理员查看accounts表中的所有帐户,并使用无线电输入从选项(激活或停用)中选择一个。 如果你们能在这一页上帮助我,我真的很感激,我的项目快完成了。 谢谢大家的建议,我只是想让管理员有选择激活或停用从用户帐户,使用此代码。 代码基本上可以查看帐户的所有信息,管理员只需选中她想激活的任何人,并从收音机中选择(激活/停用),然后根据她的输入将数据库中的值设置为0,即停用,1为激活。 多谢各位 <?php session_start(); i

我正在根据管理员输入创建激活/停用。 其想法是允许管理员查看accounts表中的所有帐户,并使用无线电输入从选项(激活或停用)中选择一个。 如果你们能在这一页上帮助我,我真的很感激,我的项目快完成了。 谢谢大家的建议,我只是想让管理员有选择激活或停用从用户帐户,使用此代码。 代码基本上可以查看帐户的所有信息,管理员只需选中她想激活的任何人,并从收音机中选择(激活/停用),然后根据她的输入将数据库中的值设置为0,即停用,1为激活。 多谢各位

<?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>

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

  • 您在每个单选输入和复选框周围包装一个表单,但在提交按钮周围包装一个单独的表单。在此设置中,表单在提交时不会发送正确的数据
  • 复制每一行上具有相同名称的广播框。因为您只使用单个值来表示active/inactive,所以应该在表单底部放置一组单选按钮
  • 您的SQL查询转义不正确:
  • 而不是
    $sqlDelete=“更新帐户集激活=”$\u POST[activate]”,其中Id位于(““$impid.”)中

    您应该使用
    $sql=“更新帐户集激活=”$_POST['activate']。“'whereid in('”$impid.“)”

  • 缺少错误处理和输入清理

  • 请编辑您的问题以包含更多信息,好吗?诸如代码正在做什么或没有做什么(以及您尝试过什么)之类的事情可以让某人提供更好的帮助。谢谢您,我刚刚在我的帖子中添加了一些信息。我感谢您的帮助,这是我第一个使用php的项目,我正在学习,我将尝试按照您所说的更改代码。请参阅您的建议中关于#2的更多说明。您有同名“激活”和不同值的无线电输入。因此,无论用户选择哪个单选项,$_POST['activate']的值将为1或0——或者更确切地说,如果该单选项位于正在提交的表单中(使用submit按钮),则该值将为1或0。如果用户没有选择任何键不会被定义的选项,那么在运行更新查询之前,您还应该检查它是否存在。因为您只允许两个选项(1/0),所以只允许启用/禁用收音机一次(窗体的顶部或底部),而不是每行。