problem s uploadom suboru

Programovacie jazyky, rady, poradňa...
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

problem s uploadom suboru

Príspevok od používateľa neppo »

pri uploadnuti mi vypise toto

Kód: Vybrať všetko

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 99 is not allowed to access / owned by uid 0 in /**/*****/*/*******/stred.php on line 25
a tu je kod

Kód: Vybrať všetko

<?php

$suborik = $_FILES['subor']['name'];
$nick = $name;
$suborik_check = filesize($_FILES['subor']['tmp_name']);
$suborik1 = strtolower($suborik);
$konco = substr($suborik1, -3);

$dir = $nick."/";
$dir .=$_FILES['subor']['name'];
$dir1 = $dir;
$dir1 .= $suborik1;


if( is_uploaded_file($_FILES['subor']['tmp_name']) && ($_POST['upload'] == "ok") )
	{

	if( move_uploaded_file($_FILES['subor']['tmp_name'], $dir) )
		{

		if (($suborik_check < 10000) && ($konco == "pas")){

                include "conn.php";

                $link = mysql_connect ("server", "login", "pass") or die ("nepodarilo sa spojit s databazou");
                $db = mysql_select_db ("databaza", $link) or die ("fucking databaza");
                $sql = "INSERT INTO $nick (`id`, $nick) VALUES (NULL, '$suborik');";
                mysql_query ($sql, $link) or die ("SQL error");
                mysql_close();
		} else {

                unlink ($dir1);
}

		}

}


?>
je to zlozite :((( premenna $name je vlastne REQUEST['name'] z url

Kód: Vybrať všetko

.../index.php?name=neppo
ten mysql prikaz som tam dal preto lebo neviem ako urobit vypis suborov v adresary
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Zapisuješ do adresára, ktorého vlastník je root a nie 99 (neviem ako sa volá). Musíš nastaviť adresár, do ktorého máš právo zapisovať (a ktorý vlastní užívateľ 99).
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

nemaju byt prava nahodou nastavene na 777 ???
btw vrchny post som editoval na konci
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Problém je, že je zapnutý safe_mode (to je vlastne dobré). Pri safe_mode sa kontroluje, či vlastík skriptu má právo zapisovať tam kam chce (musí ten adresár vlastniť).
The script whose uid is 99 is not allowed to access / owned by uid 0
Skript vlastní užívateľ (či skôr spúšťa) s uid 99 (asi Apache) a adresár vlastní root (uid 0). V tom skripte musíš nastaviť správny adresár (teda :
$dir = "ADRESAR_KDE_MOZEM_ZAPISOVAT_A_KTORY_PATRI_UZIVATELOVI_99/".$nick."/"; )

PS: Zápis alebo čítanie koreňového adresára (/) ti asi nepovolia nikde.

// chrono: V tom skripte používaš nick a nie name
// chrono: na výpis súborov v adresári môžeš použiť funkciu scandir
// chrono: alebo kombináciu opendir+readdir+closedir
VIP721
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 242
Registrovaný: 19 jún 2005, 19:42
Kontaktovať používateľa:

Príspevok od používateľa VIP721 »

mam namietku :D, co ked je chyba v tom ze nema dobre nakonfigurovane php? zeby mal nahodou upload_tmp_dir no value. Lebo aj vtedy pise tu chybu. Hladam na to riesenie bez toho aby som menil konfig ku ktoremu nemam pristup.
Napísať odpoveď