kostenloser Webspace werbefrei: lima-city


Fragen zur Gallery

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t****k

    Hey,

    kann mir jemand das zum einbauen helfen, dass es sich die Daten aus dem Ordner /Gallery/Galleryplayer/ holt, weiß nicht was ich da ändern muss bzw. wo ich den Pfad angeben muss. Wenn dann so ein Ordner angelegt wurde holt es sich dann nur die Daten die im Ordner /Gallery/Galleryplayer sind oder auch den Ordner selbst Galleryplayer sollte nur die Daten holen die im Ordner Galleryplayer sind wenn es geht wenn nicht dann den Order Galleryplayer dazu.

    copy ("/default_dir/*.php",/.$user/");

    Script:

    <?php
    error_reporting(E_ALL|E_STRICT); // Lokalbook.de
    
    // Abfragen des Usernamen
    echo '<form method="POST">
    Gib deinen Namen ein: <input type="text" name="user" value="" title="Namen eingeben" />
    <input type="submit" name="create_folder" value="Ordner erstellen" />
    </form>';
    
    // Ist Button "Ordner erstellen" gedrückt
    if(isset($_POST['create_folder']))
    {
    // Die eingabe ist leider leer.
    if(empty($_POST['user']) or strlen(trim($_POST['user'])) == 0)
    {
    echo "Die eingabe ist leider leer.";
    }
    else
    {
    // Erstelle Ordner mit Benutzernamen
    $user = $_POST['user'];
    if(preg_match('/\./', $user) || preg_match('/\//', $user)) { // Schutzmechanismus - Könnte man noch verbessern
    echo "Benutzername ung&uuml;ltig!";
    } else {
    mkdir ('User/'.$user,0755);
    copy ("/default_dir/*.php",/.$user/");
    echo "Ordner: <b>$user</b> wurde erfolgreich erstellt!";
    }
    }
    }
    ?>


    Gruß Tobi
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. @tobitk
    ... die Daten aus dem Ordner /Gallery/Galleryplayer/ holt
    das ist keine verwertbare information zu der path-frage. (wenn man das nicht versteht, möchte man sich in die materie 'relative-' und 'absolute-path' unter php einlesen!)
    ... weiß nicht was ich da ändern muss ...
    z.b. das hier
    copy ("/default_dir/*.php",/.$user/");
    das geht aus zwei gründen nicht!
    1. copy kennt keine joker-zeichen;
    2. fehlt ein anführungszeichen.
    if(preg_match('/\./', $user) || preg_match('/\//', $user)) { // Schutzmechanismus - Könnte man noch verbessern
    "Könnte man noch verbessern" ist gelinde gesagt :o)
    mkdir ('User/'.$user,0755);
    auch das kann nicht gut gehen. (zumindest warnung von php kann drohen!)
    dazu dass man hier helfen kann, ist nötig, dass dus weißt, ob du absolute oder relative pfade haben willst (ich rate zu absoluten.) dazu ist es nicht uninteressant, ob der script auf win oder unix/linux rennt.
    ja. also wenn du das alles mitteilen willst, kann ich dir was funktionelles schreiben, aber so leider nicht.
    woher hast du den kode überhaupt? er ist sehr schlampig! du solltest dir außerdem konsequente einrückungen angewöhnen!! (lesbarkeit)
  4. Autor dieses Themas

    t****k

    Hey,

    den Code hat mir mein Freund einmal zusammengestellt, der zwar besser am Programmieren ist als ich aber auch nicht gerade die Erfahrung hat =)


    ich wollte dich noch fragen, wie du auch schon gesagt hast ob du mir einen sicheren, sauberen und Fehlerfreien Script schreiben möchtest, es sollte auch wieder ein solches Textfeld sein und dort kann man den Ordnernamen reintippen und auf OK klicken. Dann legt es diesen Ordner auf dem Webspace an und holt sofort (nur die Daten) die im Ordner /Gallery/Galleryplayer herüber in den Ordner der angelegt worden ist, die Ordner die angelegt werden müssen unter /Gallery/User gespeichert werden.

    Wenn du dann noch Lust hast mir auch noch das einzubauen, das man alle Ordner auch noch löschen kann die angelegt wurden aber die dürften nicht in solch ein Textfeld löschbar sein sondern in so ein DropDown Menu (glaub ich) also Ordnernamen nach dem ABC aufgeordnet und dann auswählen und man kann in durch auf OK klicken löschen aber hier beim Löschen mit Chaptcha Sicherheitsschlüssel

    Vielen Dank würde mich sehr freuen,

    Gruß Tobi
  5. ich wollte dich noch fragen, wie du auch schon gesagt hast ob du mir einen sicheren, sauberen und Fehlerfreien Script schreiben möchtest
    also das war dann auch gleich ein missverständnis. ich kann dir nur tipps geben wie es gehen kann (weil ich meine zeit leider fürs geldverdienen einsetzen muss)
    Wenn du dann noch Lust hast mir auch noch das einzubauen, ...
    das ist eine ellenlange liste (siehe meine zeit oben, würde gleichg viel geld kosten)
    aber ich kann dir folgendes raten
    dein filter sollte in etwa so aussehen:
    $msg = "";
      switch ( $user = filter_var ($_POST['user'], FILTER_SANITIZE_STRING) ) {
        case false:
          $msg .= "<p>FILTER verursachte fehler!</p>";
          break;
        /**
         * im falle, wenn du mit filter_input () arbeitest.
        case null:
          // input ist leer
          $msg .= "<p>input war leer.</p>";
          break;
         */
        default:    // wenn der rückgabewert von filter_* () in ordnung ist.
          $msg .= "<p>FILTER war in ordnung.</p>";
          // und hier kopierst die daten
      }
    in $_POST['user'] ist (leicht zu erraten) der username.

    zu der filtrierung musst du all das hier lernen (keine alternative! filterung ist wichtig!!):
    filter_var()
    filter_var_array()
    filter_input_array()
    filter_input()
    filter constants
    filters
    callback

    zum kopieren könntest dier das anpassen:
    $dir  = "./";
    $ext  = ".php";
    $ls   = null;
    $path = false;
    
    foreach (glob ($dir."*".$ext) as $file) {$ls[] = ( $path ) ? realpath ($file) . "\n": basename ($file) . "\n";}
    
    //echo "<pre>\n".print_r ($ls, true)."</pre>\n";
    das erstellt in der foreach schleife eine dateiliste vom ordner $dir.

    das kopieren selbst geht dann auf die art:
    for ( $i = 0; $i < count ($ls); $i++ ) {
      if ( !copy ("$source_dir/{$ls[$i]}", "$target_dir/{$ls[$i]}") ) {$msg .= "konnte {$ls[$i]} nicht kopieren!";}
    }
    wo $ls von voriger foreach schleife kommt und $source_dir und $target_dir kann ich dir nicht sagen, weil nur du sie kennst ;o)

    wie gesagt, das musst du alles anpassen. nicht vergessen über die filtrierung nachzulesen!

    Beitrag zuletzt geändert: 29.3.2010 10:02:02 von czibere
  6. Autor dieses Themas

    t****k

    Hey,

    sorry habe hiermit jetzt bis zu 99% keine Ahnung, hmm. Was mache ich den jetzt,

    aus dem Ordner Gallery/Galleryplayer holt es sich die Daten,

    eingefügt werden die Daten immer wenn ein Name im Textfeld eingegeben wurde und auf OK geklickt hat, dann legt es sich im Ordner /Gallery/User/der-Name-der-eingetippt-worden-ist der Ordner an und die Daten von ´Gallery/Galleryplayer werden herüberkopiert, aber nur die Daten die in dem Ordner sind nicht der Ordner Galleryplayer selbst.

    Vielleicht kannst du oder jemand anders mir das fertigstellen.

    Wäre euch echt sehr dankbar

    Gruß Tobi
  7. @tobitk
    ... sorry habe hiermit jetzt bis zu 99% keine Ahnung ...

    yo mey! 99% ist nach meinem geschmack ein bisschen zu viel ahnungslosigkeit. dagegen nütz unheimlich gut tuts blättern ;o)

    ausserdem du hast dich 3 mal mannhaft gewährt mir zu verraten, wo die besagten ordner sein sollten. daher meine 'lösung' ist da zu haben und wenn du die ordner wo anders hin haben willst, sagst dann. (die sind jetzt im selben ordner wie das programm selbst.)

    den filter wegen zeitmangel überlasse ich wem andern. angedeutet habe ich ja schon (weiter oben) eine für mich diskutable lösung. sollte aber auf biegen und brechen gemacht werden, sonst bist mit dem kode, wie ein schweizer käse!
  8. Autor dieses Themas

    t****k

    Hey,

    Respekt, habe mal einen Ordner Tobi angelegt, also hat es dort jetzt die Daten rüberkopiert in den Ordner Tobi?

    Was ich dir noch fragen wollte was der Filter dann genau macht =)

    Danke
    Gruß Tobi
  9. ... habe mal einen Ordner Tobi angelegt, also hat es dort jetzt die Daten rüberkopiert in den Ordner Tobi? ...
    yo mey! wonach sieht es aus? probiers auf deinem space aus.

    FILTER: ein filter macht genau das was ein sieb macht: lässt nichts gröberes durch ;o) also in all deinen inputs versuchen schlimme fingern von bösen buben und mädchen dir ein kuckucksein zu legen in form von 'falschen' inputs ('falsch' ist eigentlich keine glückliche wortwahl!). hier ist es nicht möglich das alles zu erklären, weil dann kriege ich vom LC wegen flooding eins auf den deckel ;o) was du tun musst ist nachzulesen! mal vom google gehört ...?
    zum bleistift:
    php sicherheit
    php security
    ... und was einem noch alles dazu einfällt ...
  10. Autor dieses Themas

    t****k

    stell ich mich gerade an^^

    bekomme diese Fehler:

    So ist es aufgebaut:

    ../Gallery/Galleryplayer
    ../Gallery/User
    ../Gallery/useranmelde.php


    in useranmelde.php habe ich folgendes, habe nichts verändert:

    <?php
    // czibere.lima-city.de/_forum/tobitk/tobi2.php
    error_reporting(E_ALL);
    
    // Abfragen des Usernamen
    echo "<form method=\"POST\">
    Gib deinen Namen ein: <input type=\"text\" name=\"user\" value=\"\" title=\"Namen eingeben\" />
    <input type=\"submit\" name=\"create_folder\" value=\"Ordner erstellen\" />
    </form>";
    
    // Ist Button "Ordner erstellen" gedrückt
    if ( isset ($_POST['create_folder']) ) {
      // Die eingabe ist leider leer.
      if ( empty ($_POST['user']) or strlen (trim ($_POST['user'])) == 0 ) {
        echo "Die eingabe ist leider leer.";
      } else {
        // Erstelle Ordner mit Benutzernamen
        $user = $_POST['user'];
        if ( preg_match ('/\./', $user) || preg_match ('/\//', $user) ) { // Schutzmechanismus - Könnte man noch verbessern
          echo "Benutzername ung&uuml;ltig!";
        } else {
    
          // listet den quellordner in $ls[]
          $ls     = null;
          $source = "./Gallery/Galleryplayer/";
          foreach ( glob ("$source*") as $f ) {$ls[] = basename ($f);}
          #exit ("<pre>".print_r ($ls, true));
    
          // erstellt ordner WENN N&Ouml;TIG
          if ( !is_dir ($target = "./Gallery/User/$user/") ) {
            mkdir ($target, 0755);
            echo "Ordner: <strong>$user</strong> wurde erfolgreich erstellt!";
          }
          // kopiert die daten
          foreach ( $ls as $f ) {copy ("$source/$f", "$target/$f");}
        }
      }
    }
    
    echo "<hr />source:<br />"; highlight_file (__FILE__);
    
    ?>



    Bekomme aber diese Fehler:

    Warning: Invalid argument supplied for foreach() in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 26

    Warning: mkdir() [function.mkdir]: Unable to access ./Gallery/User/test/ in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 31
    Ordner: test wurde erfolgreich erstellt!
    Warning: Invalid argument supplied for foreach() in /home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php on line 35


    Gruß Tobi
  11. So ist es aufgebaut:
    ../Gallery/Galleryplayer
    ../Gallery/User
    ../Gallery/useranmelde.php
    yo mey! tobi! um so etwas habe ich dich schon 3 mal gebeten! allerdings ist mir nicht klar, was du mit '../' am anfang meinst. na egal weil ich ja jetzt die absolute adresse habe ('/home/lokalbook/domains/lokalbook.onpw.de/public_html/Gallery/useranmelde.php'; und jetzt grüße deinen provider [strato] schön von mir. er ist der miserabelste in 'de'. gehört ja auch einem amerikaner! bei einer großkunden von mir [eine deutsche zeitung] gibt er an php5 zu bieten, dafür hat er nur php4 [dem kunden ist nichts aufgefallen bisher, jetzt bring ich ihn zu mir].)

    in useranmelde.php habe ich folgendes, habe nichts verändert
    doch! und wie! filename und filepath!! das sind bestandteile des filesystems. sie zu ändern ist, wie das rad 4-eckig machen, weiterhin 'rad' schimpfen und gleichzeitig erwarten von ihm, das weiterrollt ;o) ich würde ihn dann eher als fenterrahmen misbrauchen *haha* (du hast auch noch was auskommentiert, was ja in ordnung ist - also jede menge verändert!)
    und hier hast du es angepasst.

    zum thema relative/absolute adressierung schaue das bitte an und präege dir für immer ein: includes, das hier vorkommt. was dein problem damit gemeinsam hat? auch du hast KA von adressierungen ;o)

    na dann teste mal das neue und sags was es macht (also ich habe auch bei strato ausprobiert. ist gegangen).
  12. Autor dieses Themas

    t****k

    Hey,

    muss ich den Ordner "User" Rechte 777 geben?

    (gelöscht)

    PS: Ordner erstellt es.

    Gruß Tobi


    Jetzt geht es bin auf einem anderen Webspace^^ Danke weiter so.

    Beitrag zuletzt geändert: 31.3.2010 21:16:21 von tobitk
  13. muss ich den Ordner "User" Rechte 777 geben?
    nein. ich habe es nicht getan und es geht trotzdem. und wo hast du's untergebracht?
  14. Autor dieses Themas

    t****k

    Hey

    habe es hier unter gebracht,

    81.89.98.128/Gallery/useranmelde.php

    hilfst du mir nochmals bei der einen Frage.

    Gruß Tobi
  15. bezieht sich die frage auf das hier?

    ah jo!
    zu 81.89.98.128/Gallery/useranmelde.php:
    This domain was created using SysCP.
    There is no content on this domain yet.


    Beitrag zuletzt geändert: 2.4.2010 16:26:31 von czibere
  16. Autor dieses Themas

    t****k

    Hey,

    rechtschreibfehler, 81.89.98.138/Gallery/Useranmelde.php

    Gruß Tobi
  17. TOBI!
    da ist was faul! schaust das bitte genau an!?

    Not Found
    The requested URL /Gallery/Useranmelde.php was not found on this server.
    Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g mod_perl/2.0.3 Perl/v5.8.8 Server at 81.89.98.138 Port 80
  18. Autor dieses Themas

    t****k

    Hey,

    der nächste Fehler =), 81.89.98.138/Gallery/useranmelde.php

    muss ich aber noch erweitern zu meiner Hp, wie bzw. was muss ich mit dem Filter machen kannst du mir dort helfen, auch wenn ein Ordner schon angelegt ist das herkommt Ordner existiert bereit.

    Gruß Tobi
  19. tobitk schrieb:
    Hey,

    der nächste Fehler =), 81.89.98.138/Gallery/useranmelde.php

    muss ich aber noch erweitern zu meiner Hp, wie bzw. was muss ich mit dem Filter machen kannst du mir dort helfen, auch wenn ein Ordner schon angelegt ist das herkommt Ordner existiert bereit.

    Gruß Tobi

    yo mey! tobi!
    1. - es dauert ein bisschen, weil ich ja arbeite
    2. - kannst du mir bitte die frage ausdeutschen (besonders die zweite hälfte bedarf eine dechifrierung :o)
    3. - oben angegebene url geht nicht mehr. ich möchte aber was sehen.
  20. Autor dieses Themas

    t****k

    Hey,

    Jo muss icH heute nochmals hochladen wenn ich am
    PC Hock bin gerade am Handy Online^^. Das wir auf den grünen Zweig kommen ^^

    Also das wenn bereits ein Ordner existiert das dann eine Fehlermeldung kommt Ordner besteht bereits.
  21. Also das wenn bereits ein Ordner existiert das dann eine Fehlermeldung kommt Ordner besteht bereits.
    kein grobes problem. wie sieht der aktuelle kode aus?
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!