Avatar billede vizone Nybegynder
01. marts 2004 - 21:53 Der er 21 kommentarer

Upload funktion fejlmelder

Hej
jeg har prøvet at ligge et phpscript ud på min server men får følgende fejl:

Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 55185 is not allowed to access /home owned by uid 0 in /customers/vizone.dk/vizone.dk/httpd.www/easy_upload/upload.php on line 43

Warning: copy(/home/username/public_html/path/to/whichever/upload/directory/image001.gif): failed to open stream: No such file or directory in /customers/vizone.dk/vizone.dk/httpd.www/easy_upload/upload.phpon line 43

Warning: Cannot modify header information - headers already sent by (output started at /customers/vizone.dk/vizone.dk/httpd.www/easy_upload/upload.php:43) in/customers/vizone.dk/vizone.dk/httpd.www/easy_upload/upload.php on line 47


Nogen der ved hvad det betyder???
Avatar billede erikjacobsen Ekspert
01. marts 2004 - 22:00 #1
Du skal ikke bruge /home/username/public_..... som der måske har stået i en tutorial.
Du skal bruge din egen sti: /customers/vizone.dk/vizone.dk/httpd.www/....
Avatar billede razor Nybegynder
01. marts 2004 - 22:00 #2
Brug move_uploaded_file() istedet. Den omgår safemode restriktionerne:

http://razor.dk/php.tutorials.http-upload.php
Avatar billede vizone Nybegynder
01. marts 2004 - 22:14 #3
hmm har prøvet mig lidt frem.. fatter ikke så meget af php, og kan ikke få det til at virke... min phpfil ser sådan ud:

<?

/* Easy Uploader */

// set variables (SET THESE TO SUIT YOUR CIRCUMSTANCES):

// Upload directory (MUST HAVE TRAILING SLASH):
$uploaddir="/http://www.vizone.dk/easy_upload/";
// Your email
$youremail="dan@vizone.dk";
// Thank you page:
$thankspage="http://www.vizone.dk/easy_upload/tak.html";

// Set Upload thanks message for USER
$uptymessage="$realname, thank you for uploading the file $file_name\n\nWe will get back to you ASAP.";
// Set Upload thanks message for OWNER
$ownermessage="$realname [ $email ] has uploaded a file named $file_name\n\nCheck the upload directory.";
// Email message on or off ?  1 = on, 0 = off
$emailmessages = "1";


// start code (DO NOT CHANGE ANYTHING BELOW THIS LINE):

// Check for valid email address

$x = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);

if($x==0)

// if no valid email address entered, display no email message
{
echo "<div align=center>You <b>must</b> specify a valid email address for yourself. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {

// Check to see if valid file
if ($file == "none") {
// if no valid email address entered, display no file message
echo "<div align=center>You <b>must</b> specify a file to upload. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {
//directory to upload to
copy($file, $uploaddir.$file_name);
unlink($file);

//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}

?>
Avatar billede erikjacobsen Ekspert
01. marts 2004 - 22:36 #4
Øh, kan det passe at b-one har sat deres temp upload katalog til
/home/username/public_html/path/to/whichever/upload/directory/
Det lyder lidt vildt. Men ok - move_uploaded_file er næste skridt.
Avatar billede vizone Nybegynder
01. marts 2004 - 22:41 #5
mener du at jeg bare skal sætte denne kode ind:
<?php
move_uploaded_file($_FILES['userfile']['tmp_name'], "/sti/hvor/filen/skal/gemmes");
?>
Jeg ahr prøvet det hjælper ikke
Avatar billede erikjacobsen Ekspert
01. marts 2004 - 22:44 #6
Du har vel ikke sat præcis den linie ind, vel? Kan du vise os hvordan du
bruger move_uploaded_file ?
Avatar billede vizone Nybegynder
01. marts 2004 - 22:46 #7
<?php
move_uploaded_file($_FILES['userfile']['tmp_name'], "http://www.vizone.dk/easy_upload/up");
?>

Denne har jeg bare kopieret efter den sidste > i den anden fil
Avatar billede erikjacobsen Ekspert
01. marts 2004 - 22:55 #8
1) move_uploaded_file træder i stedet for din copy
2) Hedder dit file-felt i formen "file" eller "userfile"
3) Du skal angive en sti som andet argument til move_uploaded_file, ikke en url
Avatar billede vizone Nybegynder
01. marts 2004 - 23:09 #9
hmm nu har jeg rettet det så der står:

<?

/* Easy Uploader */

// set variables (SET THESE TO SUIT YOUR CIRCUMSTANCES):

// Upload directory (MUST HAVE TRAILING SLASH):
$uploaddir="/up/";
// Your email
$youremail="dan@vizone.dk";
// Thank you page:
$thankspage="http://www.vizone.dk/easy_upload/tak.html";

