![]() |
# 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 אורחים) | |
|
|