2017-02-22 5 views
0

У меня есть форма, которая позволяет пользователю удалять пользователей из базы данных на основе добавочного номера, который они вводят. Прежде чем они смогут удалить кого-либо, они пройдут страницу входа в систему. Как только они удаляют пользователя из данных, мы получаем электронное письмо с указанием того, какой добавочный номер был удален. Есть ли способ, который я мог бы добавить, какой пользователь удалил данные из таблицы?Показать пользователя, который удалил данные

(Пожалуйста, обратите внимание, я в курсе вопросов инъекций SQL и использование MySQL амортизируется я изменю их PDO или MySQLi когда у меня есть эта проблема сортируется.)

В настоящее время электронная почта выглядит следующим образом:

Extension Number 4324 was removed from the extension list. 

Могу ли я сделать это:

Extension Number 4324 was removed from the extension list by James. 
  • КОД

Войти Форма:

<html> 
<head> 
<title>Login</title> <link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body id="body-color"> 
<div id="Sign-In"> 
<center><fieldset style="width:30%"><legend>Welcome Please Login Below</legend> 
<form method="POST" action="connectivity.php"> 
Username: <br><input type="text" name="user" size="40"><br> 
Password: <br><input type="password" name="pass" size="40"> 
<br> 
<br> 
<input id="button" type="submit" name="submit" value="Log-In"> 
</form> 
</center> 
</fieldset> 
</div> 
</body> 
</html> 

Connectivity.php

<?php 
session_start(); 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'list'); 
define('DB_USER','root'); 
define('DB_PASSWORD','****'); 
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
/* 
$ID = $_POST['user']; $Password = $_POST['pass']; 
*/ 
function SignIn() 
{ 
session_start(); 
if(!empty($_POST['user'])) 
{ 
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
$row = mysql_fetch_array($query); 
if(!empty($row['userName']) AND !empty($row['pass'])) 
{ 
$_SESSION['userName'] = $row['pass']; 
header("Location: index.php"); 
$_SESSION['CheckLogin'] = true; 
} 
else 
{ 
header("Location: login.php"); 

} 
} 
} 
if(isset($_POST['submit'])) 
{ 
SignIn(); 
} 
?> 

Delete.php форма

<?php 

require ("database.php"); 

session_start(); 
if (!isset($_SESSION['CheckLogin'])) { header("Location: login.php"); } 




    if($_POST['action']) 
{ 

$this_user_ext =$_GET['extension']; 


    // sending query 
    mysql_query("DELETE FROM users WHERE extension = '$this_user_ext'") 
    or die(mysql_error());   


include('maildelete.php'); 

$extension=$_POST['extension']; 

header("Location: index.php"); 
} 
?> 
<center><form action="" method="post"> 
Enter 4 Digit Extension Number :<br><input type="text" name="extension"> 
<br><h2><input type="submit" name="action" value="Delete Extension"> 
<br></h2> 
<h3> 
<a href="index.php"> Main Menu </a> 
</h3> 
</form> 
</center> 

и maildelete.php

<?php 

$extension = $_POST['extension']; 
$department = $_POST['department']; 

if ($_POST['department']=="IT DEPARTMENT") { 
    $address2="[email protected]"; 
} 

require 'PHPMailer-master/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "****"; // SMTP server    // enables SMTP debug information 
$mail->SMTPAutoTLS = false; 
$mail->SMTPSecure = false; 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->Host  = "****"; // sets the SMTP server 
$mail->Port  = 587;     // set the SMTP port for the GMAIL server 
$mail->Username = "****"; // SMTP account username 
$mail->Password = "****";  // SMTP account password 
$mail->From = "[email protected]"; 
$mail->FromName = "Extension List"; 

$mail->AddAddress('[email protected]', $address2, ""); 

$mail->isHTML(true); 

$mail->Subject = 'Extension Deleted'; 
$mail->Body  = "Extension Number " . $extension . " from the " . $department . " was removed from the Extension List"; 

if(!$mail->Send()) { 
echo 'Message could not be sent.'; 
echo 'Mailer Error: ' . $mail->ErrorInfo; 
exit; 
} 
echo 'Email Sent Successfully!'; 
?> 
+0

Да, когда пользователь хочет удалить, он вошел в .. так считать, что пользователь электронный идентификатор или имя, как вам нравится, и вы можете отправить mail или сохранить в новой таблице в базе данных –

ответ

0

Я нашел исправление.

Я добавил $ _SESSION ['userName'];

поэтому строка кода в моем maildelete.php:

$mail->Body  = "Extension Number " . $extension . " from the " . $department . " was removed from the Extension List" . $_SESSION['userName']; 
0

Всегда помещайте дополнительную таблицу в свой стол, created_by, created_at, updated_by, updated_at, deleted_by, deleted_at. Значение имеет идентификатор зарегистрированного пользователя, который выполняет следующую операцию.

С помощью этого вы можете легко отслеживать операцию add, update, delete, выполненную кем и в какую дату.

+0

У меня есть работа с помощью кода Dittos ниже sir, но он отправляет пароль пользователей не по имени. Любая идея, почему сэр? – RedZ

0

Похоже, что у вас есть имя пользователя в переменной

$_SESSION['userName'] 

Так было бы просто добавить, что к сообщению электронной почты в maildelete.php

$mail->Body  = "Extension Number " . $extension . " from the " . $department . " was removed from the Extension List"; 

С этим:

$mail->Body  = "Extension Number " . $extension . " from the " . $department . " was removed from the Extension List by ".$_SESSION['userName']; 
+0

это работает, но он помещает пароль пользователей, а не имя пользователя – RedZ

+0

был удален из списка расширений на $ 9302D, который является паролем пользователя James. – RedZ

+0

Если переменная '' $ _SESSION ['userName'] '' отображает пароль вместо имени пользователя, то вы фиксируете в такой переменной неправильное значение. – Ditto

Смежные вопросы