pixelnet24
Hallo zusammen,
ich habe da ein Problem mit dem Löschen von Ordnern aus meinem Script raus.
Ich habe ein Admin Panel. in dem ich User löschen kann, doch derzeit ist es mir nur möglich die Daten aus der Datenbank zu löschen.
Jetzt suche ich nach einer Lösung:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?php if (isset($_GET['drop'])) {
rmdir("/web/1/000/027/012/70920/htdocs/estartseite/'.$row[pagename].'");
$query = "DELETE FROM $g_db_user WHERE user_id='$_GET[drop]'";
$mysqli->query($query);
} // END IF
echo '
<form method="POST" action="?inc=sperren&open='.$row['user_id'].'">
<input class=green type="submit" value="Entsperren"></form>
<form method="POST" action="?inc=sperren&drop='.$row['user_id'].'">
<input class=green type="submit" value="löschen"></form>
'; ?> |
|
pixelnet24
Die Links sind sicherlich sehr interessant, doch in meinem speziellen Fall helfen sie mir nicht.
Ich weiß welche Befehle notwendig sind, um einen Ordner zu löschen. Wo ich nicht weiter weiß, ist wie ich diesen Befehl in meine GET Abfrage unterbringe.
TrioxX
Wir den Grund haben, dass das definierte Formular die Daten nicht mit GET, sondern mit POST sendet
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
<?php
if (!empty($_GET['drop']))
{
rmdir("/web/1/000/027/012/70920/htdocs/estartseite/'.$row[pagename].'");
$query = "DELETE FROM $g_db_user WHERE user_id='.$_GET[drop].'";
$mysqli->query($query);
}
echo '
<form method="GET" action="?inc=sperren&open='.$row['user_id'].'">
<input class=green type="submit" value="Entsperren"></form>
<form method="GET" action="?inc=sperren&drop='.$row['user_id'].'">
<input class=green type="submit" value="löschen"></form>
'; ?> |
|
Was mich mehr irritiert ist diese ganze Datenbankabfrage. Wer weiß, ob $row[pagename] überhaupt einen Wert hat? Wonach richtet sich der Inhalt dieser Variable?
Ein wenig mehr Code wäre hilfreich, dann sparen wir uns nämlich das Rätselraten

Im Übrigen kann es zu Owner-Problemen kommen, wenn du versuchst, eine durch einen FTP-User erstellte Datei mittels PHP zu löschen. Das klappt nicht immer.
pixelnet24
Kurze Erklärung zum Code:
Es handelt sich um ein Admin Menürpunkt.
Wenn sich ein User registriert, wird ein Ordner mit seinem Namen erstellt und eine index.php rein kopiert.
Doch ich möchte den User Sperren und aber auch komplett löschen können.
Dazu ist der Code gedacht.
Die Variablen stammen aus meiner Config, die beim laden der admin.php required werden.
d.h. .row[pagename]. ist der Name des Users und .$row['user_id']. ist die User-ID.
Wie schon geschriebn, das Sperren bekomme ich hin. Es hapert einfach an dem Löschvorgang des Ordner.
TrioxX
Die Erklärung des Codes bringt mir nichts

Ich brauche mehr vom Code, damit ich weiß, wie er arbeitet
brainnrg
Ich misch mich mal ein
Ich glaube bei drop wird dein user gelöscht.
Dort packst du einfach dann auch das löschen mir rmdir rein, vorher muss der ordner natürlich leer sein, ggf. mit verzeichnis auslesen und unlink den ordner leeren.
Das ist der grundsatz.
Zu den ganzen unsicheren Query Abfragen brauch ich jetz eh nix sagen, wissen wir wahrscheinlich eh das hier etwas aufholbedarf herscht.
MFG Brain
pixelnet24
Wie könnte da ein Besipiel für "Dort packst du einfach dann auch das löschen mir rmdir rein," aussehen??
brainnrg
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
<?php
//... Code von oben
if (isset($_GET['drop'])) {
$query = "DELETE FROM $g_db_user WHERE user_id='$_GET[drop]'";
$mysqli->query($query);
//Hier Verzeichnis löschen inkl. darin enthaltener dateien
$directory = "ordnername";
$dir = opendir($directory);
while ($file = readdir($dir)){
if($file!="." && $file!=".."){
unlink("$directory/$file");
}
}
closedir($dir);
rmdir($directory);
} // END IF
//weiterführender Code...
?>
|
|
Nur ein Denkanstoß ohne Überprüfung obs funktioniert.
MFG Brain