[PHP]Vage fout met uploaden via form

Pagina: 1
Acties:

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Hey,

Ik heb op scool informatica en ben daar bezig met een HTML site (niveau ligt neit zo hoog) maar omdat ik dat nogal saai vind wil ik er wat PHP doorheen gooien. Nou is het zo dat op school geen webserver draait en port 21 dicht zit zodat ik als ik daar aan het werk ben niks kan uploaden naar m'n server.

Ik dacht dus slim te zijn dus een simpel formpje op m'n server te zetten waarmee ik files kan uploaden. Maar dat lukt dus niet goed.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?
 

if ($submit)
{
    if($pwd== '******')
    {

if (is_uploaded_file($userfile)) 
    {    
    copy($userfile, "www//upload//pictures//") or die("<br>Foutje");
    echo "gelukt $userfile_name";
    exit;
    } 
    else 
        {    
        echo "Oops foutje: filename '$userfile' '$userfile_name ' .";
        }
    }
    else
    {
        echo "jammer joh, fout password";
    }

}
else
{
echo "
    <FORM ENCTYPE=\"multipart/form-data\" ACTION=\"$php_self\" METHOD=POST>

Send this file: <INPUT NAME=\"userfile\" TYPE=\"file\">
<INPUT TYPE=password name=\"pwd\">
<INPUT TYPE=\"submit\" name=submit VALUE=\"Uploooduuh!\">
</FORM>";
}

    
?>

Hij geeft de volgende foutmelding
Warning: Unable to create 'www//upload//pictures//': No such file or directory in /sites/dutchgaming.net/www/uploadert.php on line 10
Ok, er is dus iets fout met het path wat ik opgeef. Maar het rare is dat iemand ooit voor m'n site op dezelfde server een script geschreven heeft wat ook dingen upload maar dan via FTP. Hierin vond ik de volgende regel
ftp_chdir($up, 'www//upload//pictures//');
En dat script werkt wel, mijn vraag is nu: waarom werkt het bij de onderste wel en bij de boveneste niet:?

  • a3konijn
  • Registratie: Oktober 2000
  • Laatst online: 26-08 19:21
Misschien omdat de directory niet bestaat op je server...

  • SiErRa
  • Registratie: Februari 2000
  • Laatst online: 09:56
Volgens mij moet je geen dubbele slashes gebruiken.
en die dir moet trouwens ook schrijfrechten voor de user die apache draait hebben. (meestal nobody of www-data)

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Die dubbele slashes staan dus ook in een ander script waarmee je wel goed files kan uploaden, maar dat script werkt dus met de ftp functies wat ik niet moet hebben. De dir bestaat dus wel en is chmod 777

Ik heb het btw ook al met enkele slashes geprobeerd

  • SiErRa
  • Registratie: Februari 2000
  • Laatst online: 09:56
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
<html>
<head>
 <title>upload scrippie</title>
</head>
<body>
<? if(!$submit) { ?>
<form ENCTYPE="multipart/form-data" method="post">
  <input type="file" name="source" size="10"><input type="text" name="description" size="10"><br>
  <input type="submit" class="search" name="submit" value="Uploaden die hap">
</form>
<?
   }
   else {
     $file = "/www/upload/"; //dir waar het moet komen
     $filename = basename($source_name); //het terugvinden van de echte naam van de file
     $file .= $filename; //die aan de dir plakken voor een volledig path

     if($source=="none" || !copy($source , $file)) {
       echo "Upload mislukt";
     }
     else {
       echo "Upload gelukt";
     }
   } 
?>
</body>
</html>
?>

dit werkt iig.. :)

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 15-09 19:23

WoutF

Hoofdredacteur
Topicstarter
Op maandag 15 oktober 2001 23:25 schreef SiErRa het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
<html>
<head>
 <title>upload scrippie</title>
</head>
<body>
<? if(!$submit) { ?>
<form ENCTYPE="multipart/form-data" method="post">
  <input type="file" name="source" size="10"><input type="text" name="description" size="10"><br>
  <input type="submit" class="search" name="submit" value="Uploaden die hap">
</form>
<?
   }
   else {
     $file = "/www/upload/"; //dir waar het moet komen
     $filename = basename($source_name); //het terugvinden van de echte naam van de file
     $file .= $filename; //die aan de dir plakken voor een volledig path

     if($source=="none" || !copy($source , $file)) {
       echo "Upload mislukt";
     }
     else {
       echo "Upload gelukt";
     }
   } 
?>
</body>
</html>
?>

dit werkt iig.. :)
Hier dus niet ;(
Ik denk dat het met de maffe directory structuur van m'n host te maken heeft, want als ik inlog op de ftp zie ik

.
..
forum
www

maar als php een foutmelding geeft zit dat weer in

/sites/dutchgaming/net/web/www/blaat.php

en als ik et Editplus wat upload gaat dat naar

/dgaming/web/www

* WoutF snapt het niet meer :?

  • flexje
  • Registratie: September 2001
  • Laatst online: 16-09 17:39

flexje

got-father

gooi die hele directory lijn erin

"Try not to become a man of success but rather to become a man of value..."

Pagina: 1