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

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

miniature 30-01-06 15:42

ציטוט:

נכתב במקור על ידי ViPeRt
למה לא להשתמש במסד נתונים?
זה יעשה לך את החיים הרבה יותר קלים...
בעניין במחיקה והערכיה עוד יותר...

ממ.. הבעיה היא שאני לא יודע להשתמש ב SQL.

meshuga 30-01-06 16:09

ציטוט:

נכתב במקור על ידי miniature
ממ.. הבעיה היא שאני לא יודע להשתמש ב SQL.

אם אתה לא יודע, מומלץ ללמוד.....זה אפילו יותר קל מקבצים ;)

miniature 30-01-06 20:48

טוב תראה, פתרתי כמעט את כל הבעיה.
זוהי התצוגה: (את קובץ הכתבות תוכל לראות בכתובת: http://royalgames.3dfaculty.com/kata...2/articles.txt)
http://royalgames.3dfaculty.com/kata...vot2/index.php
הבעיה היחידה שנשארה היא שאפשרויות העריכה והמחיקה של id 0 מובילות לאפשרויות העריכה והמחיקה של ה id האחרון.
כך גם id 1 זה מוביל ל id אחד לפני האחרון, id 2 מוביל ל id שניים לפני האחרון, וכו'..

meshuga 30-01-06 20:52

ציטוט:

נכתב במקור על ידי miniature
טוב תראה, פתרתי כמעט את כל הבעיה.
זוהי התצוגה: (את קובץ הכתבות תוכל לראות בכתובת: http://royalgames.3dfaculty.com/kata...2/articles.txt)
http://royalgames.3dfaculty.com/kata...vot2/index.php
הבעיה היחידה שנשארה היא שאפשרויות העריכה והמחיקה של id 0 מובילות לאפשרויות העריכה והמחיקה של ה id האחרון.
כך גם id 1 זה מוביל ל id אחד לפני האחרון, id 2 מוביל ל id שניים לפני האחרון, וכו'..

איזה קוד שמת?....
בטוח לא את שלי כי שלי היה עובד לך.....או שלא הבנת נכון איך להשתמש שם בIDים

ד"א
תאריכים תמיד הכי טוב לשמור בתור linuxtime (השניות) כי אז אתה יכול לקחת מה שאתה רוצה כמה שאתה רוצה (אם בא לך שעה יש שעה אם שניה וכו' וכו').....

miniature 30-01-06 21:16

ציטוט:

נכתב במקור על ידי meshuga
איזה קוד שמת?....
בטוח לא את שלי כי שלי היה עובד לך.....או שלא הבנת נכון איך להשתמש שם בIDים

ד"א
תאריכים תמיד הכי טוב לשמור בתור linuxtime (השניות) כי אז אתה יכול לקחת מה שאתה רוצה כמה שאתה רוצה (אם בא לך שעה יש שעה אם שניה וכו' וכו').....

זה הקוד:
PHP קוד:

<?php
if($action == "edit" && isset($HTTP_POST_VARS['password'])) {
    
//obviously you should change this password on the next line
    
if($HTTP_POST_VARS['password'] == "tbftbf") {
        
//First let's recompile that line with the pipe symbols so we can reinsert it
        
$line $HTTP_POST_VARS['date'] . "|" $HTTP_POST_VARS['name'];
        
$line .= "|" $HTTP_POST_VARS['articles'];
        
$line str_replace("\r\n","<BR>",$line);
        
$line .= "\r\n";
        
$data file('articles.txt');
        
$data[$id] = $line;
        
//the next line makes sure the $data array starts at the beginning
        
reset($data);
        
//now we open the file with mode 'w' which truncates the file
        
$fp fopen('articles.txt','w');
        foreach(
$data as $element) {
            
fwrite($fp$element);
        }
        
fclose($fp);
        echo 
"<div class=\"content\"><b>הכתבה נערכה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div><BR><BR>\n";
        exit;
    } else {
$data file('articles.txt');
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);
        echo 
"<div class=\"content\"><b>סיסמה שגויה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">חזור</a></div><BR><BR>\n";
        exit;
    }
    }
}
if(
$action == "edit") {
    
$data file('articles.txt');
    
$element trim($data[$id]);
    
$pieces explode("|"$element);
    
//the next line is to reverse the process of turning the end of lines into breaking returns
    
$articles str_replace("<BR>","\r\n",$pieces[2]);
    echo 
"<div id=\"content\"><h2><u>ערוך כתבה</u></h2></div><BR>\n";
    echo 
"<div class=\"content\"><FORM ACTION=\"$PHP_SELF?action=edit\" METHOD=\"POST\" NAME=\"editform\">\n";
    echo 
"שם:<BR>\n";
    echo 
"<INPUT TYPE=\"text\" SIZE=\"30\" NAME=\"name\" value=\"".$pieces[1]."\"><BR>\n";
    echo 
"תוכן הכתבה:<BR>\n";
    echo 
"<TEXTAREA NAME=\"articles\" COLS=\"40\" ROWS=\"5\">".$articles."</TEXTAREA><BR><BR>\n";
    echo 
"סיסמה:<BR>\n";
    echo 
"<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"date\" VALUE=\"".$pieces[0]."\">\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\" שמור \"><BR>\n";
    echo 
"</FORM></div>\n";
    exit;
}
if(
$action == "delete" && isset($HTTP_POST_VARS['password'])) {
    
//obviously you should change this password on the next line
    
if($HTTP_POST_VARS['password'] == "tbftbf") {
        
$data file('articles.txt');
        
//this next line will remove the single articles item from the array
        
array_splice($data,$id,1);
        
//now we open the file with mode 'w' which truncates the file
        
$fp fopen('articles.txt','w');
        foreach(
$data as $element) {
            
fwrite($fp$element);
        }
        
fclose($fp);    
        echo 
"<div class=\"content\"><b>הכתבה נמחקה</b>\n";    
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div><BR><BR>\n";
        exit;
    } else {
$data file('articles.txt');
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);
        echo 
"<div class=\"content\"><b>סיסמה שגויה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">חזור</a></div><BR><BR>\n";
        exit;
    }
    }
}
if(
$action == "delete") {
    echo 
"<div id=\"content\"><h2><u>מחיקת כתבה</u></h2></div>\n";
    
$data file('articles.txt');
    
$element trim($data[$id]);
    
$pieces explode("|"$element);
    echo 
"<div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n";
    echo 
"<BR><BR>\n";
    echo 
"אם אתה בטוח שברצונך למחוק את הכתבה, הקלד את הסיסמה ומחק:<BR><BR>\n";
    echo 
"<FORM ACTION=\"$PHP_SELF?action=delete\" METHOD=\"POST\" NAME=\"deleteform\">\n";
    echo 
"סיסמה:<BR>\n";
    echo 
"<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\" מחק \"><BR>\n";
    echo 
"</FORM></div>\n";
    exit;
}

