#javascript #php #mysql
#javascript #php #mysql
Вопрос:
У меня есть таблица в моем php, которая показывает данные таблицы в моей базе данных: имя пользователя, электронные письма и т. Д., И я также добавил опцию удаления. Опция удаления работает корректно и отображает сообщение с подтверждением перед удалением. Тем не менее, я хочу добавить сообщение с подтверждением с необходимым паролем, когда пользователь нажимает на опцию удаления.
Каждый раз, когда я нажимаю опцию удаления, появляется сообщение с подтверждением удаления нужных мне данных, однако я бы хотел, чтобы в сообщении с подтверждением был пароль для полного удаления сообщения. Я бы хотел, чтобы вы показали тип сообщения : confirm ('Please confirm deletion and enter the password to delete');
.
Кто-нибудь знает, как это можно сделать? Спасибо.
Это то, что у меня есть:
index.php:
<table>
<tr>
<th colspan="3"><h2>Users</h2></th>
</tr>
<tr>
<th> Name </th>
<th> Email </th>
<th> Delete</th>
</tr>
<?php
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows==0){
echo "No users";
}else{
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["username"]."</td><td>".$row["email"]."</td><td><a class='eliminate' onClick="javascript: return confirm('Please confirm deletion');" href="delete.php?id=".$row['id']."">X</a></td></tr>";
}
}
?>
</table>
delete.php:
<?php
include('Conexion.php');// Check connection with DB
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_GET['id']; // $id is defined
mysqli_query($conn,"DELETE FROM users WHERE id='".$id."'");
mysqli_close($conn);
header("Location: index.php");
?>
Я думал о введении такого скрипта:
<script>
function myFunction() {
var txt;
var password = prompt("Please confirm deletion and enter the password to delete:", "Password");
if (password == null || password == "" || password != "realpassword") {
txt = "User cancelled the prompt.";
} else {
txt = "Are you sure?";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
Комментарии:
1. Пароль необходимо будет сохранить на сервере, что также потребует использования ajax и promises. Этот вопрос слишком широкий
2. Единственный безопасный способ сделать это — выполнить удаление как вызов AJAX, чтобы вы не хранили пароли в javascript.
3. Вы могли бы написать диалоговое окно javascript для запроса пароля и отправки пользователю сообщения «Вы уверены»
4. @RiggsFolly Это то, что я считаю лучшим. Я не знаю об Ajax. Знаете ли вы какой-нибудь пример, где я могу посмотреть, как это делается?
5. Не сразу, но я бы начал с сайта jQuery. Поиск в Google должен привести вас к любому количеству руководств
Ответ №1:
У вас есть большой выбор методов для этого, но я бы сказал, что самые простые из них:
Ajax Приглашение :
Приглашение позволяет создать окно предупреждения, в которое вы можете включить некоторый текст. Затем вы получаете этот текст и выполняете Ajax-вызов PHP-скрипта, который удалит пользователя (в основном аналогично вашему delete.php но без вызова функции header())
Промежуточная страница PHP
Вы также можете использовать другую страницу PHP с формой, в которой пользователю предлагается ввести пароль, а затем нормально перейти к delete.php страница, если она правильная. Конечно, вам нужно будет передать $id
на промежуточную страницу (например, в качестве переменной GET), чтобы сделать это.
Комментарии:
1. Я отредактировал вопрос с помощью скрипта, который использует функцию, запрашивающую пароль. Знаете ли вы, как приступить к удалению после сообщения «Вы уверены?»?