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

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

ddd789 01-10-07 22:04

עזרה PHP ביטוים רוגלים
 
שלום בנייתי מיני מערכת כזות ששולפות מידע מהמסד ככה נגיד

index.php?Id=1
וזה שולף את השדה name מין המסד
עכשיו אני רוצה לאפשר לכתובת בGET רק מספרים לא איתיות ולא סימנים
אני רוצה לדעת איך אני עושה זות בביוטים רוגלים תודה :D

עריכה ואני רוצה לדעת אם אין ID מסוים נגיד ככה index.php?Id=3234324234
תוצג הודעה אין עמוד כזה במערכת

איך אני עושה זות :D תודה.

חיים 01-10-07 22:16

1.בקשר לרק מספים תשתמש ב-is_numeric ו-intval
2.תעשה בדיקה אם יש ID כזה אם אין תציג שגיעה דבר מאוד פשוט לא?

DanielS 01-10-07 22:43

כמו שחיים אמר ניתן ב is_numeric . אני ידגים לך . אתה עושה פשוט ככה.
PHP קוד:

<?php
$myid 
$_GET['id'] ;
if(
is_numeric($myid)){
// אם זה מספר זה יציג את זה
}else{
// אם זה לא מספר זה יציג את זה
}
?>

לגבי הדבר השני זה מאוד פשוט. בעזרת mysql_num_rows אני עשיתי את זה

-roee- 01-10-07 23:42

למעשה אין כל צורך להשתמש ב-is_numeric או intval

PHP קוד:


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

if( 
mysql_num_rows($query) == )
{
exit(
"Does not exist");



ddd789 01-10-07 23:43

תודה דניאל הצלחתי תראשון תשני משיהוא יוכל להסביר לי איך בדיוק מתמש בmysql_num_rows

DanielS 02-10-07 00:01

ציטוט:

נכתב במקור על ידי ddd789 (פרסם 561759)
תודה דניאל הצלחתי תראשון תשני משיהוא יוכל להסביר לי איך בדיוק מתמש בmysql_num_rows


התשובה שלך היא
ציטוט:

נכתב במקור על ידי roeenoy (פרסם 561757)
למעשה אין כל צורך להשתמש ב-is_numeric או intval

PHP קוד:


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

if( 
mysql_num_rows($query) == )
{
exit(
"Does not exist");



אתה עושה לו else ואז את הטופס מחיקה =]

Elad-A 02-10-07 09:22

רועי, מה הקטע לעשות strip_tags ?
אם זה רק למספרים פשוט אפשר לעשות casting או לחלופין intval

PHP קוד:

$id = (int) $_GET['id'];

#or

$id intval($_GET['id']);

$query mysql_query("SELECT * FROM `yourtable` WHERE `id` = '$id' ") OR die ('Error!' mysql_error());
if(!
mysql_num_rows($query)) echo 'dosent exists'


ASTeam 02-10-07 09:39

השתמש ב- intval
גם פונקתיה אחת פשוטה לכל הקטע הזה של המספרים.
גם אתה ככה מונע פריצות מגט(כמו קודי JS וכו'.).


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

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