【发布时间】:2014-08-02 14:35:38
【问题描述】:
我在将一些信息从表单发布到删除功能时遇到问题,我可能会为此而自责,但我找不到答案。
- admin/index.php
- lib/admin_functions.php
- lib/delete_user.php
如上,我有 3 个文件。
它自己的功能如下:
// Display users
function get_all_users() {
global $con;
$sql = "SELECT * FROM users ORDER BY id ASC";
$result = mysqli_query($con, $sql);
echo "<tr><td> </td><td> User ID </td><td> Username </td><td> Email Address </td><td> Zendesk User Id </td><td>
Zendesk View ID </td><td> Firstname </td><td> Surname </td><td> Nickname </td><td> Active
</td><td> Admin </td><td> Display Stats?</td><td> Remove User </td></tr>";
while($row = mysqli_fetch_array($result)) {
// Displaying all user details
echo "<tr><td><img height='40' width='40' src='{$row['user_photo']}'></td><td>" .$row['id']. "</td><td>" .$row['user_name']. "</td><td>" .$row['email_address']. "</td><td>" .$row['zendesk_user_id']."</td><td>"
.$row['zendesk_view_id']. "</td><td>" .$row['user_firstname']. "</td><td>" .$row['user_surname']. "</td><td>" .$row['user_nickname']. "</td><td>"
.$row['is_active']. "</td><td>" .$row['is_admin']. "</td><td>" .$row['display_stats'].
// Form for deleting a user
"</td><td><form id='delete_user' accept-charset='UTF-8' action='/delete_user.php' role='form' method='POST'><input type='checkbox' value='Delete'><input type='hidden' name='user_id' value='{$row['id']}'></td></tr>";
}
echo "<tr><td> Delete Selected User(s) </td><td>";
echo "<input type='submit' name='submit' value='Delete My Account' onClick=\"return confirm('Are you sure you want to delete this account?')\"></td></form></tr>";
}
上述函数属于admin_functions.php,它显示我所有的用户,带有一个额外的列,带有一个删除复选框,底部是一个带有删除按钮的表单。
然后我有 delete_user 代码
<?php
session_start();
if( ! $_SESSION['loggedIn'] && ! $_SESSION['isAdmin']) {
// If not admin or logged in, die
die();
}
require_once(dirname(__FILE__).'/admin_functions.php');
require_once(dirname(__FILE__).'/../config.php');
// DELETE USER
$user_id = mysql_real_escape_string( $_POST['user_id'] );
// Insert the customer, including the password hash
$sql = "DELETE FROM users where id = '{$user_id}' limit 1";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
print "User Deleted";
mysqli_close($con);
?>
最后在索引文件上,我有一些调用函数的东西。
<?php get_all_users(); ?>
我遇到的问题是代码都按预期显示,但是在警告消息之后没有任何反应。似乎没有任何内容发布到 delete_user.php,我在 apache2 中没有看到任何错误,在我的控制台中也没有。
有什么想法吗?
【问题讨论】:
-
这个
mysql_real_escape_string应该是mysqli_real_escape_string,但更具体地说是$user_id = mysqli_real_escape_string($con, $_POST['user_id']);- 这两种不同的API 不能混合使用。 -
啊,是的,一定错过了。谢谢你,先生。不确定这会解决它,我们会看到:)
-
您说的是警告信息。哪一个?
-
看起来您正在删除任何用户,甚至没有检查复选框是否被选中。
-
我这里有个提示:" 提示有效,之后没有任何反应。
标签: javascript php forms session post