Hi@All
Ich hab eine kleine Benutzerverwaltung geschrieben.
Der Benutzer loggt sich mit Name und Passwort ein. Dann hat er die Möglichkeit über ein Eingabefeld seine Nachricht zu verfassen und in einer .txt zu speichern oder auch zu löschen.
Nachfolgend mal mein Script. Schaut doch bitte mal drüber ob es etwas zu verbessern oder Sicherheitslücken gibt.
Bisher läuft alles wie gewünscht.
die Loginseite:
	
die Verwaltungsseite:
	
Schon mal Danke im Voraus.
							
						
					Ich hab eine kleine Benutzerverwaltung geschrieben.
Der Benutzer loggt sich mit Name und Passwort ein. Dann hat er die Möglichkeit über ein Eingabefeld seine Nachricht zu verfassen und in einer .txt zu speichern oder auch zu löschen.
Nachfolgend mal mein Script. Schaut doch bitte mal drüber ob es etwas zu verbessern oder Sicherheitslücken gibt.
Bisher läuft alles wie gewünscht.
die Loginseite:
PHP-Code:
	
	
<?
// neue Session starten
session_start();
// datenbankverbindung 
include("url");
// variablen initialisieren
$table = "db_tabelle";
$meldung = "";
$query = mysql_query("SELECT benutzer,id FROM $table");
         // Login überprüfen
        if(isset($_POST['login'])){
        
          $benutzer= strip_tags($_POST['benutzer']); 
          $pass = strip_tags($_POST['pass']);
          
          $query2 = mysql_query("SELECT pass, benutzer FROM $table WHERE benutzer='".$benutzer."'");
          $ausgabe = mysql_fetch_array($query2);
          
          // Passwort vergleichen mit Passwort aus DB
          if((md5($pass) == $ausgabe['pass']) && $benutzer == $ausgabe['benutzer']){
          
            $_SESSION['status'] = 1;
            $_SESSION['benutzer'] = $benutzer;
            // datei zum schreiben öffnen
            // wenn nicht vorhanden, wird sie angelegt
            $filename = "url/news_".strtolower(str_replace(" ","",$_POST['benutzer'])).".txt";
            $handle = fopen($filename,"a+");
            header("Location: url?benutzer=$benutzer");
                        
            }else{
            $meldung = "Falsches Passwort oder falscher Benutzername! Bitte versuchen Sie es erneut!";
            }
          
          }
          
?>
PHP-Code:
	
	
session_start();
// Session abmelden
if(isset($_POST['destroy'])){
   $_SESSION = array();
   
   if (isset($_COOKIE[session_name()])) {
      setcookie(session_name(), '', time()-42000, '/');
      }
 
   session_destroy();
   header("Location: url");
   exit();
   }
             
if(($_SESSION['status'] != 1) || ($_SESSION['benutzer'] != $_GET['benutzer'])){
  header("Location: url?login=fehler");
 
  }
// Variable definieren
$filename = "url/news_".strtolower(str_replace(" ","",$_GET['benutzer'])).".txt"; 
$meldung = "";
if(isset($_POST['senden'])){
    // newstext in Variable packen
    $content = $_POST['newstext'];
    
    // alle Zeilenumbrüche entfernen und durch +++ ersetzen
    $content = str_replace(array("\r\n","\n","\r")," +++ ",$content);
    $content = ereg_replace("[ +++ ]{2,}"," +++ ",$content);
    
    // Sichergehen, dass die Datei existiert und beschreibbar ist
    if (is_writable($filename)) {
    
        // $filename im  Screibmodus öffnen
        if (!$handle = fopen($filename, "w")) {
             print "Kann die Datei $filename nicht öffnen";
             exit;
        }
    
        // Schreibe $content in die geöffnete Datei.
        if (!fwrite($handle, $content)) {
            $meldung = "Ihre News wurden <b>nicht</b> geändert!";
        }
    
        $meldung = "Ihre News wurden geändert!";
    
        fclose($handle);
    
    } else {
        $meldung =  "»Ihre News wurden <b>nicht</b> geändert!«";
    }
    
}
// inhalt der .txt löschen
if(isset($_POST['loeschen'])){
  // Variable Content leeren
  $content = "";
  
  if(is_writable($filename)){
    
    //$fiename im Schreibmodus öffnen
    if(!$handle = fopen($filename,"w")){
      print "kann Datei $filename nicht öffnen!";
      exit();
      }
      
    // $content in geöffnete Datei schreiben
    if(!fwrite($handle, $content)){
      $meldung =  "Ihre News wurden nicht gelöscht!";
      }
      
     $meldung = "Ihre News wurden gelöscht!";
     
     fclose($handle);
    }
  
  }
?> 
          
 Moderator
							
						
Kommentar