Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sicherheitsabfrage vor dem Löschen eines Datensatzes

Frage Entwicklung PHP

Mitglied: Chribu

Chribu (Level 1) - Jetzt verbinden

15.09.2006, aktualisiert 19.09.2006, 11462 Aufrufe, 11 Kommentare

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.
Mitglied: Dani
15.09.2006 um 12:11 Uhr
Hi,
ich habe sowas mit Javascript realisiert.

01.
<script language="JavaScript" type="text/JavaScript"> 
02.
<!-- 
03.
function confirmSubmit() 
04.
05.
    var agree=confirm("Sind Sie sich sicher?"); 
06.
    if (agree) 
07.
    return true ; 
08.
    else 
09.
    return false ; 
10.
11.
</script>
<a onclick="return confirmSubmit()" href="VERWEISE AUF DATEI" class=link1>l&ouml;schen</a>
01.
 
02.
Wenn du Ja klickst wird der Datensatz gelöscht. 
03.
 
04.
 
05.
Gruß 
06.
Dani 
07.
 
Bitte warten ..
Mitglied: Chribu
15.09.2006 um 12:42 Uhr
Hi Dani,

also bei mir sieht das ja so aus:

01.
 
02.
/*Löschen Button*
03.
if (isset($_POST['loeschen'])) 
04.
05.
$sql = "DELETE FROM infotain_neu WHERE 
06.
Servername = '".$_POST['dd']."'"
07.
mysql_query($sql); 
08.
echo "Der Datensatz wurde gelöscht<p>"
09.
10.
 
11.
/*Wenn "Submit"-Button gedrückt wurde, dann zeige Formular mit allen Details*/         
12.
if (isset($_POST['dd'])) 
13.
14.
.......... 
15.
 
Ähm nur wie soll ich das mit dem <a onklick.. > machen?

Danke nochmal!

Gibt es auch andere Lösungsmöglichkeiten? (da ja nicht jeder Browser java aktiv hat!)

Cya

Chribu
Bitte warten ..
Mitglied: Dani
15.09.2006 um 13:59 Uhr
Hi,
der Quellcode von deiner Löscheseite muss dann so aussehen:
01.
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_POST['dd']."'"; 
02.
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
Bitte warten ..
Mitglied: EvilMoe
17.09.2006 um 10:26 Uhr
Hi

bei mir funktionierts wunderbar danke !
Bitte warten ..
Mitglied: Guenni
17.09.2006 um 20:25 Uhr
@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:
01.
<form action="drop.php?server=<?echo $server;?>" method="post"> 
02.
<input type="submit" name="cmd" value="Loeschen"/> 
03.
</form>
Die Seite drop.php baut sich dann wie folgt auf:

