Fehler bei Bilderupload BITTE HELFT MIR
Florian
- php
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" ;
?>
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
DAs script post.php liegt im ordner :
/photovoting/upload
die Bilder sollen in den Ordner:
/photovoting/upload/img
Florian
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