View Full Version : سوال: جستجو در مقدار ارسال get
رضا قربانی
دوشنبه 23 آبان 1390, 04:35 صبح
با سلام خدمت همگی
من یه آدرس به صورت گت ارسال می کنم به این صورت :
index.php?Reza=Galiken
حالا یک متغیر دارم که یه سری کاراکتر ها رو درون آرایه انداختم
$symbol = array( '*','\x7F','\xC0','\xFD', '\n', '\r','\t', '\x1a');
حالا می خوام بگم که اگر این کاراکترها ، داخل مقدار get من بود بیا و پیام ارور رو نمایش بده ولی نتونستم
من به این صورت عمل می کنم منتها باید مقدار گت من برابر با یکی از کاراکتر های $symbol باشه :
$symbol = array( '*','\x7F','\xC0','\xFD', '\n', '\r','\t', '\x1a');
if(in_array($_GET['Reza'], $symbol))
{
die('error');
}
این زمانی بهم ارور رو نشون می ده که مثلا آدرس من به این شکل باشه : index.php?Reza=*
ولی من می خوام اگر داخل مقدار ارسال گت من چنین کاراکتری بود پیام ارور رو نمایش بده.
به این صورت : index.php?Reza=Galik*en بود بهم ارور رو نشون بده با تشکر
Unique
دوشنبه 23 آبان 1390, 12:17 عصر
جناب قبانی ،
کد بالا برای t\ و n\ کار نمیده چون باید اونها را برای آرایه توی " بگذاری و نه ' !
میتونی توی آرایه loop کنی و با strpos چک کنی ببینی کاراکتر موجوده یا نه و یادت باشه حتما از === برای مقدار شرطی توی strpos استفاده کنی چون اگه کاراکتر مورد نظر در اولین کاراکتر رشته باشه position را 0 بر میگردونه و شرطت به مشکل بر میخوره !
persian-boy
دوشنبه 23 آبان 1390, 12:24 عصر
درود بر شما
برای سایر موارد این رو تست کنید
$symbol = array( '*','\x7F','\xC0','\xFD', '\n', '\r','\t', '\x1a');
if(strstr($_GET['Reza'], $symbol)) {die('error'); }
alismith
دوشنبه 23 آبان 1390, 12:54 عصر
سلام
دوست عزیز من یک کد نوشتم که در بعضی مواقع درست جواب داد اما کامل نیست و باید از یک parrent درست استفاده کرد
شما اینو ببین، اگه وقت شد شب روش کار می کنم و یک کد درست براتون میذارم
<?php
$symbol = array( '*','\x7F','\xC0','\xFD', '\n', '\r','\t', '\x1a');
foreach($symbol as $k => $v){
$count = strlen($v);
$q = $_GET['Reza'];
$str = str_split($q,$count);
foreach($str as $sK => $sV){
if($sV == $v){
die('error');
break;
}
}
}
?>
مثال :
reza.php?Reza=alia\x7F
reza.php?Reza=ali*
موفق باشید
Unique
دوشنبه 23 آبان 1390, 13:17 عصر
جایی توی سایت php.net ننوشته میشه از آرایه به عنوان needle توی strstr استفاده کرد !
persian-boy
دوشنبه 23 آبان 1390, 13:42 عصر
جایی توی سایت php.net ننوشته میشه از آرایه به عنوان needle توی strstr استفاده کرد !
بله الان خودم هم تست کردم جواب نداد . خیلی عذر میخوام
رضا قربانی
دوشنبه 23 آبان 1390, 15:05 عصر
جناب قبانی ،
کد بالا برای t\ و n\ کار نمیده چون باید اونها را برای آرایه توی " بگذاری و نه ' !
میتونی توی آرایه loop کنی و با strpos چک کنی ببینی کاراکتر موجوده یا نه و یادت باشه حتما از === برای مقدار شرطی توی strpos استفاده کنی چون اگه کاراکتر مورد نظر در اولین کاراکتر رشته باشه position را 0 بر میگردونه و شرطت به مشکل بر میخوره !
آقای قربانی هستم :لبخند:
ممنون از همگی دوستان
با strstr که نمی شه محتویات آرایه رو اینطوری که من می خوام انجام داد.
آقای Unique می شه با نمونه کد راهنماییم کنید .
ممنون می شم
alismith
دوشنبه 23 آبان 1390, 21:24 عصر
سلام
کار دوستمون persian boy درست بود، من کد رو تکمیل کردم :
$symbol = array( '*','\x7F','\xC0','\xFD', '\n', '\r','\t', '\x1a');
foreach($symbol as $k => $v){
if(strstr($_GET['Reza'], $v)) {
die('error');
break;
}
}
موفق باشید
رضا قربانی
پنج شنبه 26 آبان 1390, 02:16 صبح
کد بالا برای t\ و n\ کار نمیده چون باید اونها را برای آرایه توی " بگذاری و نه ' !
چرا ؟
ولی من جواب می گیرم و هیچ مشکلی با این قضیه ندارم !
و ممنون از همگی دوستانی که در این تاپیک وقتشون رو گذاشتن .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.