הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה על CHMOD (https://hosts.co.il/forums/showthread.php?t=37528)

x-ray 07-01-07 12:22

שאלה על CHMOD
 
במערכת העלאת קבצים שבניתי יש בעיה בגישות,הקבצים המועלים מקבלים גישת 600 קבוע,הקוד נראה כך:

PHP קוד:

function move_file($path,$file){
        
$name=rand_name();
        
$ext=get_ext($file);
        
$file_name=$name.".".$ext;
        
$real_name=$_FILES[$file]['name'];
        
$size=$_FILES[$file]['size'];
        
$size/=1000000;
        
$time=time();
        
$ip=get_ip();
        if(!
move_uploaded_file($_FILES[$file]['tmp_name'], $path."/".$file_name)) echo"error";
        else{
        
        
mysql_query("INSERT INTO `upload` (fields) VALUES(VSLUES)");
        
$link=$path."/".$file_name;
        
$dir="/".$link;
        
chmod($dir0777); 

איפה הבעיה בקוד..?

mlnn 07-01-07 12:43

תנסה אולי
קוד:

$dir=$link;

x-ray 07-01-07 12:51

ציטוט:

נכתב במקור על ידי mlnn (פרסם 401917)
תנסה אולי
קוד:

$dir=$link;

זה לא הלך...ובשביל מה להכפיל משתנים אם כבר עושים ככה? ;)

דניאל 07-01-07 13:13

תבדוק הרשאות.. (רמז רמז: לא היוזר שלך הוא זה שמעלה, אלה apache).

hpman28 07-01-07 13:17

יכול להיות
 
תבדוק אם SAFE_MODE מופעל. זה תמיד עושה בעיות בהעלאת קבצים.

אני אוהב להתחבר עם PHP אל ה-FTP ולעלות את הקבצים, אפילו שהשרת FTP הוא בעצם אותו השרת.

ככה אפשר להיות בטוחים שלא יהיה איזה בעיית הרשאה וCHMOD תמיד יעבוד שם חלק.


מצד שני, תבדוק את ההרשאה של הספרייה אליה אתה מעלה קבצים. תנסה למחוק את התיקייה וליצור אותה מחדש דרך FTP

Tomer 07-01-07 17:13

או לחילופין: תעלה קבצים ישירות ל MySQL (רמז: BLOB)

RS324 07-01-07 17:13

שום דבר ממה שאמרתם אינו נכון, הוא צריך לתת לקובץ 777 בכל מקרה

SPD - מה שאמרת על היוזר של ה APACHE תקף רק לגבי קבצי PHP וכד' במצב SAFE_MODE
וגם אז הוא אמור לעשות לקובץ 777 אבל הוא לא היה נותן לו לראות אותו

אני מאמין שמקור הבעיה היא בשם הקובץ אותו אתה מנסה לתת לו הרשאות

אז בבקשה תעשה ECHO ל $link ותדביק פה מה שזה נותן לך.

דניאל 07-01-07 17:19

ציטוט:

נכתב במקור על ידי RS324 (פרסם 402070)
SPD - מה שאמרת על היוזר של ה APACHE תקף רק לגבי קבצי PHP וכד' במצב SAFE_MODE
וגם אז הוא אמור לעשות לקובץ 777 אבל הוא לא היה נותן לו לראות אותו

וואלה?
יודע מה? אל תאמין לי..תעשה בדיקה אצלך על השרת,
תעלה תמונה דרך "מנהל קבצים" כלשהוא...ותראה עם איזו owner עולה התמונה..

x-ray 07-01-07 17:24

רותם שיניתי את זה לזה:
PHP קוד:

chmod("uploads/{$file_name}"0777); 

ועדיין זה לא עובד.

PHP קוד:

$file_name 

מכיל את השם הנכון,את זה אני יודע לפי הערך שנכנס למסד.

RS324 07-01-07 17:53

לפעמים CHMOD מתעקש לא לקבל את הנתיב לכן המלצה שלי מניסיון...
תנסה לעשות
$dir = getcwd()
בשביל לקבל את הנתיב האמיתי בו אתה נמצא
ואז תשחק עם זה בשביל לקבל את המיקום האמיתי של הקובץ.

psycho 07-01-07 18:03

דניאל, אז נכון שקבצים שעולים ה OWNER הוא ה apache
אבל הOWNER של הקובץ PHP גם כן הוא apache
לכן ה CHMOD אמור לעבוד.

תנסה לעבוד עם מיקום פיזי של הקובץ ולעבוד יותר מסודר.
אתה יודע איפה למצוא אותי אם אתה לא מסתדר

דניאל 07-01-07 18:05

ציטוט:

נכתב במקור על ידי psycho (פרסם 402108)
דניאל, אז נכון שקבצים שעולים ה OWNER הוא ה apache
אבל הOWNER של הקובץ PHP גם כן הוא apache
לכן ה CHMOD אמור לעבוד.

תנסה לעבוד עם מיקום פיזי של הקובץ ולעבוד יותר מסודר.
אתה יודע איפה למצוא אותי אם אתה לא מסתדר

נכון,
אך לא שם המגבלה,
המגבלה היא בowner של הקובץ שממנו הוא מריץ את הchmod.
(אם שניהם יהיו בעלי אותו owner..לא תהיה כל בעיה).


כל הזמנים הם GMT +2. הזמן כעת הוא 08:25.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