הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך עזרה בPHP בעבודה מול SQL (https://hosts.co.il/forums/showthread.php?t=21634)

ali_napso 11-05-06 19:50

צריך עזרה בPHP בעבודה מול SQL
 
נגיד יש לי את המשתנה
id
ואני רוצה להציב אותו ב

$query = mysql_query("SELECT * FROM Topics WHERE id=1");

כאילו במקום ה 1 יהיה הערך של המשתנה שלי

תודה לכל העוזרים

TAsraf 11-05-06 19:57

PHP קוד:

$id $_GET["id"];
if(!
$id)
{
echo 
"לא צויין ID";
}
$query mysql_query("SELECT * FROM Topics WHERE id=$id"); 

עכשיו שיכנסו page.php?id=1
אז זה יעשה יקרא מהID מספר 1..
ואם יעשו
page.php?id=
כאילו בלי כלום אחרי ה"=" אז זה ירשום "לא צויין ID"
וכו'

lalamen 11-05-06 19:57

אם אתה רוצה לקבל את המשתנה דרך כתובת אינטרנט דוגמא hosts.co.il/news.php?id=1
תעשה

PHP קוד:

$id $_GET["id"];
$query mysql_query("SELECT * FROM Topics WHERE id=$id"); 


אם אתה רוצה דרך משתנה שאתה קבעת תעשה ככה:

PHP קוד:

$id 1;
$query mysql_query("SELECT * FROM Topics WHERE id=$id"); 


adiga000 11-05-06 20:42

כבר אמרו מעליי.
אני אישית ממליץ על הדך של GET
$id = $_GET["id"];
$query = mysql_query("SELECT * FROM Topics WHERE id=$id");

-VladK- 12-05-06 05:07

ציטוט:

נכתב במקור על ידי adiga000
כבר אמרו מעליי.
אני אישית ממליץ על הדך של GET
$id = $_GET["id"];
$query = mysql_query("SELECT * FROM Topics WHERE id=$id");

כן אבל ככה אם לא צויין ID אז מאיפה אתה רוצה שהSQL יקח את מה שצריך? מהמשתנה ID?
אני אישית משתמש בISSET אבל כול אחד עובד איך שנוח לו...

adiga000 12-05-06 07:36

תראה אני אמרתי בכללי..
זה הדרך בכללי.
צמיד אפשר להוסיף תנאים אם יש אם אין אם ככה ואם ככה

RS324 12-05-06 12:08

מישהו ממכם שמע פעם על קצת בדיקות אבטחה ??

מה לגבי addslashes() ?

מה קורה אם לפי הדרך שלכם אני מכניס
קוד:

news.php?id=1,EVILCODE
תזכרו אף פעם לא לסמוך על המשתמש !!!

ומה קורה אם לדוגמא אני מכניס את זה ככה
קוד:

news.php?id=gg
או ככה ?


קוד:

news.php?id=1.34
תמיד צריך לבדוק את ה INPUT שאנחנו מקבלים ולא לסמוך על המשתמש...

מה קורה אם זה ככה :
קוד:

news.php?id=  2
תחשבו על כל הדברים האלה..

-VladK- 13-05-06 05:37

אתה יכול להסביר לי כיצד אני יכול למנוע את זה?

BlueNosE 13-05-06 09:29

כן, עושה בדיקת is_numbric למספר, ו/או עושה בדיקת is_int למספר.

-VladK- 13-05-06 09:32

תודה! אני רואה שיש סיבה טובה לזה שאתה בהיכל התהילה

BlueNosE 13-05-06 09:34

חחחח, תודה, תהנה =]

RS324 13-05-06 14:26

ציטוט:

נכתב במקור על ידי BlueNosE
כן, עושה בדיקת is_numbric למספר, ו/או עושה בדיקת is_int למספר.


במקרה וזה מספר.... מה קורה אם זה שדה של טקסט ?

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

בעקרון אפשר להשתמש ב mysql_real_eascape_string או ב ADDSLASCES

אבל צריך כמובן להתחשב ב magic_qoutes_gpc

אני מקווה שלחלק ממכם זה הדליק כמה נוריות ותלכו לעשות חיפוש ב PHPNET

ביי

BlueNosE 13-05-06 14:32

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

באתר שלי, בפיתוח של גירסאת הAlpha נכון להיום, אני נותן גישות לאנשים מסויימים, כמו שמייקרוסופט חילקה את וויסטה, אני נותן לכמה אנשים גישות..

צור קשר אם בא לך לבחון את המערכת.


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

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