kostenloser Webspace werbefrei: lima-city


Problem beim Kopieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    k****8

    Ich bekomme beim kopieren von Files per Skript immer folgende Error:


    Warning: copy(): open_basedir restriction in effect. File(/drogen.txt) is not within the allowed path(s): (./..:/home/webpages/tmp) in /home/webpages/lima-city/kai008/html/reg.php on line 18

    Warning: copy(/drogen.txt): failed to open stream: Operation not permitted in /home/webpages/lima-city/kai008/html/reg.php on line 18


    Mein Momentaner Skript lautet so:


    <form action="reg.php" method="post">
    <input type="text" name="dir"> <br>
    <input type="submit" value="Verzeichnis erstellen">
    </form>

    <?php
    $createdir=$_POST['dir'];
    $oldfold="drogen";
    if($createdir)
    {
    if(mkdir($createdir,0777))
    {
    $openfold = opendir($oldfold);
    while($file = readdir($openfold))
    {
    if($file != "." && $file != "..")
    {
    copy ($oldfold."/".$file,$newfold."/".$file);
    }
    }
    }
    else
    {
    echo "n00b";
    }
    }
    ?>


    Ziel des Skriptes sollte es sein, einen Ordner zu erstellen, und dann den inhalt eines Vorlageordners reinzukopieren

    Kann mir wer den Skript funktionell umschreiben?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. s*********e

    dann arbeeite doch mti dem absoluten path:
    /home/webpages/lima-city/kai008/html/

    ich glaub, dass ist der fehler
  4. Autor dieses Themas

    k****8


    dann arbeeite doch mti dem absoluten path:
    /home/webpages/lima-city/kai008/html/

    ich glaub, dass ist der fehler


    Ich habe die Variable $oldfold jetzt mit /home/webpages/lima-city/kai008/html/Drogen und http://kai008.milten.lima-city.de/Drogen ver?ndert, aber es gibt immer noch den selben Fehler aus :eek:

    Trotzdem THX
  5. k**********e

    es k?nnte dran liegen, dass $newfold gernicht gesetzt ist (sondern $createdir)
    versuchs mal mit den richtigen variablen
  6. Autor dieses Themas

    k****8


    es k?nnte dran liegen, dass $newfold gernicht gesetzt ist (sondern $createdir)
    versuchs mal mit den richtigen variablen


    THX, hat aber leider auch nicht geholfen
  7. Bist du sicher, dass die Fehlermeldung noch genau die gleiche ist? Oder hat sich der bem?ngelte Pfad ge?ndert?

    Ansonsten lass dir doch von deinem Script einfach mal die Variablen mit echo() oder print() ausgeben. Ich mach das immer so:

    printf("oldfold: ((%s))<br />", $oldfold);
    // usw. fuer alle Pfad-Variablen

    Dann siehst du schneller, wo der Wurzel-Pfad fehlt.
  8. hatte ?hnliche probleme mit den dateipfaden f?r ne gallery auf lima....

    lass dir einfach mal mit getcwd(); den aktuellen pfad ausgeben und h?ng dahinter dann den ganzen andern spass an... check mal ob das funzt....
  9. t*****2

    php scripts darf man nich kopieren habe ich mal geh?rt. du musst das selber schreiben.

    Zitat:"Das liegt daran, dass ihr nicht nur den Programmcode kopiert, sondern auch unsichtbare Steuerzeichen, die beim Kopieren dann PHP nicht verarbeiten kann."

    :biggrin:
  10. Autor dieses Themas

    k****8


    php scripts darf man nich kopieren habe ich mal geh?rt. du musst das selber schreiben.

    Zitat:"Das liegt daran, dass ihr nicht nur den Programmcode kopiert, sondern auch unsichtbare Steuerzeichen, die beim Kopieren dann PHP nicht verarbeiten kann."

    :biggrin:


    Ich habe ihm eh selbergeschrieben.
  11. k**********e

    $self  = $_SERVER['PHP_SELF']; 
    $base  = dirname(__FILE__).'/'; 
    $old   = $base.'drogen'; 
    
    echo <<<HTML 
    <h1>Create an Copy</h1> 
    <form action="$self" method="post"> 
    <input type="text" name="dir"> <br> 
    <input type="submit" value="Verzeichnis erstellen"> 
    </form> 
    <hr /> 
    HTML;
    
    if(isset($_POST['dir'])) 
    { 
        $dir = trim($_POST['dir']); 
         
        if(empty($dir)) 
            exit; 
    
        if(mkdir($base.$dir, 0777)) 
        { 
            $fh = opendir($old); 
            while($file = readdir($fh)) 
            { 
                if($file != '.' && $file !='..') 
                { 
                    copy($old.'/'.$file, $base.$dir.'/'.$file); 
                } 
            } 
        } 
    }

    getestet und geht.
    das alte wie auch das neue verzeihniss muss im selben oderer liegen wie das script selbst.


    Beitrag ge?ndert am 4.11.2005 18:16 von kirschbluete
  12. 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!