Sicherheitsabfrage vor dem Löschen eines Datensatzes
Hallo Leute,
ich habe ein kleines Problem mit meinem Formular(HTML/PHP mit MySQL-DB anbindung)!
Wie bekomme ich es hin, dass ich, wenn ich den Löschenbutton drücke, erst eine Sicherheitsabfrage bekomme z.B. "Sind sie sicher, dass sie diesen Datensatz löschen mächten?" und wenn ich diese mit ja bestätige, soll der weiter Löschenverlauf folgen (DELETE FROM...blablabla sql abfrage)!
Wenn ich auf nein drücke soll er nichts machen, also zu dem geöffneten Fenster zurückspringen!
GIbt es da eine Lösung für?
Danke schon im vorraus
Chribu
[EDIT masterG 20.09.2007 14:51]:
Nach dem dieser Thread schon eine weile gelöst ist werde ich ihn schließen.
ich habe ein kleines Problem mit meinem Formular(HTML/PHP mit MySQL-DB anbindung)!
Wie bekomme ich es hin, dass ich, wenn ich den Löschenbutton drücke, erst eine Sicherheitsabfrage bekomme z.B. "Sind sie sicher, dass sie diesen Datensatz löschen mächten?" und wenn ich diese mit ja bestätige, soll der weiter Löschenverlauf folgen (DELETE FROM...blablabla sql abfrage)!
Wenn ich auf nein drücke soll er nichts machen, also zu dem geöffneten Fenster zurückspringen!
GIbt es da eine Lösung für?
Danke schon im vorraus
Chribu
[EDIT masterG 20.09.2007 14:51]:
Nach dem dieser Thread schon eine weile gelöst ist werde ich ihn schließen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 40190
Url: https://administrator.de/contentid/40190
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
11 Kommentare
Neuester Kommentar
Hi,
ich habe sowas mit Javascript realisiert.
<a onclick="return confirmSubmit()" href="VERWEISE AUF DATEI" class=link1>löschen</a>
ich habe sowas mit Javascript realisiert.
<script language="JavaScript" type="text/JavaScript">
<!--
function confirmSubmit()
{
var agree=confirm("Sind Sie sich sicher?");
if (agree)
return true ;
else
return false ;
}
</script>
Wenn du Ja klickst wird der Datensatz gelöscht.
Gruß
Dani
Hi,
der Quellcode von deiner Löscheseite muss dann so aussehen:
Diese Seite bindest bei meinem Link oben ein! Geht eigentlich immer! Ist übrigends die gleieche Funktion, wenn du hier eine Nachricht löschst.!
Gruß
Dani
der Quellcode von deiner Löscheseite muss dann so aussehen:
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_POST['dd']."'";
mysql_query($sql);
Diese Seite bindest bei meinem Link oben ein! Geht eigentlich immer! Ist übrigends die gleieche Funktion, wenn du hier eine Nachricht löschst.!
Gruß
Dani
@Chribu
Hi,
Lösungsbeispiel ohne JavaScript.
Auf der Ergebnisseite deiner Auswahl kannst du ohne weiteres einen
Button in ein eigenes Formular verpacken, das ein Script aufruft,
dass dir den zum Löschen ausgewählten Datensatz nochmals
anzeigt, wo dann entweder die Bestätigung zum Löschen erfolgt,
oder der Löschvorgang abgebrochen wird.
Das Form:
Die Seite drop.php baut sich dann wie folgt auf:
Soll dieser Datensatz wirklich gelöscht werden ?
Erklärung:
Im Tread -->
hatte ich Franzmann geschrieben, dass ich versch. Vorgänge wie Einfügen,
Löschen, Editieren von Datensätzen immer auf entsprechende Seiten verteile.
Daher die Weiterleitung via header("location:...... .
Ich finde das wesentlich übersichtlicher, als wenn man den kompletten
Code in eine einzige Seite packt.
Gruß
Günni
Hi,
Lösungsbeispiel ohne JavaScript.
Auf der Ergebnisseite deiner Auswahl kannst du ohne weiteres einen
Button in ein eigenes Formular verpacken, das ein Script aufruft,
dass dir den zum Löschen ausgewählten Datensatz nochmals
anzeigt, wo dann entweder die Bestätigung zum Löschen erfolgt,
oder der Löschvorgang abgebrochen wird.
Das Form:
<form action="drop.php?server=<?echo $server;?>" method="post">
<input type="submit" name="cmd" value="Loeschen"/>
</form>
Die Seite drop.php baut sich dann wie folgt auf:
// Folg. Code wird ausgeführt, wenn zur Löschbestätigung der Button "Ja"
// angeklickt wurde.
//
if($cmd=="Ja"){
$conn=mysql_connect("localhost","guenni","guenni") or die(mysql_error());
$db=mysql_select_db("test") or die("Konnte die Datenbank nicht waehlen.");
$sql="delete from computer where id=$server";
mysql_query($sql,$conn);
header("location:index.php"); // Nach dem Löschen zurück zur Startseite, Erklärung
// weiter unten
}
// Wurde der Button "Nein" angeklickt, wird die Seite drop.php verlassen
if($cmd=="Nein"){
header("location:edit.php?server=$server"); // Zurück zur Editierseite,
// Erklärung weiter unten
}
// Der zum Löschen vorgesehene Datensatz wird angezeigt
//alle Fehler im Browser anzeigen
ini_set("diplay_errors",1);
error_reporting(E_ALL);
$conn=mysql_connect("localhost","guenni","guenni") or die(mysql_error());
$db=mysql_select_db("test") or die("Konnte die Datenbank nicht waehlen.");
$sql="SELECT * FROM computer WHERE id = $server";
$result = mysql_query($sql,$conn);
$row=mysql_fetch_array($result,MYSQL_ASSOC);
$server=$row[id];
echo "<table border=1>";
echo "<tr>";
while($field=key($row)){
echo "<th>";
echo $field;
next($row);
}
echo "</tr>";
$result = mysql_query($sql,$conn);
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
echo "<tr><td>";
echo implode("<td>",$row);
}
echo "</table>";
<form action="drop.php?server=<? echo $server;?>" method="post">
<input type="submit" name="cmd" value="Ja" />
<input type="submit" name="cmd" value="Nein" />
</form>
Im Tread -->
hatte ich Franzmann geschrieben, dass ich versch. Vorgänge wie Einfügen,
Löschen, Editieren von Datensätzen immer auf entsprechende Seiten verteile.
Daher die Weiterleitung via header("location:...... .
Ich finde das wesentlich übersichtlicher, als wenn man den kompletten
Code in eine einzige Seite packt.
Gruß
Günni
@Chribu
Hi,
wenn du die Seite delete.php via Link aufrufst, und erwartest, dass da was
passiert, so mußt du dem Link auch einen Parameter mitgeben.
Eine Auswertung mit $_POST[……
bringt ebenfalls nichts, weil Variablen bzw. Parameter, die via Link übertragen
werden, mit der Methode GET ausgewertet werden. Also...
oder einfach
Der Parameter para (…'delete.php?para=<?echo $dd;?>…) enthält dann den
Wert von $dd, und kann ganz normal als Variable $para weiterverarbeitet werden.
Tipp:
Wenn du Variablen an andere Seiten weiterleitest, ob mit Form oder Link,
so lass' dir auf den Seiten als erstes mal mittels echo $Variable; anzeigen,
ob die Daten überhaupt korrekt übermittelt wurden.
Wenn ja, dann Aktionen mit den Werten programmieren .
Grüße
Günni
Hi,
wenn du die Seite delete.php via Link aufrufst, und erwartest, dass da was
passiert, so mußt du dem Link auch einen Parameter mitgeben.
echo "<a onclick='return confirmSubmit()' href='delete.php?para=$dd' class='link1'>Löschen</a>";
Eine Auswertung mit $_POST[……
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_POST['dd']."'";
bringt ebenfalls nichts, weil Variablen bzw. Parameter, die via Link übertragen
werden, mit der Methode GET ausgewertet werden. Also...
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_GET['para']."'";
oder einfach
$sql = "DELETE FROM infotain_neu WHERE Servername = $para";
Der Parameter para (…'delete.php?para=<?echo $dd;?>…) enthält dann den
Wert von $dd, und kann ganz normal als Variable $para weiterverarbeitet werden.
Tipp:
Wenn du Variablen an andere Seiten weiterleitest, ob mit Form oder Link,
so lass' dir auf den Seiten als erstes mal mittels echo $Variable; anzeigen,
ob die Daten überhaupt korrekt übermittelt wurden.
Wenn ja, dann Aktionen mit den Werten programmieren .
Grüße
Günni