[PHP] Upload Script mit Passwort versehen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MasterJulian, 15. Februar 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. Februar 2009
    Upload Script mit Passwort versehen

    Vorweg: Ich habe so gut wie 0 Erfahrung mit PHP. Ich habe folgendes upload script:
    Spoiler
    PHP:
    <? php 

    // Variabeln festlegen 
    $max_byte_size  2097152
    $allowed_types  "(jpg|jpeg|gif|bmp|png|txt|zip|rar|7z|ace|tif)"

    // Formular wurde abgeschickt 
    if( $_POST [ "submit" ] ==  "Upload" ) { 

    // Wurde wirklich eine Datei hochgeladen? 
    if( is_uploaded_file ( $_FILES [ "file" ][ "tmp_name" ])) { 

    // Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen) 
    if( preg_match ( "/\."  $allowed_types  "$/i" $_FILES [ "file" ][ "name" ])) { 

    // Datei auch nicht zu groß 
    if( $_FILES [ "file" ][ "size" ] <=  $max_byte_size ) { 

    // Alles OK -> Datei kopieren 
    if( copy ( $_FILES [ "file" ][ "tmp_name" ],  "./files/"  $_FILES [ "file" ][ "name" ])) { 

    echo 
    "Datei erfolgreich hochgeladen!<br>"
    echo 
    "Name: "  $_FILES [ "file" ][ "name" ] .  "<br>"
    echo 
    "Größe: "  $_FILES [ "file" ][ "size" ] .  " Byte<br>"
    echo 
    "MIME-Type: "  $_FILES [ "file" ][ "type" ] .  "<br>"
    echo 
    "Link: <a href=\"./files/"  $_FILES [ "file" ][ "name" ] .  "\">"  $_FILES [ "file" ][ "name" ] .  "</a>"


    else { 

    echo 
    "Datei konnte nicht hochgeladen werden."




    else { 

    echo 
    "Die Datei darf nur eine Größe von "  $max_byte_size  " Byte besitzen."




    else { 

    echo 
    "Die Datei besitzt keine ungültige Endung."




    else { 

    echo 
    "Keine Datei zum Hochladen angegeben."




    else { 

    echo 
    "Bitte benutzen Sie das Upload Formular."



    ?>
    Im moment ist das htaccess geschützt. Ich möchte aber, dass verschiedene User in verschiedene Verzeichnisse hochladen können. Also wenn sich user1 anmeldet dann wird das in ./files/user1/ hochgeladen. Die User/PW liste hätte ich gerne in eine txt (die natürlich nicht von außen lesbar seien sollte) im format user w(verschlüsselt). Kann mir jemand helfen oder nen denkanstoß geben?
     
  2. 15. Februar 2009
    AW: Upload Script mit Passwort versehen

    Hey,

    so fangen wir doch mal an

    Füge bei deinem Formularfeld einfach eine Feld User und Passwort hinzu, die dann mit ein dein PHP Script geschickt werden. Diese werden dann beim hochladen mitverarbeitet.

    Oben prüfst du ob User Daten mitgekommen sind und ob es sie gibt,sonst brichst du direkt ab. Die Passwörter würde ich allerdings in einem Array speichern, ist vielleicht einfacher, als sie per PHP nachzuladen und "auseinanderzunehmen"

    Dazu erstmal ein CodeBeispiel:

    PHP:
    <? php
     
      
    // Userdaten definieren:
      
    $userdaten  = array( "user1" => "password_hash" , "user2" => "passwort_hash" );
      
    // Das Array enthält nun die userdaten, zB in $userdaten['user1'] ist der PasswortHash von user1 usw...

     
      // Nun prüfen wir die Userangabgen die mitgeschickt worden. In meinem Beispiel
      // sind das mal $_POST['user'] und $_POST['passwort']


      // Zuerst prüfen wir ob die Feldern überhaupt Daten enthalten:
      
    if(isset( $_POST [ 'user' ] && isset( $_POST [ 'passwort' ]){
          
    // So Logindaten sind da, also prüfen ob sie Stimmen:
          
    if( md5 ( $_POST [ 'passwort' ]) ==  $userdaten [ $_POST [ 'user' ]]){
              
    // Hier kannst du nun mit deinem Script Fortfahren und $_POST['user'] als Ordnernamen nehmen.
            // So hat dann jeder User seinen gleichnahmigen Ordner 
        
    }else{
            echo 
    "Logindaten falsch" ;
        }
      }else{
          echo 
    "Keine Userdaten angegeben" ;
      }
     

    ?>
    Hoffe das war jetzt nicht zu schwer Trotzdem noch ein zwei kleine Worte dazu:

    • MD5 ermittelt den Hash Wert eines beliebig langen String und wird im Web oft benutzt um damit Passwortdaten zu speichern.
    • Die Ordner musst du alle entsprechend davor anlegen und mit den entsprechenden Rechten versehen.
    • Wenn du umfangreichere Userrechte möchtest würde ich dir eine Datenbank emfehlen. Der Einstieg ist gar nicht so schwer
    • Allgemeine PHP Hilfe Seite: Quakenet/#php Tutorial - de - Einleitung
    Hoffe ich hab dir geholfen

    Bei weiteren Fragen frag, oder schreib PN


    Gruß Blackbird89
     
  3. 15. Februar 2009
    AW: Upload Script mit Passwort versehen

    Danke für die ausführliche Antwort. Mit dem Programmieren allgemein sollte es nicht scheitern, nur eben habe ich fast keine erfahrung mit php. Der Code ist schon ein guter Denkansatz. Ich schau ihn mir mal an. Wenn Probleme bei der Umsetzung gibt, melde ich mich wieder. Bis dahin erstmal zu.
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.