09-09-2007, 18:01
|
|
|
חבר מתאריך: 01.09.07
הודעות: 88
|
|
דוגמאת סקריפט fwrite ועוד כמה ברמה קצת יותר גבוהה (מיועד ללימוד)
עפ"י בקשה של אחד מהפורום נאלצתי "לנתח" את הסקריפט שלי שהמקור ממוקם בכתובת הבאה:
http://freeztil.forums-il.com/badlinker.php
הסקריפט נותן לכם לרשום 10-15 לינקים ועושה אותם כ-Iframes.
תנסו אותו תתרשמו ויש כאלה שאולי קצת ילמדו.
עכשיו זהו הסקריפט המעוצב והמשופר, אני באתי למטרה של ללמד את אלה שעדיין מתחילים\ממש קצת מעל.
הנה הסקריפט המנותח:
http://freeztil.forums-il.com/form.php
הסקריפט כולל 3 קבצי PHP:- form.php
- write2.php
- gateway-image.php
הform.php הוא טופס HTML בלבד, אך מכיוון שיש שם תמונת אימות (עוד לא התאמתי אותה) אז חייב שהוא עצמו יהיה PHP, לכל מי שיכול לסדר את זה אז תודה =]
וכאן אני ירשום את המקור שלו ויפרט קצת:
לקובץ הבא נקרא write2.php , הקובץ פותח עם פונקציית fopen וכותב עם fwrite את העמוד שיצרנו בעזרת הטופס, ונשים אותו באותה תיקייה שבא נשים את הטופס:
קוד:
<?php
$center = '<center>';
$closecenter = '</center>';
$php = '.php';
$con = '<iframe src="';
$close = '" scrolling="auto" width=33% height=33% frameborder="1">';
$handle = fopen($filename."".$php, 'w');
chmod($filename."".$php, 0777);
if (fwrite($handle, $center."".$closecenter."".$center."".$con."".$link1."".$close."".$con."".$link2."".$close."".$con."".$link3."".$close."".$closecenter) === FALSE) {
echo "שם עמוד כבר תפוס";
exit;
}
echo "<BR><BR><Center><td><a href=\"$filename$php\"><b><font color=\"#FF0000\">לחץ כאן כדי להכנס ללינק שלך</font></b></a></td></Center><BR><b><font color=\"#150091\">$filename$php</font> :שם הקובץ שלך הוא<BR>";
fclose($handle);
?>
שימו לב המשתנים של הלינקים הם $link1 עד $link3 ובצדדיהם יש $con שהוא פותח את הקוד של האייפריים ו$close שהוא סוגר אותו.
משתני הlink 1-3 מותאמים למה שרשמנו בטופס, בעזרת הדוגמא הבאה:
קוד:
<input type="text" name="link1" maxlength="100">
זהו קטע HTML , ה-input type זה סוג ה"קטע" ובמקרה הזה הוא "text".
ה-"name" זה החלק שמשנה את המשתנים בקובץ write2.php.
המשתנה $filename הוא הקובץ שנפתח, ונכתוב עליו.
כדי לפתוח את הקובץ הזה הקלדנו את הקוד הבא:
קוד:
$handle = fopen($filename."".$php, 'w');
זהו המשתנה של הfopen, הפונקצייה הזו פותחת קובץ אם הוא קיים היא רק פותחת אותו, כמו שאנחנו עושים דאבל-קליק ואם הוא לא קיים היא יוצרת אותו משום מקום =]
עכשיו הפוקנציית fwrite כותבת על הקובץ $filename והיא משתמשת במשתנה של הfopen, הנה הקטע:
קוד:
if (fwrite($handle, $center."".$closecenter."".$center."".$con."".$link1."".$close."".$con."".$link2."".$close."".$con."".$link3."".$close."".$closecenter) === FALSE) {
echo "שם עמוד כבר תפוס";
exit;
}
שימו לב בכוונה העתקתי עוד קצת מסביב לקטע הזה, תכף נסביר. קודם כל הfwrite הולך ככה:
בין הסוגריים נרשום את התוכן שהfwrite ירשום לנו על הקובץ.
עכשיו תנאי if גם מופיעים שם, בוא נסביר עליהם בקצרה גם =]
אז מה שעשינו כאן זה:
קוד:
if (fwrite(XXXX) === FALSE)
בין הXXX רושמים את התוכן של הfwrite כמו שהסברתי, והIF זה תנאי, מזה אומר?
רשמנו:
קוד:
if (התנאי) === FLASE
פחות או יותר. וזה אומר שאם הfwrite === FALSE אז תהיה הודעת שגיאה.
הFALSE זה אומר = לא נכון\שגוי. שימו לב זוהי מילה גלובאלית בPHP ככה שחייב "===" ולא "==" וכל השאר...
אוקיי עכשיו הטופס שנקרא לו form.php בעזרתו נוכל להתאים את המשתנים של הלינק וכד'...
קוד:
<form action="write2.php" method="post">
<table align="right" bgcolor="#FFFFb0" border="1">
טופס למילוי:
<TR>
<TD><img src="gateway-image.php"</TD>
<TD>: אנא הקלד במדויק את הקוד הבא </TD>
</TR>
<TR>
<TD><input type="text" name="filename" maxlength="100"></TD>
</TR>
<TR>
<TD>לינק 1 </TD>
</TR>
<TR>
<TD> <input type="text" name="link1" maxlength="100"></TD>
</TR>
<TR>
<TD>לינק 2 </TD>
</TR>
<TR>
<TD> <input type="text" name="link2" maxlength="100"></TD>
</TR>
<TR>
<TD> לינק 3</TD>
</TR>
<TR>
<TD> <input type="text" name="link3" maxlength="100"></TD>
</TR>
</table>
<input type="submit">
</form>
שימו לב שטופס הזה מפנה לwrite2.php בעזרת הקטעון הבא:
קוד:
<form action="write2.php" method="post">
הaction זה לאן הוא יפנה.
כפי שאמרתי התמונת אימות אינה מותאמת, למי שיכול שיגיב ויתן תקוד מסודר =]
מה שנקליד בתמונת האימות הוא ה$filename שדיברנו עליו בקובץ write2.php
עכשיו הgateway-image.php זה הסקריפט שעושה תתמונת אימות:
קוד:
<?php
session_start();
$number = rand(1,999); //generate a random integer
SESSION['number'] = $number; //store in session variable
$img_number = imagecreate(40,25);
$backcolor = imagecolorallocate($img_number,0xcc,0xcc,0xcc);
$textcolor = imagecolorallocate($img_number,255,255,255);
imagefill($img_number,0,0,$backcolor);
imagestring($img_number,10,5,5,$number,$textcolor) ;
header("Content-type: image/jpeg");
imagejpeg($img_number);
?>
למי שהקוד לא עבד הקובץ getway-image.php שיראה תמקור כאן:
http://freeztil.forums-il.com/getway-image.txt
אוקיי אז גמרתי אחרי עבודה קטנה, עריכות, וכו'...
מקווה לתגובות טובות גם מאלה שמבינים בנושא כי מדי פעם אלה שמבינים מתחילים לרדת שזה לא נחוץ והכל... קיצר לא לוקח שום כרדיט כי אין מה לקחת... וזהו מקווה שמישהו ילמד\למד משהו.
מאת משה.
נערך לאחרונה ע"י zippoxer בתאריך 09-09-2007 בשעה 18:21.
|