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

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

CodeX 30-10-08 17:06

[שאלה] GET עם מערכים, אפשרי?
 
שמעו רגע, אני רוצה לאבטח את מערכת הפורטל שלי,
ואני רוצה לעשות שאם יתקבל הערך SELECT נגיד בGET אז הוא יעביר לדף מסוים, לא משנה.

נגיד ויש לי את המערכים האלה:
PHP קוד:

$Sec[]="Select";
$Sec[]="Update"

אני רוצה לעשות שאם נשלח מהם אז תופיע שגיאה, נסיתי לעשות ככה:
PHP קוד:

if(isset(var_dump($_GET[$Sec]))){
die (
"");


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

יניב בן צבי 30-10-08 17:51

לא אפשרי לעשות את זה בצורה הזאת אתה צריך לעשות את זה בלולאה foreach שתעבור על המערך שלך ואחכ לבדוק עם המערך עם המילה הזאת מופיעה שם

תשתמש בarray_search
בצורה הזאת

PHP קוד:

$Sec[]="Select";
$Sec[]="Update";  
if(
array_search($_GET['any_get_name']),$Sec)){
die (
"");


עכשיו תוסיף את לולאת הforeach

CodeX 30-10-08 18:00

אחי הוא מציג לי שגיאה בשורה הזו:
PHP קוד:

if(array_search($_GET['any_get_name']),$Sec)){ 

בגלל הפסיק שלפני ה$Sec..

Labs 30-10-08 18:23

ציטוט:

נכתב במקור על ידי NitaY (פרסם 678124)
אחי הוא מציג לי שגיאה בשורה הזו:
PHP קוד:

if(array_search($_GET['any_get_name']),$Sec)){ 

בגלל הפסיק שלפני ה$Sec..

לא נכון
בגלל שהתבלבלתה ב סוגריים
PHP קוד:

if(array_search($_GET['any_get_name'],$Sec)){ 


Hezi & BomBas 30-10-08 21:24

או שאתה יכול להשתמש בקוד הזה(ייבדוק אם SELECT או UPDATE נצאים ב GET...אני חושב שזה מה שרצית):
PHP קוד:

$Sec = array( "Select",
 
"Update" );
foreach( 
$Sec as $value )
{
if( 
in_array($value$_GET) )
{
// redirect somewhere
}



vadimg88 30-10-08 21:27

זה לא יעבוד, in_array מקבל מערך בתור פרמטר ראשון אז אפשר לבטל את הלולאה ולשים את ה GET בתור פרמטר ראשון בפונקציה in_array

Shon12 30-10-08 21:36

PHP קוד:

$list = array("select","update","delete");
    foreach(
$list as $after
    {
        foreach(
$_GET as $block)
        {
        if(
preg_match("/".$after."/i",$_GET[$block]) header(location: [url]http://www.site.com);[/url]
        
}
    } 

אמור לעבוד(לא הרצתי).

Elad-A 31-10-08 00:06

למה כל הסיבוך?
תשתמש פשוט בפונקצייה in_array .

CodeX 31-10-08 17:20

תודה לכולם, ו-Shon12
הוא הציג לי שגיאה בשורה של הPREG =\

vadimg88 31-10-08 17:23

כי חסר שם נקודה-פסיק (;) אחרי סגירת הסוגריים של preg_match


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

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