upload script php

Pagina: 1
Acties:

  • AEZscf
  • Registratie: September 2001
  • Laatst online: 01-09 07:52
Ik heb dus een upload script die een foto kan uploaden naar mijn webspace op endoria.net. Hij maakt eerst een directory aan in de directory foto die chmod 777 heeft. Vervolgens geeft hij de directory ook een chmod van 777.

Vervolgens gaf ik het commando:
copy_file("$file1", "$url/profiel/foto/$time/$file1_name");
Deze geeft de fout melding:
Warning: open_basedir restriction in effect. File is in wrong directory in /home/endoria/azanting/public_html/profiel/upload.php on line 15

Ook heb ik het geprobeerd met het commando:
move_uploaded_file("$file1", "$url/profiel/foto/$time/$file1_name");
Maar deze gaf de melding:
Warning: Unable to create '/foto/1031961098/foto.jpg': No such file or directory in /home/endoria/azanting/public_html/profiel/upload.php on line 15

Warning: Unable to move '/tmp/phpb6gPg9' to '/foto/1031961098/foto.jpg' in /home/endoria/*******/public_html/profiel/upload.php on line 15

Hoe komt dit nu dan, het lijkt er haast op dat de chmod nog niet aangepast is, maar als ik kijk met mijn ftp zie ik wel een chmod van 777. Duurt dit even ofzow voordat hij aangepast word? Heb echt geen idee meer. Kan ook alle fot's wel in 1 directory gooien maar dan wil ik ze een id nr geven. Weet iemand hoe ik de naam van een file kan veranderen en de extentie gewoon hetzelfde blijft?

Zal ook voor de duidelijkheid het script even neerzetten

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
<form name="form1" method="post" action="upload.php?id=<? print "$id" ?>" enctype="multipart/form-data">
  <p>
    <input type="file" name="file1">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<?php
include 'config.php';
$time = time();
if ($file1_name != "") {
mkdir ("foto/$time", 0755);
chmod ("foto/$time", 0777);
copy("$file1", "/foto/$time/$file1_name");
$pic = "$url/profiel/foto/".$time."/$file1_name";
}

if ($Submit) {

// Maak SQL query om toe te voegen (DELETE)
$sql = "UPDATE instantsite SET time='$time', pic='$pic', foto='ja' WHERE id = '$id'";

// Voer SQL uit
mysql_query($sql) or die("Helaas er is iets misgegaan, probeer het nog eens...");

// Geef bevestiging
echo "<br>De foto is aan je profiel toegevoegd";
echo "<br><a href=aanpassen.php>Klik hier</a> om je profiel verder aan te passen.";
echo "<br>Of <a href=profiel.php?id=$id>klik hier</a> om je profiel te bekijken.";

echo "[img]$pic>";
}
?[/img]

  • MikeN
  • Registratie: April 2001
  • Laatst online: 22:31
Warning: Unable to create '/foto/1031961098/foto.jpg': No such file or directory
Blijkbaar is dit:
"$url/profiel/foto/$time/$file1_name"
dus niet helemaal jofel.

  • AEZscf
  • Registratie: September 2001
  • Laatst online: 01-09 07:52
Nee hoor, dat klopt wel, ook als ik de locatie voluit gebruik geeft hij dezelfde foutmelding.
Ook kan ik dat ook nog controleren omdat hij het ook in de database pleurt. Dus daar ligt het niet aan

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 18:16
heb je die dir foto wel de juiste rechten gegeven?
chmod 777 schijnt niet altijd te werken, preciese rechten moet je geven volgens mij.

  • AEZscf
  • Registratie: September 2001
  • Laatst online: 01-09 07:52
Ja ook wel, ook chmod 777. Anders kon hij die directory's ook niet aanmaken d8 ik

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

PHP:
1
2
copy("$file1", "/foto/$time/$file1_name"); 
$pic = "$url/profiel/foto/".$time."/$file1_name";


Klopt die / voor foto in het copy-statement wel??!??! Of bestaat er een rootdir genaamd foto :?
Waar is $url gezet?

Used to be Down Under... Foto gallery


  • MikeN
  • Registratie: April 2001
  • Laatst online: 22:31
Voer dan even de volledige locatie in, post het script hier en de foutmelding hier.

  • AEZscf
  • Registratie: September 2001
  • Laatst online: 01-09 07:52
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
<form name="form1" method="post" action="upload.php?id=<? print "$id" ?>" enctype="multipart/form-data">
  <p>
    <input type="file" name="file1">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<?php
include 'config.php';
$time = time();
if ($file1_name != "") {
mkdir ("foto/$time", 0755);
chmod ("foto/$time", 0777);
copy("$file1", "http://arnold.endoria.net/profiel/foto/$time/$file1_name");
$pic = "http://arnold.endoria.net/profiel/foto/".$time."/$file1_name";
}

if ($Submit) {

// Maak SQL query om toe te voegen (DELETE)
$sql = "UPDATE instantsite SET time='$time', pic='$pic', foto='ja' WHERE id = '$id'";

// Voer SQL uit
mysql_query($sql) or die("Helaas er is iets misgegaan, probeer het nog eens...");

// Geef bevestiging
echo "<br>De foto is aan je profiel toegevoegd";
echo "<br><a href=aanpassen.php>Klik hier</a> om je profiel verder aan te passen.";
echo "<br>Of <a href=profiel.php?id=$id>klik hier</a> om je profiel te bekijken.";

echo "[img]$pic>";
}
?[/img]


foutmeldingen zelfde als bij jet eerste bericht

  • MikeN
  • Registratie: April 2001
  • Laatst online: 22:31
Je moet geen http:// als adres gebruikt :+

Je moet het adres gebruiken op het filesystem van je webserver, dus /home/endoria/azanting/public_html/profiel/foto etc.

Verder moet je wel even move_uploaded_file gebruiken.

  • AEZscf
  • Registratie: September 2001
  • Laatst online: 01-09 07:52
He thx, that did the job. Hmm zo moeilijk was dat nog niet ;)
Pagina: 1