// Set Upload thanks message for USER
$uptymessage="$realname, thank you for uploading the file $file_name\n\nWe will get back to you ASAP.";
// Set Upload thanks message for OWNER
$ownermessage="$realname [ $email ] has uploaded a file named $file_name\n\nCheck the upload directory.";
// Email message on or off ?  1 = on, 0 = off
$emailmessages = "1";


// start code (DO NOT CHANGE ANYTHING BELOW THIS LINE):

// Check for valid email address

$x = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);

if($x==0)

// if no valid email address entered, display no email message
{
echo "<div align=center>You <b>must</b> specify a valid email address for yourself. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {

// Check to see if valid file
if ($file == "file") {
// if no valid email address entered, display no file message
echo "<div align=center>You <b>must</b> specify a file to upload. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {
//directory to upload to
move_uploaded_file($_FILES['userfile']['tmp_name'], "/up");

unlink($file);

//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}

?>

den fejlmelder ikke mere, men filen bliver heller ikke uploadet
Avatar billede erikjacobsen Ekspert
01. marts 2004 - 23:17 #10
Du har ikke lyst til at besvare 2) fra min sidste kommentar??
Avatar billede vizone Nybegynder
02. marts 2004 - 07:11 #11
men hvad oh hvor skal jeg rette?
Avatar billede vizone Nybegynder
02. marts 2004 - 10:20 #12
Det hedder file i html'en hvis det er det du mener...
Avatar billede erikjacobsen Ekspert
02. marts 2004 - 10:34 #13
Ok, det var rart at vide. Så skal du jo ikke bruge navnet userfile i

  move_uploaded_file($_FILES['userfile']['tmp_name'], "/up");

men

  move_uploaded_file($_FILES['file']['tmp_name'], "/up");

Du skal passe på med at skrive noget af uden at forstå hvad der står. Kataloget
"/up" må du heller ikke tilgå, får det du angiver der ligger i roden af hele
serveren, og der må du ikke pille. Du mener nok bare "up" - altså en relativ
angivelse i forhold til scriptet (check lige - jeg kan ikke overskue om den er
helt korrekt).
Avatar billede vizone Nybegynder
02. marts 2004 - 10:49 #14
hmm det vil sige at det skal se sådan her ud?:

<?

/* Easy Uploader */

// set variables (SET THESE TO SUIT YOUR CIRCUMSTANCES):

// Upload directory (MUST HAVE TRAILING SLASH):
$uploaddir="/http:/easy_upload/up/";
// Your email
$youremail="dan@vizone.dk";
// Thank you page:
$thankspage="http://www.vizone.dk/easy_upload/tak.html";

// Set Upload thanks message for USER
$uptymessage="$realname, thank you for uploading the file $file_name\n\nWe will get back to you ASAP.";
// Set Upload thanks message for OWNER
$ownermessage="$realname [ $email ] has uploaded a file named $file_name\n\nCheck the upload directory.";
// Email message on or off ?  1 = on, 0 = off
$emailmessages = "1";


// start code (DO NOT CHANGE ANYTHING BELOW THIS LINE):

// Check for valid email address

$x = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);

if($x==0)

// if no valid email address entered, display no email message
{
echo "<div align=center>You <b>must</b> specify a valid email address for yourself. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {

// Check to see if valid file
if ($file == "file") {
// if no valid email address entered, display no file message
echo "<div align=center>You <b>must</b> specify a file to upload. <a href=java script:history.back(-1)>Return to the form</a>.</div>";
}
else {
//directory to upload to
move_uploaded_file($_FILES['file']['tmp_name'], "easy_upload/up/");


unlink($file);

//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}

?>
Avatar billede vizone Nybegynder
02. marts 2004 - 10:50 #15
ups.. ved ikke lige hvorfor der står http:// på den øverste sti, det gør der ikke i php dok.
Avatar billede erikjacobsen Ekspert
02. marts 2004 - 10:52 #16
Hvis dit script ligger i easy_upload skal du ikke skrive den på i stien.
unlink($file); kan du roligt slette.
Avatar billede erikjacobsen Ekspert
02. marts 2004 - 10:53 #17
Mener du $thankspage ? Det skal ikke være en sti, men en url, så den er go' nok.
Avatar billede vizone Nybegynder
02. marts 2004 - 11:08 #18
men skrev du ikke at jeg ikke måtte bruge stien /up ???
i samme mappe som scriptet ligger en mappe der hedder up, og den skal de komme ned i
Avatar billede erikjacobsen Ekspert
02. marts 2004 - 11:22 #19
Kataloget "/up" må du heller ikke tilgå, får det du angiver der ligger i roden af hele serveren.

Det er en sti, ikke en url.
Avatar billede vizone Nybegynder
02. marts 2004 - 11:29 #20
katalog??? men hvis jeg skal slette /easy_upload/ så er der jo kun /up tilbage
Avatar billede erikjacobsen Ekspert
02. marts 2004 - 11:42 #21
Nej, der er "up" - ikke "/up"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester