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

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

meshuga 23-08-06 13:01

ציטוט:

נכתב במקור על ידי amirs_5
יש לי בעיה אם זה :
אני רשמתי
PHP קוד:

if(!eregi("/^[a-zA-Z0-9]+$/"$file)) $error "שם הקובץ חייב באנגלית בלבד!"

אבל לשם הקובץ שלי יש רווח ואני רוצה לאפשר רווחים ומקף תחתון.
איך אני מסדר את זה ?!

ועוד משהו ביטויים רוגליים בזמן האחרון התחילו לעניין אותי כי הם ממש שימושיים ורציתי אולי מקור ללמוד ממנו את זה ..

תודה לעוזרים :)

א.תנסה:
PHP קוד:

if(!eregi("/^[a-zA-Z0-9 _]+$/"$file)) $error "שם הקובץ חייב באנגלית בלבד!"

ב.יש מדריך טוב בeitan.
http://php.eitan.ac.il/main.php?id=00171

amirs_5 23-08-06 13:15

אחי רשמתי ככה :
PHP קוד:

if(!eregi("/^[a-zA-Z0-9 _\.]+$/"$file)) $error "שם הקובץ יכול להכיל אך ורק מספרים קו תחתון ואותיות לועזיות"

והוא הביא לי את השגיאה.
זה שם הקובץ המדוייק.
קוד:

$file = "my humps.mp3";
ותודה על המדריך , אני יקרא אותו עוד מאט.

meshuga 23-08-06 13:20

לא יודע מה הבעיה עם eregi, תשתמש בpreg_match שם זה כן עבד..
ובגלל שיש לך גם A-Z וגם a-z זה יעשה אותו תפקוד.

amirs_5 23-08-06 13:29

רשמתי ככה :

PHP קוד:

if(!preg_match("/^[a-zA-Z0-9 _\.]+$/"$file)) $error "שם הקובץ יכול להכיל אך ורק מספרים קו תחתון ואותיות לועזיות"

ועדיין לא עובד הוא מביא שגיאה יש פה אולי טעות ?!

meshuga 23-08-06 13:48

ציטוט:

נכתב במקור על ידי amirs_5
רשמתי ככה :

PHP קוד:

if(!preg_match("/^[a-zA-Z0-9 _\.]+$/"$file)) $error "שם הקובץ יכול להכיל אך ורק מספרים קו תחתון ואותיות לועזיות"

ועדיין לא עובד הוא מביא שגיאה יש פה אולי טעות ?!

בטוח?
http://www.sbsil.net
קוד:
PHP קוד:

<?
$file 
"my humps.mp3";
if(!
preg_match("/^[a-zA-Z0-9 _\.]+$/"$file))
    echo 
"שם הקובץ יכול להכיל אך ורק מספרים קו תחתון ואותיות לועזיות"
else
    echo 
"טוב";
?>


amirs_5 23-08-06 14:56

כן צודק בגללי שעשעיתי בטעות קו כזה (-) במקום קו תחתון (_)

טוב עכשיו , זה עובד אבל יש לי עוד בעיה בקשר למערכת העלאת שירים הזאתי שאני בונה , זאת הראשונה :)
אממ זה הקוד שרשמתי ..:

