+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Frage zu Lehrbuch-PHP-Upload-Script

  1. #1
    TP-Insider NicNac macht alles soweit korrekt Avatar von NicNac
    Registriert seit
    Apr 2001
    Ort
    Zürich, Schweiz
    Beiträge
    557

    Frage zu Lehrbuch-PHP-Upload-Script

    Hi

    So ich lerne jetzt PHP mit so einem Buch, das ich allerdings nicht wirklich gut finde da kaum etwas erklärt ist.

    Nun steht da ein Script zum Dateiupload..das verstehe ich ungefähr zu 90%. Aber gewisse Dinge nicht:

    1. Am Anfang des Scripts steht:
    $ziel = ""; (und als Erklärung: Zierverzeichnis der Datei)

    Nun, warum hat man hier keinen Namen angegeben?!?!? Wird der automatisch ermittelt oder was'

    2. Nun will der Autor einen zufälligen (temporären) Namen für die Datei entwickeln, die nachdem vollständigen Upload gelöscht wird.

    function random($name_laenge) {
    $zeichen = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789";
    $name_neu = "";

    mt_srand ((double) microtime() * 1000000);
    for ($i = 0; $i < $name_laenge; $i++) {
    $name_neu .= $zeichen{mt_rand (0,strlen($zeichen))};
    }
    return $name_neu;
    }
    $ziel .= random("20") . $datei_ende;

    Da kapiere ich jetzt vieles nicht. Zum einen mal, wie kann er eine Schleife für die $name_laenge machen, wenn diese Länge nirgends definiert ist? Das ist ja eine Endlosschleife?! Dann dieser Abschnitt: $name_neu .= $zeichen{mt_rand (0,strlen($zeichen))}
    Heisst das, dass eine zufällige Anzahl an Zeichen (also die Anzahl zwischen 0 und der Anzahl $zeichen) den neuen Namen bilden sollen? Also die geschweiften Klammern nach einer Variable heissen immer dass sie dort ihren Namen "herholt"??

    Und was heisst das am Schluss:
    $ziel .= random("20") . $datei_ende;
    echt, da hab ich keine Ahnung...

    Ansonsten kapier ich alles. Danke im Voraus
    http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!

  2. #2
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Na die IF Bedingung wird so lange durchlaufen, bis $i kleiner ist als $name_laenge. Ist es nicht kleiner, wird $i um 1 erhöht ($i++).

    In der Schleife wird dann an $name_neu immer ein zufälliges Zeichen angefügt (daher .=).

    Zum Schluss baut er das dann komplett zusammen und nimmt das als Speicherpfad ...

    Ich nehme an, Du hast nicht das komplette Skript hier dargestellt. Da fehlt noch einiges, denn so "allein" würde es nicht funktionieren.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  3. #3
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    also zu punkt 1:

    die zariable ziel wird ganz unten definiert.

    unter punkt 2, wird ein neuer name für die upgeloadete datei festgelegt.
    dabei handelt es sich um einen zufalls namen

    ..
    also die forschleife läuft so lange, bis $i = 20 ist.
    PHP-Code:
    $ziel .= random("20") . $datei_ende
    random heist die function, und als wert wird hier 20 übergeben.
    dieser übergebene string wird innerhalb der zunktion under der variablen $name_laenge geführt.
    allerdings würde ich die anzührungszeichen in der klamma weg
    lassen, dann wird 20 als int. übergeben, der string kann fehler verursachen.
    -- > $ziel .= random(20) . $datei_ende;

    hier mal eine genau erläuterung:



    PHP-Code:

    function random($name_laenge) {  // function random
    $zeichen "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWX
    YZ0123456789"
    // as diesen zeichen kann der zufallsname vestehen.
    $name_neu "";  // der name ist noch nicht definiert

    mt_srand ((double) microtime() * 1000000); 
     
    /* Mit mt_srand() legt man einen internen Startwert für den "Mersenne-Twister"-
    Zufallszahlengenerator von mt_rand() fest. Um nicht immer die gleichen Werte
    zu bekommen, wird hier die aktuelle zeit verwendet. die function gibt keine ausgabe zurück.*/

    for ($i 0$i $name_laenge$i++) { 

    /* hier wird $name_laenge übergeben --> s. unten = 20; und die die forschleife gestartet.
    sie läuft nun so lange, bis $i = 20 ist. */

    $name_neu .= $zeichen{mt_rand (0,strlen($zeichen))};

    /*hier wird der variablen $name_neu ein zufallsstring, bestehend aus $zeichen, ANgefügt. 
    mt_rand ist der zufallsgenerator von php. 0 (zeichen) ist hier der
     startwert des zufallsgenerators und 64 (zeichen) die oberste 
    gränze. (strlen($zeichen) gibt die länge der variablen $zeichen 
    aus, -- > hier müssten es 64 sein, wenn ich mich nicht verzählt habe.
    da die variable $name_neu am ende jedes schleifendurchlaufes
    erhalten bleibt, so wird ihr immer wieder ein neuer string 
    ANgefügt. also - > wenn ich mich nicht irre, wird der name 
    maximal *rechne* 20 x 64 zeichen lang */
     

    return 
    $name_neu;  

    /* hier wird die variable an die dieser riesige string angefügt
    wurde zurückgegeben und unten für random("20") eingefügt.*/
    }


    $ziel .= random("20") . $datei_ende
    /* function random wird aufgerufen und der wert 20 (als string)
    übergeben. der rückgabewert aus der function random, wird der
    variablen $ziel angefügt */ 
    cYa
    p4r4
    Geändert von P4r4 (18.10.2002 um 17:53 Uhr)

  4. #4
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    wenn ich mich nicht irre, wird der name maximal *rechne* 20 x 64 zeichen lang
    Nein, er wird maximal 20 Zeichen lang, und besteht aus einer zufälligen Auswahl der Zeichen abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789 ....
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  5. #5
    TP-Insider P4r4 macht sich hier sehr viel Mühe Avatar von P4r4
    Registriert seit
    Feb 2002
    Beiträge
    550
    ups,
    ja hast recht ...

  6. #6
    TP-Insider NicNac macht alles soweit korrekt Avatar von NicNac
    Registriert seit
    Apr 2001
    Ort
    Zürich, Schweiz
    Beiträge
    557
    danke an alle, besonders an p4r4 für deine genau erläuterung. Jetzt alles kapiert
    Und ja, das Script ist nicht vollständig abgeschrieben, nahm nur die Stellen die ich nicht kapierte

    Grüsse aus der schweiz
    http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51