|
|
# 1 |
|
חבר בקהילה
|
ערב טוב,
יש לי בעיה קטנה. אני עובד מול שרת WAMP ואני בונה מערכת שמטרתה להציג תקציר של המאמר ומאמר מלאה. את הID הגלובאלי אני השוואתי לID רגיל בצורה הבאה: קוד:
if (isset($_GET['id'])) {$id = $_GET['id'];}
קוד:
$result = mysql_query ("SELECT * FROM article WHERE id='$id'",$db);
קוד:
Notice: Undefined variable: id in C:\wamp\www\mysite\bigarticle.php on line 6 |
|
|
|
# 2 |
|
אין כמו ב127.0.0.1
|
מן הסתם זה אומר שהIF לא תפס. תבדוק אם שלחת בGET ואם שלחת תבדוק איפה שמת את הIF.
האם אתה עובד בScope הנכון? |
|
|
|
# 3 |
|
חבר בקהילה
|
קודם כל תשים את השאילתה בתוך התנאי שלך, כי אם הוא לא קיים אז אתה מריץ שאילתה שה-ID שווה לכלום
דבר שני, מה יש בשורה 6 או בשורה שלפניה מה כתוב בקוד...? |
|
|
|
# 4 | ||
|
חבר בקהילה
|
ציטוט:
ציטוט:
הבעיה הייתה בקובץ PHP.INI בGLOBAL REGISTER. ניתן לנעול את האשכול! |
||
|
|
|
# 5 | |
|
משתמש - היכל התהילה
|
ציטוט:
זו לא בעיה ככה זה צריך להיות. http://php.net/manual/en/security.globals.php תראה את ה Warning שיש למעלה...
__________________
קו ישר, כי אפשר גם אחרת |
|
|
|
|
# 6 |
|
חבר בקהילה
|
אני מניח השורה בה אתה מוציא את הנתונים מהטבלה היא בתוך פונקציה.
אם ככה, עדיף להעביר את ה- ID לפונקציה בתור פרמטר מאשר להפעיל REGISTER_GLOBALS וכמו שציינו מעלי, תעשה בדיקה שקיים ערך כלשהו ב- id לפני שאתה בכלל מפעיל את השאילתה. ובנוסף, כדי שלא יהיו לך בעיות של SQL Injection, תסנן את ה- ID לפני שהוא נכנס לשאילתה. אם ה- ID הוא ערך מספרי, תסנן אותו באמצעות הפונקציה intval, אם הוא לא ערך מספרי תסנן אותו באמצעות mysql_real_escape_string |
|
![]() |
| חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
| כלים לאשכול | |
| תצורת הצגה | |
|
|