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

הוסטס - פורום אחסון האתרים הגדול בישראל (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)

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
סבבה...
אני אשיתי בניתי פונקציות של ערכית טקסט ומחיקה מתוך קובץ.
הרעיון:
ערכיה: מעבר על כל שורה במסמך אם זה לא מה שרוצים לערוך מכניסים לתוך משתנה, אם זה מה שרוצים לערוך לא מכניסים אותו למשתנה אלא את מה שרוצים לערוך ואז ממשיכים אז שמגיעים לסוף ובסוף מכניסים את המשתנה אם המסמך "החדש" לקובץ שרוצים.

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

בהצלחה :]

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


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

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