Suche auf lima-city
-
in: Webspace komplett Leeren mit PHP
geschrieben von campz
Hallo
damit ich Dateien und ganze Ordner vom Webspace mit einem Klick löschen kann
habe ich mir ein kleines PHP Script gebaut bei dem man sich mit Passwort einloggt,
und dann Ordner oder Dateien zum Löschen auswählen kann (click --> delete)
ich hoffe das dieser Code-Schnipsel auch für andere nützlich ist. wenn man seinen Webspace einmal aufräumen will oder Quasi für einen RESET zum ganz Neu anfangen ohne Alt-Lasten oder Datenmüll zu haben für einen Neustart auf dem Webspace
zur Info: der Start-Ordner (Pfad) setzt man über die Variable $ordner
mit diesem Wert "." (Punkt)
wird der aktuelle Ordner$ordner = ".";
genommen (in dem sich dieses Script befindet) man kann auch Unter-Ordner angeben
wie zum Beispiel
oder$ordner = "cache";
etc.$ordner = "dein/verzeichnis/pfad";
Wichtig ...
... bitte vor Nutzung Passwort ändern.$admpwd = 'geheim';
.... Quellcode auf Pastebin (php)
<?php // ---------------------------------------------------- header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); session_start(); // ---------------------------------------------------- // ------ DIR ... Ordner / Verzeichnis / Pfad ----- $ordner = "."; // ---------------------------------------------------- // ------ Passwort Login --- pls CHANGE this Value --- $admpwd = 'geheim'; // ---------------------------------------------------- // ------ Hash Passwort (md5) ----- $saltkey = 'L4r7uBc6i'; $sec_apw = md5($admpwd.$saltkey); // ---------------------------------------------------- // ------ Diese Datei (filename) ----- $runfile = $_SERVER['PHP_SELF']; $runfile = trim($runfile ,'/'); // ---------------------------------------------------- // ------ User Eingabe ----- if (!empty($_POST['lpw'])) { $go_lpw = $_POST['lpw']; } else { $go_lpw = ''; } if (!empty($_GET['a'])) { $goa = $_GET['a']; } else { $goa = ''; } if (!empty($_GET['delete'])) { $go_delete = trim(chop($_GET['delete'])); } else { $go_delete = ''; } // ---------------------------------------------------- // ------ Session User --- Login ----- if (!empty($go_lpw)) { ## $go_lpw = trim(chop($go_lpw)); $sec_upd = md5($go_lpw.$saltkey); if ($sec_upd == $sec_apw) { $_SESSION['xpw'] = $sec_upd; } else { session_unset(); session_destroy(); } } // ---------------------------------------------------- // ------ Session User --- Logout ----- if ($goa == 'logout') { session_unset(); session_destroy(); header('Location: '.$runfile.''); exit; ### print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } // ---------------------------------------------------- // ------ function ----- deldir ----- function deldir($dir) { $dp = opendir($dir); while($file = @readdir($dp)) { $name = $dir . "/" . $file; if ($file != "." && $file != "..") { if (is_dir($name)) { deldir ($name); } else { chmod($name,0755); unlink($name); } } } @closedir($dp); chmod($dir,0755); @rmdir($dir); return true; } // --------------------------------------------------------------- // ------ function ----- run_delete ----- function run_delete ($fname='') { if (is_file($fname)===TRUE) { chmod($fname,0755); unlink($fname); $out=2; } else { $out = (@deldir($fname)!==false)?1:0; } return $out; } // ---------------------------------------------------- print '<div style="margin:0 auto; padding:4px; width:820px; background:#DEDEDE;">'."\n"; print '<h2 style="margin:6px 12px; padding:8px; background:#FFFFAA;"><a href="'.$runfile.'" style="text-decoration:none;">'.$ordner.'/'.$runfile.'</a></h2>'."\n"; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ START ... Check Login Session ----- if (isset($_SESSION['xpw']) && $_SESSION['xpw'] == $sec_apw) { // ---------------------------------------------------- // ------ Top-Navigation / Main-Menu ----- print "<hr />\n"; print "<p>--- <a href=\"".$runfile."\">HOME</a> --- <a href=\"".$runfile."?a=alle\">ALLE</a> --- <a href=\"".$runfile."?a=logout\">LOGOUT</a> --- </p>\n"; print "<hr />\n"; print "<br />\n"; // ---------------------------------------------------- // ------ Run Delete Dir / File ----- if (!empty($go_delete)) { $delx = run_delete($go_delete); print '<br> - DELETE: <span style="color:red;">'.htmlentities($go_delete).'</span>'."\n"; ## print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } ## if ($goa == 'xall' || $goa == 'alle') { print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } // --------------------------------------------------------------- // ------ Open Dir ----- $ordner = trim($ordner.'/'); $handle = opendir($ordner); $dxf_file = array(); $dxf_path = array(); // ---------------------------------------------------- // ------ Loop --- Files in Dir ----- while ($file = readdir ($handle)) { if($file != "." && $file != ".." && $file != $runfile) { if(is_dir($ordner."/".$file)) { $dxf_path[] = $file; } else { $compl = $ordner."/".$file; if ($goa == 'xall') { $rdx = run_delete($file); print '<br> - DELETE: <span style="color:red;">'.htmlentities($file).'</span>'."\n"; } else { $dxf_file[] = $file; } } if ($goa == 'alle') { $rdx = run_delete($file); print '<br> - DELETE: <span style="color:red;">'.htmlentities($file).'</span>'."\n"; } } } // ---------------------------------------------------- // ------ Close Dir ----- closedir($handle); // ------------------------------------------------------------------------ // ---------------------------------------------------- // ---------------------------------------------------- // ------ List Dirs ----- print '<p> DIRS </p>'."\n"; print '<br />______________________'."\n"; foreach($dxf_path as $pathitm) { print '<br /> DELETE DIR - <a href="'.$runfile.'?delete='.urlencode($pathitm).'">'.$pathitm.'</a>'."\n"; } print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------- // ---------------------------------------------------- // ------ List Files ----- print '<p> FILES </p>'."\n"; if (!empty($dxf_file)) { print '<p> DELETE --- <a href="'.$runfile.'?a=xall">ALL FILES</a> --- (in this DIR) </p>'."\n"; } print '<br />______________________'."\n"; foreach($dxf_file as $fileitm) { print '<br /> DELETE FILE - <a href="'.$runfile.'?delete='.urlencode($fileitm).'">'.$fileitm.'</a>'."\n"; } print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------- // ---------------------------------------------------- print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ ELSE ... Check Login Session ----- } else { // ---------------------------------------------------- // ------ Login Form ----- $login_formular1 = ' <form name="form1" method="post" action="'.$runfile.'"> Password: <input type="text" name="lpw" size="24" maxlength="100"> OK: <input type="submit" name="go" value="Login"> </form> '; // ---------------------------------------- print "<br />\n"; print "<br />\n"; print $login_formular1; print "<br />\n"; print "<br />\n"; // ---------------------------------------- } // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ ENDE ... Check Login Session ----- // ---------------------------------------------------- print "<br />\n"; print "<br />\n"; print "</div>\n"; // ---------------------------------------------------- print "<br />\n"; print "<br />\n"; print "<br />\n"; // ---------------------------------------------------- ?>
den Quell-Code kopieren und als neue Datei z.B: _delete_all.php speichern.
.... Quellcode auf Pastebin (php)
wenn man das Script / die Datei direkt in das Haupt-Verzeichnis "default-website" hochläd,
dann kann man nach Login auch mit 1 Klick auf ALLE den kompletten Webspace leeren
oder einzelne Dateien oder einzelne (direkte) Unter-Ordner per Klick löschen
wie findet Ihr PHP Experten diesen kleinen Code zum Leeren von Webspace / Ordner ??? Gibt es Kritik und Meinungen oder habt Ihr evtl auch Verbesserungs-Vorschläge oder Ideen dazu was darin noch fehlt oder besser geht ???
-
in: GET Werte zwischen-speichern?
geschrieben von campz
alfr3d schrieb:
Hast du dran gedacht
zu Beginn auzurufen?session_start();
ups .. ja das hatte ich vergessen
Danke
aber wie macht man Error Reporting (Display Errors) auf Lima-City an ?
-
in: SELECT zweier Felder mit gleicher Bedeutung
geschrieben von campz
meron schrieb:
Ich habe folgendes versucht (hoffte, dass das funktioniert):
SELECT aufgeber_email AS email, benutzer.email AS email FROM ticket LEFT JOIN benutzer ON ticket.benutzer = benutzer.id WHERE ticketid = XY
also wenn du zweimal AS email verwendest, kann es nicht funktionieren
das vorher mit zwei verschiedene Namen für das Ergebnis macht schon Sinn
SELECT aufgeber_email AS aemail, benutzer.email AS bemail FROM ....
sonst überschreibt die benutzer.email ja die vom aufgeber
Du solltest vielleicht schon bei (vor) Anlegen des Tickets prüfen,
ob jeweils auch eine eMail-Adresse vorhanden (und gültig) ist
so, dass Du Dir sicher sein kannst, das immer Mail-Adressen vorhanden sind
wenn nicht ... soooo schlimm ist doch ne if Abfrage ob aemail oder bemail einen Wert hat doch garnicht
if (!empty(....)) { ... }
-
in: Mehrere Daten aus MySQL Tabelle abrufen und ausgeben
geschrieben von campz
carl-schoeneich schrieb:
Danke!!!!
Funktioniert Super!
Nur kann ich auch die Daten alle in Variablen wie user[1], user [2] usw. speichern?
nimm mysql_fetch_assoc() und baue Dir in der while() Schleife ein neues Array
$abfrage = "SELECT vorname,nachname FROM user"; $ergebnis = mysql_query($abfrage); $userdaten = array(); while($row = mysql_fetch_assoc($ergebnis)) { $userdaten[] = $row; } foreach ($userdaten as $useritem) { echo "<br />".$useritem['vorname']." ".$useritem['nachname']."\n"; }
wenn Du viele Daten hast,
dann lohnt es sich immer nur 10 Daten auszugeben, also mit LIMIT
BSP: (nicht getestet)
<?php // ----------------------------------------------------------- $proseite = 10; $runpage = $_SERVER['PHP_SELF']; include ("db-verbindung.php"); // ------- Aktuelle Seite -------- if (!empty($_GET['page'])) { $runpage = $_GET['page']; } else { $runpage = 1; } // ------- Anzahl der Zeilen -------- $query1 = mysql_query("SELECT COUNT(*) FROM user"); list($anzahl) = mysql_fetch_row($query1); // ------- Anzahl der Seiten -------- $seiten = ceil($anzahl/$proseite); // ------- Ausgabe Seiten Navigation -------- echo "<p>Seiten --- "; for ($p=1; $p<=$seiten; $p++) { echo " <a href=\"$runpage."?page=".$p."\"><strong>".$p."</strong></a> --- "; } echo "</p>"; // ------- Start-Wert fuer LIMIT -------- $start = (($runpage*$proseite) - $proseite); // ------- MySQL Abfrage -------- $abfrage = "SELECT vorname,nachname FROM user LIMIT $start,$proseite"; $ergebnis = mysql_query($abfrage); // ------- MySQL Ergebnis in Array schreiben -------- $userdaten = array(); while($row = mysql_fetch_assoc($ergebnis)) { $userdaten[] = $row; } // ------- Ausgabe der Daten -------- echo "<br />\n"; echo "<br />Aktuelle Seite: ".$runpage."\n"; echo "<br />\n"; echo "<br />\n"; foreach ($userdaten as $useritem) { echo "<br />".$useritem['vorname']." ".$useritem['nachname']."\n"; } // ----------------------------------------------------------- ?>
ich hoffe das BSP funktioniert ... habs nicht getestet
für bessere Übersicht bei sehr vielen Zeilen (Datensätzen)
wenn Du bisher nur wenige Zeilen hast
kannst Du es ja mal mit $proseite = 1; testen,
dann solle es je User eine Seite geben
-
in: Mehrere Daten aus MySQL Tabelle abrufen und ausgeben
geschrieben von campz
carl-schoeneich schrieb:
Die DB-Verbindung funktioniert und alles eigentlich.
Nur gibt er mir immer nur den ersten User aus.
Wie kriege ich es hin, dass er mir alle User nacheinander anzeigt?
Du musst eine Schleife machen, die solage läuft, wie Datensätze vorhanden sind
am einfachsten mit while()
$abfrage = "SELECT vorname,nachname FROM user"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "<br />".$row->vorname." ".$row->nachname."\n"; }
so kommst Du an alle Datensätze
-
in: GET Werte zwischen-speichern?
geschrieben von campz
Hallo
ich habe eine Seite, auf der man dich durch mehrer Ebenen klicken kann
und auf jeder Ebene auch verschiedene Optionen auswählen kann
dadurch wird der GET-String aber leider ziemlich lang und unübersichtlich
jetzt meine Idee, die "alten" Werte in einer Session zwischen-speichern
und nur neue Werte im GET-String übergeben
dann (bei Änderung oder Neue Werte) die Session "anpassen"
so dass nicht immer alle "alten" schon gesetzten Werte wieder im Query_String sind
leider klappt es nicht so wie ich es versucht habe
foreach ($_GET as $getkey => $getvalue) { if (!isset($_SESSION[$getkey])) { $_SESSION[$getkey] = $getvalue; // ---- Neuer Wert } elseif ($_SESSION[$getkey] != $getvalue) { $_SESSION[$getkey] = $getvalue; // ---- Update Wert } }
und dann zum Testen
echo "<p>Test ... GET</p>\n"; echo "<pre>\n"; print_r($_GET); echo "</pre>\n"; echo "<p>Test ... SESSION</p>\n"; echo "<pre>\n"; print_r($_SESSION); echo "</pre>\n";
aber Ausgabe ist eine leere (weiße) Seite ... garnix ?!
was könnte falsch sein ?
PS:
habe ganz oben im Script die Zeilen
error_reporting(E_ALL); ini_set('display_errors','On');
aber es kommt kein Error Reporting,
auch wenn ich Fehler mit Ansicht rein mache, nur leere (weiße) Seite
ist ini_set auf Lima-City gesperrt ? ... wie sonst ... php.ini Datei machen ?
-
in: Gesamte MySQL Tabelle auslesen
geschrieben von campz
lege die Ergebnisse am besten in ein assoziatives Array
dann kannst Du es ausgeben / weiter verarbeiten
$abfrage = "SELECT vorname,nachname FROM user"; $ergebnis = mysql_query($abfrage); $daten = array(); while($row = mysql_fetch_assoc($ergebnis)) { $daten[] = $row; }
dann bekommst Du
$daten = array( [0] = array ( [vorname] => Hans [nachname] => Dampf ) [1] = array ( [vorname] => Maria [nachname] => Dampf ) )
Ausgabe in Schleife:
$n=1; foreach($daten as $item) { echo "<br /> Nr:: " . $n . "\n"; echo "<br /> Vorname: " . $item['vorname'] . "\n"; echo "<br /> Nachname: " . $item['nachname'] . "\n"; echo "<br />\n"; $n++; }
oder als DEBUG Ausgabe
echo "<pre>\n"; print_r($daten); echo "</pre>\n";
Wenn Du die Usernamen in Komnination haben wisst,, dann etwa so
$userdaten = array(); $i=0; foreach($daten as $item) { $userdaten[$i] = $item['vorname'] . ' ' . $item['nachname']; $i++; } echo "<pre>\n"; print_r($userdaten); echo "</pre>\n";
dann bekommst Du
$userdaten = array ( [0] = Hans Dampf [1] = Maria Dampf )
beachte,die numerische Auszähling von Array-Elementen beginnt mit 0 (null)