PHP קוד:

    $error "";

           if(
$_FILES['file']['name']==''$error .= "לא נבחר קובץ.";

                 
$file $_FILES['file']['name'];

                   list(
$name,$ext) = explode(".",$file);

                   if ((
$ext != "mp3") && ($ext != "MP3") && ($ext != "wma") && ($ext != "WMA"))
                   
$error "לא ניתן להעלות את הקובץ&nbsp;".$name."&nbsp;הסיומת&nbsp;".$ext."&nbsp;אינה חוקית";

            if(
$_FILES['file']['size'] > (1048576*5)) $error .= "הינתן להעלות קובץ עד 5 מגה בלבד";

            if(!
preg_match("/^[a-zA-Z0-9 _\.]+$/"$file)) $error "שם הקובץ יכול להכיל אך ורק מספרים קו תחתון ואותיות לועזיות";  

            
$qfile mysql_query("SELECT * FROM `mysongs_files` WHERE `mid` = '{$this->user['id']}' ORDER BY time DESC LIMIT 1"); 
            if(
$file mysql_fetch_array($qfile)) {
            
$joined $file['time'];
                if(
$joined > ($time-60*60*3)) $error .= "בין כל פרסום קובץ , יש לחכות 3 שעות.";
            }

                if(
$_FILES['file']['error']!=0$error .= "אירעה שגיאה בהעלאת הקובץ.";

        if(
$error == "") {

                
$time time(); 
                
$prefix$time."-";

            if(
move_uploaded_file($_FILES['file']['tmp_name'],$dir.$prefix.$file)) {
            echo 
'הקובץ הועלה בהצלחה!';
            } else {
            echo 
'שגיאה בהעברת הקובץ, אנא נסה שנית';
            exit;
            }

                    
$mid $this->user['id'];
                    
$file $prefix.$file
                    
$name $_POST['name'];
                    
$janer $_POST['janer'];
                    
$words $_POST['words'];
                    
$notes $_POST['notes'];

            
mysql_query("INSERT INTO `mysongs_files` ( `id` , `mid` , `file` , `name` , `janer` , `words` , `notes` , `time` ) VALUES ('', '$mid', '$file', '$name', '$janer', '$words', '$notes', '$time')") or die("שגיאה, אנא נסה שנית.");
            
mysql_query("UPDATE mysongs_members SET works=works+1 WHERE id='$mid'");
            echo 
"הקובץ הועלה בהצלחה";

        } else echo 
$error

עכשיו שאני מעלה קבצים בגודל של מגה זה מעלה,
שאני מעלה קובץ של 4.70 מגה הוא לא מעלה, ומביא לי את השגיאה הבאה :
"אירעה שגיאה בהעלאת הקובץ."
יש למישהו מושג למה ?
משהו לאא טוב פה אני שובר תראש כבר כמה ימים על זה ..:S

meshuga 23-08-06 15:02

א.שמע, בקשר לשאלה שלך עוד לא הסתכלתי, אבל קודם כל, המציאת סיומת שלך ממש לא טובה..אם יש לי קובץ שקוראים לו asd.asd.mp3 ?...

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

amirs_5 23-08-06 15:10

ציטוט:

שמע, בקשר לשאלה שלך עוד לא הסתכלתי, אבל קודם כל, המציאת סיומת שלך ממש לא טובה..אם יש לי קובץ שקוראים לו asd.asd.mp3 ?...
צודק,
אבל הוא יכתוב סיומת asd.mp3 לא טובה.
בכל מקרה אני יחפש דרך טובה עוד מאט מה שחשוב לי עכשיו שהוא יעלה לי את הקובץ.
ולא קובץ כן קובץ לא.

ציטוט:

ב. לא כדאי לך להתעסק עם העלאת שירים....יכולים להתחיל להעלות שם דברים עם זכויות יוצרים ומפעיל האתר הוא זה שיחטוף.
זאת בשביל יוצרים לא בשביל קבצים עם זכויות , אני יעשה שלא יוצגו שירים עד שמנהל לא מאשר אותם.

בקשר לבעיה שלי, אתה יודע אולי למה?
כי כמו שאמרתי , הוא מעלה לי קובץ של מגה וחצי , וקובץ אחר של 4.70 הוא לא מעלה...

meshuga 23-08-06 15:18

ציטוט:

נכתב במקור על ידי amirs_5
צודק,
אבל הוא יכתוב סיומת asd.mp3 לא טובה.
בכל מקרה אני יחפש דרך טובה עוד מאט מה שחשוב לי עכשיו שהוא יעלה לי את הקובץ.
ולא קובץ כן קובץ לא.


זאת בשביל יוצרים לא בשביל קבצים עם זכויות , אני יעשה שלא יוצגו שירים עד שמנהל לא מאשר אותם.

בקשר לבעיה שלי, אתה יודע אולי למה?
כי כמו שאמרתי , הוא מעלה לי קובץ של מגה וחצי , וקובץ אחר של 4.70 הוא לא מעלה...

לראשונה ביקשת קיבלת ;)
PHP קוד:

$ext=substr(strrchr($name"."), 1); 

לשניה תן לי לחפש...

RS324 23-08-06 15:25

אם תעשה PRINT_R($_POST)

אני כמעט בטוח שתמצא משהו שנקרא
MAXFILESIZE


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

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