Florian: Fehler bei Bilderupload BITTE HELFT MIR

Hallo ich möchte ein Bild vom User hochladen lassen das in einem bestimmten Verzeichnis liegt.

BSP.: /photovoting/upload/img/

Es kommt zu folgender Fehlermeldung:
WARNING: open_basedir restriction in effect. File is in wrong directorc

es folgt die Datei wo der Fehler aufgetreten ist  on line 89
Hier ist die betreffende Stelle:

if(eregi("(jpg|gif)$",$name)) {
    if($size<$bildgroesse AND $size!=0) {
      copy($bild,$wo.$chiff.".jpg");

Hier ist die ganze Datei:
<?

// Prüfen & einbuchen der Daten

$jetztip=getenv("REMOTE_ADDR");     // Aktuelle IP-Adresse des Besuchers auslesen.
include "../include/config.php";    // Konfiguration laden.
include "../include/$sprache.php"; // Sprachdatei einlesen.
include "../include/kopf.php";      // Header einlesen.
include "../include/upload.inc" ;   // Uploadinfo einlesen.
if ($was==""){
        include "../include/form.php";    // Formular laden zur Dateneingabe.
        include "../include/upload2.inc"; // Uploadinfo unter Fprmular einlesen.
        }
else {
$datum=date("d.m.Y   H:i:s");
$wdatum=date("d.m.Y   H:i:s");
$xdauer=date("z");
$verfall=9999999999999;
mt_srand((double)microtime()*1000000);
$chiff=mt_rand();
$anz="400";
$text=strlen($wtext);
// Prüfen der Eingaben auf Richtigkeit
if ( $delpass == ""){
$delpass="no";
}
if ( $name == "" or $mail == "" or $beschr == "" or $typ == "") {
        echo "$fehler";
        echo "$button";
        include "../include/fuss.php" ;
exit;
}

if (!( strlen ( $wtext ) <$anz )) {
        echo "$fehler_text";
        echo "$button";
        include "$fuss" ;
exit;
}
include "../include/config.php";
include "../include/$sprache.php";
// Ausfiltern des ECO-Zeichens! Strings bekommen ein _f für gefiltert
// Soll später auch für eine Badword-Liste dienen umd Beschimpfungen zu filtern!
$darfnicht="'";
$sollso=" ";
$typ_f = str_replace($darfnicht, $sollso, $typ);
$name_f = str_replace($darfnicht, $sollso, $name);
$mail_f = str_replace($darfnicht, $sollso, $mail);
$beschr_f = str_replace($darfnicht, $sollso, $beschr);
$homepage_f = str_replace($darfnicht, $sollso, $homepage);
$delpass_f = str_replace($darfnicht, $sollso, $delpass);
// Ende der Filtertüte und eintragen in die Datenbank starten!

$eintragen="INSERT INTO $tab1 (typ,name,mail,beschr,chiff,date,ipadresse,homepage,delpass)
        values('$typ_f','$name_f','$mail_f','$beschr_f','$chiff','$wdatum','$jetztip','$homepage_f','$delpass_f')";

// Bildupload und zweite Prüfung, ob Felder nicht evtl leer sind!
if (!(eregi ("^.+@.+\..+$", $mail))) {
echo "<center>$fehler  $button<br><br></center>";
include "../include/fuss.php" ;
exit;
}
if ( $typ == "" ) {
echo "<center>$fehler  $button<br><br></center>";
include "../include/fuss.php";
exit;
}
if ( $name == "" ) {
echo "<center>$fehler  $button<br><br></center>";
include "../include/fuss.php" ;
exit;
}
if ( $beschr == "" ) {
echo "<center>$fehler  $button<br><br></center>";
include "../include/fuss.php" ;
exit;
}
if($was=="doit")
{

$size = $bild_size; // Größe der Datei
$name = $bild_name; // Der Originalname
$type = $bild_type; // Der MIME Type der Datei
$wo = "$pfad_phys";
$url = "$pfad_absolut/upload/img/";

if(eregi("(jpg|gif)$",$name)) {
    if($size<$bildgroesse AND $size!=0) {
      copy($bild,$wo.$chiff.".jpg");

//Daten eintragen
if (!$testA && !$testB) {
        mysql_query($eintragen,$link)
                or die ( "$fe $notfound $fe".mysql_error() );

//Daten eintragen ENDE
    } else {
      echo "$falschformat";
      include "$fuss" ;
      exit;
    }
    } else {
    echo "$falscherweit: ".$name;
    include "../include/fuss.php" ;
    exit;
    }

} else {

echo "$fehler  <br>$button";
    include "../include/fuss.php" ;
    exit;
  }

//Bildupload ENDE
echo "<html><head><META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="refresh" CONTENT="1; URL=../index.php"></head><body><center>$fa $weiterleit $fe</center></body></html>";
}
if (!$testA && !$testB)
{
}

mysql_close( $link );
}
include "../include/fuss.php" ;
?>

  1. hi

    BSP.: /photovoting/upload/img/

    Es kommt zu folgender Fehlermeldung:
    WARNING: open_basedir restriction in effect. File is in wrong directorc

    weiter muss man gar nicht gehen. Das Script liegt an einer Stelle, von wo als man nicht auf diesen Ordner zugreifen darf (PHP-Savemode)
    In deinem Falle darf das Script soweit ich weiß nur in /photovoting/upload oder in einem unterordner von /photovoting/upload/img/ liegen.

    gruss Kai

    1. DAs script post.php liegt im ordner :
      /photovoting/upload

      die Bilder sollen in den Ordner:
      /photovoting/upload/img

      Florian

      1. Moin!

        DAs script post.php liegt im ordner :
        /photovoting/upload

        die Bilder sollen in den Ordner:
        /photovoting/upload/img

        Diese Angaben sind nicht ganz korrekt!

        1. Du arbeitest anscheinend auf einem Unix-Server.
        2. Sicherlich bei einem Provider.
        Daraus folgt:
        3. Du hast ein Verzeichnis auf dem Rechner wie viele andere Kunden auch. Dieses Verzeichnis heißt aber nicht "/" - denn das wäre das Hauptverzeichnis des Servers - sondern vermutlich eher sowas wie "/home/webspace/florian/www/". Herausfinden kannst du das, indem du mit

        <?php echo "$DOCUMENT_ROOT<br>"; ?>

        mal dieses Verzeichnis ausgeben läßt - es gibt da keinen Standard, und jeder Provider hat da seine eigene Struktur.

        Zur Lösung: Wenn du ohnehin schon im Upload-Verzeichnis bist, gib einfach den relativen Pfad an: "img/DATEINAME.GIF" zum Beispiel. Bei den ganzen include()-Angaben funktioniert das ja schließlich auch.

        - Sven Rautenberg