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

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

miniature 02-02-06 16:23

2 בעיות עם מערכת כתבות.
 
1. כנסו לכאן:
http://royalgames.3dfaculty.com/kata...vot2/index.php
הסידור שם התבלגן ואני לא יודע למה..
הקוד של איפה שהסידור:
PHP קוד:

<div id="contentboxleft">סבהלצגהלצכגהלךצ<br>סבהסבהךסבךה<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגףך<br>סבהךלס<br>גלךהצכגף</div>
<?php
echo "<div id=\"contentboxright\"><h2><u>כתבות נוכחיות</u></h2>\n";
$data file('articles.txt');
////////OLD\\\\\\
//$data = array_reverse($data);
//foreach($data as $key=>$element) {
//$element = trim($element);
//\\\\\\OLD//////
for($i=count($data)-1;$i>=0;$i--) {  
    
$element trim($data[$i]);
    
$pieces explode("|"$element);

    echo 
"<BR>" $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";
}
?>
<br /><br /><br /><br />
<div id="contentboxright">
<h2><u>סיסמה אקראית (לשימוש פנימי)</u></h2><br />
<?php
/**
* The letter l (lowercase L) and the number 1 
* have been removed, as they can be mistaken 
* for each other. 
*/
function createRandomPassword() {
    
$chars "abcdefghijkmnopqrstuvwxyz023456789";
    
srand((double)microtime()*1000000);
    
$i 0;
    
$pass '' ;
    while (
$i <= 7) {
        
$num rand() % 33;
        
$tmp substr($chars$num1);
        
$pass $pass $tmp;
        
$i++;
    }
    return 
$pass;
}
// Usage
$password createRandomPassword();
echo 
"הסיסמה האקראית היא: $password</div><br />";
?>

2 ה CSS:
PHP קוד:

#contentboxright{
float:right;
width:520px;
font-size:1.1em;
color:#505050;
background-color:#fafbfc;
margin:5px 0 5px 0;
padding:10px 10px 8px 5px;
border:1px solid #c0c0c0;
}

#contentboxleft{
float:left;
width:138px;
font-size:1.1em;
color:#505050;
background-color:#fafbfc;
margin:5px 0 5px 0;
padding:10px 10px 8px 5px;
border:1px solid #c0c0c0;


2. כנסו ל:
http://royalgames.3dfaculty.com/kata...vot2/index.php
ותעשו 'עריכה' על אחת מהכתבות (בלי לכתוב סיסמה), ותראו שהשגיאה בדף אחר, ואני רוצה שזה יהיה באותו דף ומעל העריכה..
קוד העריכה:
PHP קוד:

if($action == "edit" && isset($HTTP_POST_VARS['password'])) {
    
//obviously you should change this password on the next line
if($HTTP_POST_VARS['submit']) {
    if(
$HTTP_POST_VARS['password'] == 'tbftbf') {
        if(!
$HTTP_POST_VARS['name']) {
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד את שמך</b>";
        echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
            exit;
        }
        if(!
$HTTP_POST_VARS['articles']) {
            echo 
"<div id=\"contentboxright\"><b>אתה חייב להקליד תוכן</b>";
        echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
            exit;
        }
        if(
strstr($HTTP_POST_VARS['name'],"|")) {
            echo 
"<div id=\"contentboxright\"><b>השם לא יכול להכיל את התו -|-</b>";
        echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
            exit;
        }
        if(
strstr($HTTP_POST_VARS['articles'],"|")) {
            echo 
"<div id=\"contentboxright\"><b>תוכן הכתבה לא יכול להכיל את התו -|-</b>";
        echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</a></div>\n";
            exit;
        }
        
//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 id=\"contentboxright\"><b>הכתבה נערכה</b>\n";    
        echo 
"&nbsp;|&nbsp;<a href=\"index.php\">חזור לעמוד הראשי</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 id=\"contentboxright\"><b>סיסמה שגויה</b>\n";
        echo 
"&nbsp;|&nbsp;<a href=\"javascript:history.go(-1);\">חזור</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><BR>\n";
    echo 
"<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=\"60\" ROWS=\"20\">".$articles."</TEXTAREA><BR><BR>\n";
    echo 
"סיסמה:<BR>\n";
    echo 
"<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR><BR>\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"date\" VALUE=\"".$pieces[0]."\">\n";
    echo 
"<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo 
"<u>הערות חשובות לפני עריכה:</u><BR>\n";
    echo 
"<ul>\n";
    echo 
"<li>בדוק היטב שהכתבה ו/או השם אינה/אינו מכיל/ה את התו '|' ושכל הנתונים הוזנו כהלכה.\n";
    echo 
"<li>מומלץ לשמור את הכתבה בקובץ TXT לפני השליחה במידה ותקרה תקלה בשליחתה.\n";
    echo 
"</ul>\n";
    echo 
"<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\" שמור \"><BR>\n";
    echo 
"</FORM></div>\n";
    exit;


תודה רבה מראש לעוזרים :)

Ori The Man 02-02-06 16:32

חסמתה תגיות html?

miniature 02-02-06 16:51

לא

Ori The Man 02-02-06 17:17

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

$name str_replace("<""&lt"$name); 
$name str_replace(">""&gt"$name); 


miniature 02-02-06 17:50

מה?! לא הבנתי..

רומן 02-02-06 18:01

ציטוט:

נכתב במקור על ידי Ori The Man
תשים את זה איפה שאתה צריך בהתאם למערכת שלך
PHP קוד:

$name str_replace("<""&lt"$name); 
$name str_replace(">""&gt"$name); 


עדיף ככה:
PHP קוד:

$name htmlspecialchars("$name"ENT_QUOTES); 


miniature 02-02-06 18:03

ציטוט:

נכתב במקור על ידי רומן
עדיף ככה:
PHP קוד:

$name htmlspecialchars("$name"ENT_QUOTES); 


מה?!

רומן 02-02-06 18:08

ציטוט:

נכתב במקור על ידי miniature
מה?!

אתה בכלל יודע Php?

miniature 02-02-06 18:16

בוודאי.

k.machine 02-02-06 18:27

ציטוט:

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

אז למה אתה שואל "מה??" ?

אתה כבר אמור להבין על מה הם מדברים.

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

נסה אותו:)

miniature 02-02-06 21:54

לא עוזר..

רומן 02-02-06 22:12

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

miniature 02-02-06 22:27

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

miniature 03-02-06 14:34

up

meshuga 03-02-06 14:47

אסור להקפיץ, מכיוון שרק היום נוסף החוק, אני לא נועל. תדע להבא.

miniature 03-02-06 14:50

טוב..
ואם כבר הגבת, לא יכלת לעזור? :/

meshuga 03-02-06 14:55

ציטוט:

נכתב במקור על ידי miniature
טוב..
ואם כבר הגבת, לא יכלת לעזור? :/

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

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

miniature 03-02-06 15:21

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

meshuga 03-02-06 15:22

ציטוט:

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

מההתחלה, אתה רוצה שזה יכתוב את השגיאה, אבל ביחד עם כל התוכן שבתוך הtextarea כן?

miniature 03-02-06 15:31

בדיוק.

meshuga 03-02-06 15:38

ציטוט:

נכתב במקור על ידי miniature
בדיוק.

קצת מסובך לעשות את זה...בגלל שצריך להפוך חצי מהקוד..
לא חשבת לעשות את זה כשבנית את המערכת:confused: :\

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

miniature 03-02-06 16:47

ת'אמת שלא חשבתי על זה =/
אם תוכל לתת לי כיוון או משהו אז ממש תודה.
בכל מקרה,
שבת שלום :)


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

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