הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 01-06-06, 07:29   # 1
-VladK-
הוסטסניון
 
-VladK-'s Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 34
הודעות: 2,182

-VladK- לא מחובר  

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

כלל ברזל2-
תבנה דפי שגיאה מותאמים אישית לכל שגיאה שעלולה להיות.

מפה, זה כבר תלוי בארכיטקטורה של המערכת שלך.
לא ממש הבנתי את הראשון...והשני כבר מוכן אצלי...על כל שגיאה יש לי כבר עמוד משלה....
  Reply With Quote
ישן 01-06-06, 07:52   # 2
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

ב"ה


א.POST מסוכן כמו GET, פשוט עם GET יותר קל להתעסק.
אל תיתן לאדם לראות את השגיאות שחוזרות מהמסד, בפיתוח זה דבר חשוב שתראה אותן אבל אחרי כן זה יכול להיות מאוד מסוכן.
אם אתה מצפה לקבל מספר תבדוק את זה עם is_numeric אם אתה מצפה לקבל מחרוזת תעשה החלפת תווים בעיתיים לתווי ה ASCII שלהם.
  Reply With Quote
ישן 01-06-06, 08:01   # 3
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

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

ישנן מספר פונקציות, אשר יעזרו לך לדעת אם ה$_GET מכיל -
  • אותיות (abc)
  • מספרים (123)
  • אותיות ומספרים (abc123)
ברגע שהוא מוצא אותיות, הוא יכול להדפיס שגיאה (הMySQL), וכך בעצם לגרום לשגיאות, אך אנחנו נחסום זאת עם פונקציה פשוטה, is_numeric().

הקוד הוא פשוט, וכתבתי לך קוד קל לדוגמא,
PHP קוד:
$page $_GET['p'];

if( empty(
$page) ) exit("Error: Costum Error.");
elseif( !
is_numeric($page) ) exit("Error: Costum Error."); 
מה שהוא בעצם עושה, תחילה הוא בודק אם ה$_GET שלנו ריק, אם הוא לא ריק, הוא בודק אם הוא מכיל אותיות, אם אחד מהתנאים יחזיר שגיאה, הוא בעצם יעצור את התוכנית, ולא יתן לה להמשיך. מה שחוסך עלינו שימוש בתנאי נוסף, לשיאלתה שתבוא לפלט העמוד.

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

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

PHP קוד:
$id $_GET['id'];

$sql "SELECT * FROM `table` WHERE `id` = " $id;
$result mysql_query($sql) or die(mysql_error());

$count mysql_num_rows($result);
    if(
$count == 0) exit("Article don't exists");

while(
$output mysql_fetch_object($result))
    echo 
$output->article

Last edited by Eli-Hai; 01-06-06 at 08:07..
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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