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

הוסטס - פורום אחסון האתרים הגדול בישראל (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 28-01-06 19:32

[שאלה] כתבות חדשות בראש הדף.
 
יש לי את הקוד:
PHP קוד:

$data file('articles.txt');
//next line removed to make everything else easier in the admin script
//$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";


(קורא את הכתבות מקובץ TXT ושולח אותן לדף)

איך אני עושה שכל כתבה חדשה שיש (שנוספת לתחתית קובץ ה TXT) תופיע בראש דף תצוגת הכתבות?

meshuga 28-01-06 19:55

ציטוט:

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

$data file('articles.txt');
//next line removed to make everything else easier in the admin script
//$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";


(קורא את הכתבות מקובץ TXT ושולח אותן לדף)

איך אני עושה שכל כתבה חדשה שיש (שנוספת לתחתית קובץ ה TXT) תופיע בראש דף תצוגת הכתבות?

אתה יכול להפוך את זה ולעשות הדפסה בעזרת לולאת for (ככה אני עושה לפחות..בדיוק אני עושה שימוש במערכת שאני בונה עם קריאה מקובץ..ממש כמו שאתה עשית עם ה | ..חח)
תעשה ככה:
PHP קוד:

$file=file('articles.txt');
for(
$i=count($file)-1;$i>=0;$i--){
 echo 
$file[$i];


עשיתי בקצרה כי לא היה לי כח לכתוב פה את כל שלך...בכל מקרה , בהצלחה.

miniature 28-01-06 21:15

עשיתי ככה:
PHP קוד:

$data file('articles.txt');
for(
$i=count($data)-1;$i>=0;$i--){ 
 echo 
$data[$i]; 
}
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element); 

וזה לא עבד.

meshuga 28-01-06 21:48

ציטוט:

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

$data file('articles.txt');
for(
$i=count($data)-1;$i>=0;$i--){ 
 echo 
$data[$i]; 
}
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    
$element trim($element);
    
$pieces explode("|"$element); 

וזה לא עבד.

אני רואה שלא הבנת מה אני ניסיתי להראות לך...
אתה לא אמור להשתמש בforeach שיש לך פונקציה כבר במקום (for)...
שמע, אני מחר יעזור לך כי אין לי פה זמן עכשיו.....

Panda 28-01-06 22:14

miniature אני לא ממליץ לך להשתמש בקובץ TXT כמסד נתונים מכיוון שהוא ניתן לשינוי על יד
כל אחד במידה והוא יודע את שמו ואת מיקומו במערכת(ללא צורך בהרצת קובץ על אותו שרת).

miniature 28-01-06 22:16

אבל כדי לשנות את הקובץ הוא צריך להעלות אותו..

meshuga 28-01-06 22:42

ציטוט:

נכתב במקור על ידי RoYaL-ToY
miniature אני לא ממליץ לך להשתמש בקובץ TXT כמסד נתונים מכיוון שהוא ניתן לשינוי על יד
כל אחד במידה והוא יודע את שמו ואת מיקומו במערכת(ללא צורך בהרצת קובץ על אותו שרת).

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

miniature 28-01-06 23:42

אבל עדיין צריך להעלות את הקובץ..
ואשמח אם תתקן לי את הקוד.

meshuga 29-01-06 00:13

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

$data file('articles.txt'); 

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"



miniature 29-01-06 18:45

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

meshuga 29-01-06 20:00

ציטוט:

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

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

miniature 29-01-06 20:40

אה כנראה שהייתי צריך להביא את הקוד המלא מלכתחילה, מצטער.
הנה כל הקוד (ללא השינוי שאמרת לי לעשות):
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'] == "123456") {
        
//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');
//next line removed to make everything else easier in the admin script
//$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'] == "123456") {
        
$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');
//next line removed to make everything else easier in the admin script
//$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";
}
?>

אם תדע איך לעשות את אותו הדבר רק שתהיה אפשרות של עריכה ומחיקה אז תודה רבה :)

meshuga 29-01-06 20:45

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

טוב הבנתי מה עשית פה...אני בדיוק עובד על מערכת בדיוק עם אותו דבר....עריכה מחיקה ובלאגן מקבצים.
אני עשיתי בדיוק מה שאתה עשית חוץ מזה שאתה השתמשת בפונקציה שמורידה ממערך ואני פשוט עשיתי שאם הid שווה לו הוא לא יכניס...
בכל מקרה....במקום כל foreach אתה צריך לשים את הלולאת for שהראיתי לך....אין ברירה...

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

miniature 29-01-06 21:15

ניסיתי לשלב את זה איכשהו ולא הצלחתי.

meshuga 29-01-06 21:17

ציטוט:

נכתב במקור על ידי miniature
ניסיתי לשלב את זה איכשהו ולא הצלחתי.

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

miniature 29-01-06 21:26

אוקי ממש תודה :)

ViPeRt 29-01-06 21:57

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

meshuga 29-01-06 22:01

ציטוט:

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

לפעמים צריך אתגרים בחיים;) ..
סתם...אמממ..אני עכשיו עושה מערכת מסויימת עם 2 גרסאות אחת בלי מסד נתונים אחד עם.
שיהיה...מה רע..תמיד טוב לדעת כאלה דברים...

ViPeRt 29-01-06 22:05

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

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

בהצלחה :]

meshuga 29-01-06 22:12

ציטוט:

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

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

בהצלחה :]

שים לב שזה מה שהוא עשה במחיקה....הוא הוציא מהמערך את השורה הלא נחוצה והחזיר לתוך הקובץ ;)
וגם אני עשיתי ככה במערכת שלי...וזה בדיוק כמו מה שאתה אמרת...

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. הזמן כעת הוא 19:50.

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