01.
// Folg. Code wird ausgeführt, wenn zur Löschbestätigung der Button "Ja" 
02.
// angeklickt wurde. 
03.
//  
04.
if($cmd=="Ja"){ 
05.
 $conn=mysql_connect("localhost","guenni","guenni") or die(mysql_error()); 
06.
 $db=mysql_select_db("test") or die("Konnte die Datenbank nicht waehlen."); 
07.
 $sql="delete from computer where id=$server"
08.
 mysql_query($sql,$conn); 
09.
 header("location:index.php"); // Nach dem Löschen zurück zur Startseite, Erklärung 
10.
// weiter unten 
11.
12.
 
13.
// Wurde der Button "Nein" angeklickt, wird die Seite drop.php verlassen 
14.
if($cmd=="Nein"){ 
15.
 header("location:edit.php?server=$server"); // Zurück zur Editierseite, 
16.
// Erklärung weiter unten 
17.
18.
 
19.
// Der zum Löschen vorgesehene Datensatz wird angezeigt 
20.
//alle Fehler im Browser anzeigen 
21.
ini_set("diplay_errors",1); 
22.
error_reporting(E_ALL); 
23.
$conn=mysql_connect("localhost","guenni","guenni") or die(mysql_error()); 
24.
$db=mysql_select_db("test") or die("Konnte die Datenbank nicht waehlen."); 
25.
$sql="SELECT * FROM computer WHERE id = $server"
26.
$result = mysql_query($sql,$conn); 
27.
$row=mysql_fetch_array($result,MYSQL_ASSOC); 
28.
$server=$row[id];
Soll dieser Datensatz wirklich gelöscht werden ?
01.
echo "<table border=1>"
02.
echo "<tr>"
03.
while($field=key($row)){ 
04.
 echo "<th>"
05.
 echo $field
06.
 next($row); 
07.
08.
echo "</tr>"
09.
$result = mysql_query($sql,$conn); 
10.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
11.
 echo "<tr><td>"
12.
 echo implode("<td>",$row); 
13.
14.
echo "</table>";
01.
<form action="drop.php?server=<? echo $server;?>" method="post"> 
02.
<input type="submit" name="cmd" value="Ja" /> 
03.
<input type="submit" name="cmd" value="Nein" /> 
04.
</form>
Erklärung:

Im Tread --> http://www.administrator.de/MySQL_Datens%E4tze_mit_php-Formular_%E4nder ...

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
Bitte warten ..
Mitglied: Chribu
18.09.2006 um 09:23 Uhr
Hallo!!

Danke für eure Antworten!

Ich habe mich jetzt mal mit dem JavaScript Code auseinandergesetzt!

Hier meine delete.php:

01.
 
02.
<?php 
03.
 
04.
//alle Fehler im Browser anzeigen 
05.
ini_set("diplay_errors",1); 
06.
error_reporting(E_ALL); 
07.
 
08.
/*Datenbankverbindung aufbauen*
09.
$db = mysql_connect("localhost","root","") or die(mysql_error()); 
10.
mysql_select_db("test", $db) or die("Konnte die Datenbank nicht waehlen."); 
11.
 
12.
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_POST['dd']."'"
13.
mysql_query($sql); 
14.
 
15.
mysql_close($db); 
16.
?> 
17.
 
So und hier meine Ergebnisseite:

01.
 
02.
<html> 
03.
<head> 
04.
<title>Unbenanntes Dokument</title> 
05.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
06.
</head> 
07.
<body> 
08.
<p><strong><u>Servermanager >>> Server ändern oder löschen</u></strong></p> 
09.
<p> 
10.
<script language="JavaScript" type="text/JavaScript"
11.
<!-- 
12.
function confirmSubmit() 
13.
14.
    var agree=confirm("Sind Sie sich sicher, dass Sie diesen Server löschen wollen?"); 
15.
    if (agree) 
16.
    return true ; 
17.
    else 
18.
    return false ; 
19.
20.
</script> 
21.
 
22.
  <?php 
23.
//alle Fehler im Browser anzeigen 
24.
 
25.
usw......... 
26.
 
Hier mein Link:

01.
 
02.
echo "<a onclick='return confirmSubmit()' href='delete.php' class='link1'>Löschen</a>"
03.
 
So wenn ich nun auf den Link klicke bekomme ich zwar die gewünschte Sicherheitsabfrage, doch löscht er keinen Datensatz aus der MySQL-DB!

Hab ich was vergessen?

Danke

Chribu
Bitte warten ..
Mitglied: EvilMoe
18.09.2006 um 10:09 Uhr
wurdest du richtig an die delete.php weitergeleitet?
Bitte warten ..
Mitglied: Chribu
18.09.2006 um 10:35 Uhr
Jop wurde ich!

Nachdem ich das error_reporting auch eingefügt hatte bekam ich folgende Fehlermeldung!

Notice: Undefined index: dd in E:\TYPO3\htdocs\prokom srv manager\delete.php on line 11

Das ist doch ein Indiz dafür, dass die Variable "'$_Post['dd']'" nicht gesetzt worden ist, sprich nicht weis welchen Server er löschen soll!

Dann muss doch am QUellcode was schief gelaufen sein!

Muss ich die irgendwie includen oder so?

Cya

Chribu
Bitte warten ..
Mitglied: Guenni
18.09.2006 um 21:13 Uhr
@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.

01.
echo "<a onclick='return confirmSubmit()' href='delete.php?para=$dd' class='link1'>Löschen</a>";
Eine Auswertung mit $_POST[……

01.
$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...

01.
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_GET['para']."'";
oder einfach

01.
$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
Bitte warten ..
Mitglied: Chribu
19.09.2006 um 09:18 Uhr
Hallo Günni,

ich habe das jetzt nach deinen Anweisungen versucht:

Hier mein Link: (ZEILE 85)

01.
 
02.
echo "<a onclick='return confirmSubmit()' href='delete.php?para=$dd' class='link1'>Löschen</a>"
03.
 
Und dann rufe ich das Formular auf und bekomme schon in der Ergebnisseite folgende Fehlermeldung:

Notice: Undefined variable: dd in E:\TYPO3\htdocs\prokom srv manager\form3t.php on line 85

Also konnte er mit der Variable nichts anfangen! Habe die auch mal mit $_Post ausgetauscht aber hat auch nicht hingehauen.

So hier meine delete.php:
01.
 
02.
echo "$para"; //Zeile 11 
03.
 
04.
$sql = "DELETE FROM infotain_neu WHERE Servername = $para"; //Zeile 13 
05.
mysql_query($sql) or die ("Es ist ein Fehler aufgetreten"); 
06.
 
07.
 
Und folgender Fehler tritt auf der delete.php auf:

Notice: Undefined variable: para in E:\TYPO3\htdocs\prokom srv manager\delete.php on line 11

Notice: Undefined variable: para in E:\TYPO3\htdocs\prokom srv manager\delete.php on line 13
Es ist ein Fehler aufgetreten


So och habe doch deinen Rat befolgt, oder bin ich grade zu blind dafür das hinzubekommen?

Danke nochmal!

Chribu
Bitte warten ..
Mitglied: Chribu
19.09.2006 um 10:59 Uhr
Alles okay es läuft jetzt!

Ich habe es hinbekommen, indem ich die Variablen davor nochmal gesetzt habe!

Genau so:

(delete.php)

01.
 
02.
$para=$_GET['para']; 
03.
echo "<font color='red'>Der Server '".$_GET['para']."' wurde gelöscht!</color>
04.
"; 
05.
echo "<a href='form3t.php' class='link1'>Zurück zum Formular</a>"
06.
$sql = "DELETE FROM infotain_neu WHERE Servername = '".$_GET['para']."'"
07.
 
Und hier meine Ergebnisseite:
01.
 
02.
  $dd=$_POST['dd']; 
03.
   echo "<a onclick='return confirmSubmit()' href='delete.php?para=$dd' class='link1'>Löschen</a>"
04.
 
Danke nochmal an ALLE!

Cya

Chribu
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
Microsoftaccount löschen (3)

Frage von Kroni99 zum Thema Microsoft Office ...

Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...