echo 
"<div id=\"content\"><h2><u>כתבות נוכחיות</u></h2></div>\n";
$data file('articles.txt');
$data array_reverse($data);
foreach(
$data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);

    echo 
"<BR><div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n";
    echo 
"&nbsp;(<a href=\"$PHP_SELF?action=delete&id=$key\">מחק</a>\n";
    echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">ערוך</a>)\n";
    echo 
"<BR><HR><BR><BR></div>\n";
}
?>

ובקשר לזמן, שמרתי (בהוספת כתבה) ככה:
PHP קוד:

$line date("d.m.y"


meshuga 30-01-06 21:28

ציטוט:

נכתב במקור על ידי miniature
זה הקוד:
PHP קוד:

<?php
if($action == "edit" && isset($HTTP_POST_VARS['password'])) {
    
//obviously you should change this password on the next line
    
if($HTTP_POST_VARS['password'] == "tbftbf") {
        
//First let's recompile that line with the pipe symbols so we can reinsert it
        
$line $HTTP_POST_VARS['date'] . "|" $HTTP_POST_VARS['name'];
        
$line .= "|" $HTTP_POST_VARS['articles'];
        
$line str_replace("\r\n","<BR>",$line);
        
$line .= "\r\n";
        
$data file('articles.txt');
        
$data[$id] = $line;
        
//the next line makes sure the $data array starts at the beginning
        
reset($data);
        
//now we open the file with mode 'w' which truncates the file
        
$fp fopen('articles.txt','w');
        foreach(
$data as $element) {
            
fwrite($fp$element);
        }
        
fclose($fp);
        echo 
"<div class=\"content\"><b>הכתבה נערכה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div><BR><BR>\n";
        exit;
    } else {
$data file('articles.txt');
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);
        echo 
"<div class=\"content\"><b>סיסמה שגויה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">חזור</a></div><BR><BR>\n";
        exit;
    }
    }
}
if(
$action == "edit") {
    
$data file('articles.txt');
    
$element trim($data[$id]);
    
$pieces explode("|"$element);
    
//the next line is to reverse the process of turning the end of lines into breaking returns
    
$articles str_replace("<BR>","\r\n",$pieces[2]);
    echo 
"<div id=\"content\"><h2><u>ערוך כתבה</u></h2></div><BR>\n";
    echo 
"<div class=\"content\"><FORM ACTION=\"$PHP_SELF?action=edit\" METHOD=\"POST\" NAME=\"editform\">\n";
    echo 
"שם:<BR>\n";
    echo 
"<INPUT TYPE=\"text\" SIZE=\"30\" NAME=\"name\" value=\"".$pieces[1]."\"><BR>\n";
    echo 
"תוכן הכתבה:<BR>\n";
    echo 
"<TEXTAREA NAME=\"articles\" COLS=\"40\" ROWS=\"5\">".$articles."</TEXTAREA><BR><BR>\n";
    echo 
"סיסמה:<BR>\n";
    echo 
"<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"date\" VALUE=\"".$pieces[0]."\">\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\" שמור \"><BR>\n";
    echo 
"</FORM></div>\n";
    exit;
}
if(
$action == "delete" && isset($HTTP_POST_VARS['password'])) {
    
//obviously you should change this password on the next line
    
if($HTTP_POST_VARS['password'] == "tbftbf") {
        
$data file('articles.txt');
        
//this next line will remove the single articles item from the array
        
array_splice($data,$id,1);
        
//now we open the file with mode 'w' which truncates the file
        
$fp fopen('articles.txt','w');
        foreach(
$data as $element) {
            
fwrite($fp$element);
        }
        
fclose($fp);    
        echo 
"<div class=\"content\"><b>הכתבה נמחקה</b>\n";    
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF\">חזור לעמוד הראשי</a></div><BR><BR>\n";
        exit;
    } else {
$data file('articles.txt');
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);
        echo 
"<div class=\"content\"><b>סיסמה שגויה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">חזור</a></div><BR><BR>\n";
        exit;
    }
    }
}
if(
$action == "delete") {
    echo 
"<div id=\"content\"><h2><u>מחיקת כתבה</u></h2></div>\n";
    
$data file('articles.txt');
    
$element trim($data[$id]);
    
$pieces explode("|"$element);
    echo 
"<div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n";
    echo 
"<BR><BR>\n";
    echo 
"אם אתה בטוח שברצונך למחוק את הכתבה, הקלד את הסיסמה ומחק:<BR><BR>\n";
    echo 
"<FORM ACTION=\"$PHP_SELF?action=delete\" METHOD=\"POST\" NAME=\"deleteform\">\n";
    echo 
"סיסמה:<BR>\n";
    echo 
"<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\" מחק \"><BR>\n";
    echo 
"</FORM></div>\n";
    exit;
}

echo 
"<div id=\"content\"><h2><u>כתבות נוכחיות</u></h2></div>\n";
$data file('articles.txt');
$data array_reverse($data);
foreach(
$data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element);

    echo 
"<BR><div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n";
    echo 
"&nbsp;(<a href=\"$PHP_SELF?action=delete&id=$key\">מחק</a>\n";
    echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">ערוך</a>)\n";
    echo 
"<BR><HR><BR><BR></div>\n";
}
?>

ובקשר לזמן, שמרתי (בהוספת כתבה) ככה:
PHP קוד:

$line date("d.m.y"


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

עריכה:
תוריד את הrevers ומאותה שורה (בלי foreach)....תשים
PHP קוד:

for($i=count($data)-1;$i>=0;$i--) { 
    
$element trim($data[$i]); 
    
$pieces explode("|"$element); 

    echo 
"<BR><div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n"
    echo 
"&nbsp;(<a href=\"$PHP_SELF?action=delete&id=$key\">מחק</a>\n"
    echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$key\">ערוך</a>)\n"
    echo 
"<BR><HR><BR><BR></div>\n"


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

ד"א
למה שמת בתוך התנאי הזה :
PHP קוד:

if($action == "delete" && isset($HTTP_POST_VARS['password'])) { 

עוד foreach כי הוא ממש לא נחוץ והוא לא עושה כלום.

miniature 30-01-06 21:34

זה עושה את העבודה רק שאי אפשר לערוך ולמחוק, תראה:
http://royalgames.3dfaculty.com/kata...vot2/index.php

meshuga 30-01-06 21:36

ציטוט:

נכתב במקור על ידי miniature
זה עושה את העבודה רק שאי אפשר לערוך ולמחוק, תראה:
http://royalgames.3dfaculty.com/kata...vot2/index.php

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

for($i=count($data)-1;$i>=0;$i--) {  
    
$element trim($data[$i]);  
    
$pieces explode("|"$element);  

    echo 
"<BR><div class=\"content\">" $pieces[2] . "<BR>" "<b>נשלח על ידי " $pieces[1] . " ב " $pieces[0] . "</b>\n";  
    echo 
"&nbsp;(<a href=\"$PHP_SELF?action=delete&id=$i\">מחק</a>\n";  
    echo 
"&nbsp;|&nbsp;<a href=\"$PHP_SELF?action=edit&id=$i\">ערוך</a>)\n";  
    echo 
"<BR><HR><BR><BR></div>\n";  


שים ונקווה שזה יהיה סוף הפרשה...

עריכה
שיניתי משהו...אז שים עכשיו את הקוד

miniature 30-01-06 21:47

DONE - ברוך השם :)
תודה רבה רבה :)

meshuga 30-01-06 21:49

ציטוט:

נכתב במקור על ידי miniature
DONE - ברוך השם :)
תודה רבה רבה :)

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


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

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