לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 04-08-2006, 16:22
  Rs3k Rs3k אינו מחובר  
 
חבר מתאריך: 17.05.04
הודעות: 1,454
שלח הודעה דרך ICQ אל Rs3k
Shoutbox - בעיה בלולאת foreach...

בניתי shoutbox, מאוד פשוט - משום מה היה לי יום דפוק שבניתי אותו :|
אז דבר ראשון אני רוצה להגיד תודה לדורון על שעזר לי בשעתי הקשה P:

בכל מקרה הנה הקוד :
קוד PHP:
<?
/* ShoutBox - rs3k - free for use. */
class shoutbox{
    protected $post;
    protected $file;
    function __construct($msg,$name){
        if(!$name)
            $name = 'Anonnymous';
        if(!$msg)
            die('Messege text is required.');
        $this->file = 'doc.txt';
        $this->post = $this->smilies(nl2br($msg.';'.$name));
    }
    function smilies($var){
        $bbcode = Array(':)',':(',':P',';)',':|',':O');
        $imgs = Array('<img src="images/smile.gif" />','<img src="images/sad.gif" />','<img src="images/kidding.gif" />','<img src="images/wink.gif" />','<img src="images/no-expression.gif" />','<img src="images/oh-my.gif" />');
        return str_replace($bbcode,$imgs,$var);
    }
    function post(){
        if(!is_readable($this->file) || !is_writable($this->file))
            die('We cannot post your message at the momment you may try later.');
        if(!file_get_contents($this->file))
            return file_put_contents($this->file,$this->post);
        return file_put_contents($this->file, file_get_contents($this->file). "\n<br />" .$this->post);
    }
    function output(){
        $read = file_get_contents($this->file);
        $read = explode('\n',$read);
        foreach($read as $a) {
            $x = explode(";",$a);
            print $x[0].' : '.$x[1];
        }
    }
    function __destruct(){
        unset($this->post);
        unset($this->file);
    }
}
$shout = new shoutbox($_POST['msg'],$_POST['name']);
$shout -> post();
$shout -> output();
    ?>


הבעיה היא שבפונקציה post יש את הלולאת foreach - ששמה על כל שורה אני "מפוצץ" את השורה - עם המפריד ';'..

עכשיו מה שזה אמור לעשות שכל פעם x יוגדר מחדש עם מערך של שני החלקים של ההודעה - מצד שמאל ל ';' ומצד ימין - כמובן שזה לא עובד :|

לדעתי הבעיה היא שזה לא כל פעם מגדיר מחדש את X אלא ממשיך להגדיר באינדקסים אחרים..
זאת אומרת החלק הראשון בשורה השניה תהיה [2]x$ והחלק השני בשורה השניה [3]x$ ככה שלדעתי זה לא מגדיר את זה כל פעם מחדש...
אני לא מוצא את הסיבה לכך - אני מקווה לעזרה ממכם לגבי זה

תודה מראש לכל העונים.
_____________________________________
EVERYTHING SHOULD BE MADE AS SIMPLE AS POSSIBLE, BUT NOT ONE BIT SIMPLER
ALBERT EINSTEIN

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:36

הדף נוצר ב 0.03 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר