09-05-11, 18:28 | # 1 |
חבר בקהילה
|
בעיה בזיהוי ID
ערב טוב,
יש לי בעיה קטנה. אני עובד מול שרת 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 |
09-05-11, 18:42 | # 2 |
אין כמו ב127.0.0.1
|
מן הסתם זה אומר שהIF לא תפס. תבדוק אם שלחת בGET ואם שלחת תבדוק איפה שמת את הIF.
האם אתה עובד בScope הנכון? |
09-05-11, 19:24 | # 3 |
חבר בקהילה
|
קודם כל תשים את השאילתה בתוך התנאי שלך, כי אם הוא לא קיים אז אתה מריץ שאילתה שה-ID שווה לכלום
דבר שני, מה יש בשורה 6 או בשורה שלפניה מה כתוב בקוד...? |
09-05-11, 22:10 | # 4 | ||
חבר בקהילה
|
ציטוט:
ציטוט:
הבעיה הייתה בקובץ PHP.INI בGLOBAL REGISTER. ניתן לנעול את האשכול! |
||
10-05-11, 09:15 | # 5 | |
משתמש - היכל התהילה
|
ציטוט:
זו לא בעיה ככה זה צריך להיות. http://php.net/manual/en/security.globals.php תראה את ה Warning שיש למעלה...
__________________
קו ישר, כי אפשר גם אחרת |
|
10-05-11, 10:57 | # 6 |
חבר בקהילה
|
אני מניח השורה בה אתה מוציא את הנתונים מהטבלה היא בתוך פונקציה.
אם ככה, עדיף להעביר את ה- ID לפונקציה בתור פרמטר מאשר להפעיל REGISTER_GLOBALS וכמו שציינו מעלי, תעשה בדיקה שקיים ערך כלשהו ב- id לפני שאתה בכלל מפעיל את השאילתה. ובנוסף, כדי שלא יהיו לך בעיות של SQL Injection, תסנן את ה- ID לפני שהוא נכנס לשאילתה. אם ה- ID הוא ערך מספרי, תסנן אותו באמצעות הפונקציה intval, אם הוא לא ערך מספרי תסנן אותו באמצעות mysql_real_escape_string |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|