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

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

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

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

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

נסה אותו:)


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

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