ساختار لینک های پرسشی توسط php

M_cover

Member
می خواستم بدانم که لینک های پرسشی که با ارتباط در دیتابیس ها ایجاد می شوند چگونه باید کد نویسی کرد
مثلا http://www.yoursait.com/?s=12
نمونه کد جاوا آن را می دانم اما می خواهم همان شیوه که در جاوا استفاده می شود در php استفاده کنم
و ارتباطی با دیتا بیس نداشته باشم
مثلا:
PHP:
if (top != self) top.location = self.location;
var file = location.search ? unescape(location.search.substring(1));

دوستانی که کار کرده انند منظور من را متوجه شده اند من نمی خواهم لینک از دیتا بیس خوانده شود می خواهم لینک را به صورت کد جاوا که برای سرچ استفاده می شود لینک را پیدا کند و اجرا کند مثلا لینک مثل Support.php
می خواهیم به حالت ./P=support باشد
با تشکر
 

Domanjiri

Well-Known Member
درود بر شما

دوست من، باور کنید 3 بار سوالتون رو خوندم، فکر کنم هم از دوستانی باشم که کار کردم(!:green:) چون جاوا هم کمی بلدم، ولی مشکل اون قسمت فارسیش هست!!:)-? :green:)

فکر می کنم منظورتون اینه که با تایپ این آدرس:
کد:
[LEFT] http://example.com/?p=support[/LEFT]
برنامه در واقع بره به این آدرس:
کد:
[LEFT] http://example.com/support.php[/LEFT]
و فایل support.php اجرا بشه، درسته؟

ببینید، در حالت عادی، وقتی درخواستی به شکل آدرس اول به سرور میره، مقدار s تنها در فایل index.php قابل دسترسی هست:
PHP:
// we are now in the index.php!
$myvariable = $_GET['s'];

حالا شما می تونید با این متغیر هر کاری بکنید، از جمله اینکه با تابع header فایلی که نامش رسیده رو فراخوانی و اجرا کنید

موفق باشین
 
آخرین ویرایش:

M_cover

Member
دوست من، باور کنید 3 بار سوالتون رو خوندم،
با عرض پوذش اگر در راست چین و چب چین کد ها اشتباه شد من چون سریع نوشتم دقت به این موضوع نکردم
بله منظور من همین است
اما نمی خواهم آدرس
PHP:
Support.php
باز شود و فقط می خواهم به آدرس هدایت شود بی آنکه کاربر از صفحه جابجا شود
در این روش می توان کاربر را به صفحه دیگر ارجاع داد
و آدرس بالا به همان صفحه بر می گردد
من می خواهم آدرس صفحه و دسترسی به ساپورت با
PHP:
?s=10

نمایش داده شود و جابه جایی صورت نگیرد

PHP:
$myvariebale = $_GET['s'];
آیا از این روش می توان با
PHP:
$POST='Support.php'
$_SESSION['POS'] = $POST
;

به کار برد و با اینکلود صدا زد طوری که صفحه کاربر را جابجا نکند و فقط لینک تغییر دهد


سوال دوم این تابع فقط s را در حالت برابری یا = بررسی می کند

PHP:
$myvariebale = $_GET['s'];
اگر من بخواهم شرط دیگری برای گرفتن مقدار تععین کنم مثلا
PHP:
؟s:10 p:11
چگونه می شود
با تشکر

 
آخرین ویرایش:

Domanjiri

Well-Known Member
درود بر شما

شما توی ورد تایپ می کنید؟ بی زحمت قبل از ارسال، یه Ctrl+A بگیرید و فونت رو tahoma و اندازش رو 2 قرار بدین.

سوالی که مطرح میشه اینه که، خُب چرا ما بریم پیش support.php، اونو میاریم اینجا!!:green:

شما می تونید فایل support.php رو وارد برنامه کنید:
PHP:
// we are still in the index.php!
$my_variable = $_GET['s'];
if(isset($my_variable)){
require_once(dirname(__FILE__).'/'.$my_variable.'.php');
}

برای شما، بهترین راه همینه!

برای استفاده از session، باید قبلن یه جایی توی برنامه به session مقدار بدیم، مگه شما قبل از اینکه کاربر به اون آدرس بیاد می دونید که می خواد صفحه ساپورت رو ببینه؟! (فکر نکنید، نمی دونید!:green:)

موفق باشین
 

M_cover

Member

شما توی ورد تایپ می کنید؟ بی زحمت قبل از ارسال، یه Ctrl+A بگیرید و فونت رو tahoma و اندازش رو 2 قرار بدین.
:green:
دیدم شما تایپ اول را 3 بار خواندید گفتم کمی سلیقه به خرج بدم و زیبا بنویسم شاید ...در پاسخ گویی تاثیر گذار باشد

PHP:
می خواد صفحه ساپورت رو ببینه؟! (فکر نکنید، نمی دونید!

بله ما می دانیم کاربر کجا می رود چون ما داخل یک سیستم
login
می خواهیم این کار را انجام دهیم و امنیت لینک ها مهم است حتما طبق تعریف ما باید کاربر به جا های مختلف سایت دسترسی داشته باشد
اگر از آدرس بالا استفاده کند از صفحه لوگین خود خارج می شود و هم چنین با یک مقدار 1-0 صفحات را با
PHP:
$_SESSION


مقدار دهی کردیم تا از دسترسی غیر مجاز و اسپم جلوگیری شود:green:

شما توی ورد تایپ می کنید؟ بی زحمت قبل از ارسال، یه Ctrl+A بگیرید و فونت رو tahoma و اندازش رو 2 قرار بدین.
این تایپ را مطابق میل شما ارسال کردم :green:

بی نهایت تشکر از پاسختان:rose:
 

M_cover

Member
دوست عزیز اکنون من این کار را در یک فایل index.php انجام دادم
و تمام لینک ها به این فایل ارسال می شود
اگر بخواهم امنیت کد ها حفظ شود و یک کاری کنم که به هیچ وجه از این صفحه نتوان فرمان get
که برای دانلود فایل ها توسط نرم افزار های دانلود مسنجر ارسال میشود رد یا در یک حلقه آن را به یک صفحه دلخواه ریدایرکت کنیم
باید از چه کدی استفاده کنیم
 
دوست عزیز اکنون من این کار را در یک فایل index.php انجام دادم
و تمام لینک ها به این فایل ارسال می شود
اگر بخواهم امنیت کد ها حفظ شود و یک کاری کنم که به هیچ وجه از این صفحه نتوان فرمان get
که برای دانلود فایل ها توسط نرم افزار های دانلود مسنجر ارسال میشود رد یا در یک حلقه آن را به یک صفحه دلخواه ریدایرکت کنیم
باید از چه کدی استفاده کنیم

دوست عزیز پارسی خیلی ثلیث صحبت میکنید یکم سخته بفهمم منظوتون رو. اگه میشه یکم بیشتر توضیح بدید.
اینطور که من متوجه شدم شما تمام صفحه ها رو از حالت تک به تک ( filename جدا), در یک فایل لود کردید.
حالا منظور شما از امنیت کد ها چیه؟ منظورتون کد های HTML هست؟ اگه اینه هست, کد های HTML باید توسط Browser قابل خوندن باشن و زمانی که این امر انجام میشه, کپی کردنشون هم انجام پذیره. البته میتونید این پروسه رو با encrypt کردن کد دشوار تر کنید.
اگر منظورتون استفاده از آبجکت هایی مثل Flash در صفحه و لود کردن فایل هایی مثل موسیقی در اون هست, برای سخت تر کردن دانلود توسط Download Manager ها میتونید اون رو در یک استریم encrypt شده قرار بدید تا به صورت اتوماتیک قابل دانلود نباشند ( گرچه هر چیزی که client بتونه ببینه قابل دستیابی هست.)
اگه جواب مورد نظروتون این نبود, دلیلش اینه که سوال شما برای بنده مفهوم نبوده.

موفق باشید.
 

Domanjiri

Well-Known Member
درود بر شما

ابتدا اینکه: در مورد توصیه من راجع به فونت و ..، ممنون از شما، ولی شما باید توی ادیتور مجیدآنلاین Ctrl+A رو بگیرید و قلم رو tahoma و اندازه رو 2 قرار بدین( و نه توی ورد!)
بله ما می دانیم کاربر کجا می رود چون ما داخل یک سیستم
منظورم از دونستن، چیز دیگه ای هست. الان من توی مجیدآنلاین لاگین کردم، مجیدآنلاین ازکجا باید بدونه که من می خوام روی کدوم لینک از صدها لینکی که اینجا هست کلیک کنم؟ (پیچیدش نکنیم، بگذر دوست من!)
اگر بخواهم امنیت کد ها حفظ شود و یک کاری کنم که به هیچ وجه از این صفحه نتوان فرمان get
که برای دانلود فایل ها توسط نرم افزار های دانلود مسنجر ارسال میشود رد یا در یک حلقه آن را به یک صفحه دلخواه ریدایرکت کنیم
باید از چه کدی استفاده کنیم
برای جلوگیری از دسترسی مستقیم به فایل ها توی همین هفته چند بار در انجمن بحث شد

جلوگیری از دسترسی به صفحاتی که اینکلود می شوند

جلوگيري از اجراي مستقيم فايل ضميمه شده

و..

موفق باشید
 

M_cover

Member
ادیتور مجیدآنلاین Ctrl+A رو بگیرید و قلم رو tahoma و اندازه رو 2 قرار بدین( و نه توی ورد!)
دوست من من از همین ایدیتور مجید آنلاین استفاده کرده ام و من چون فونت Time new roman را دوست دارم اکثرا از این فونت استفاده می کنم به هر حال بگذریم ....:green:
صدها لینکی که اینجا هست کلیک کنم
دوست من ما سیستم لوگینی که داریم فقط دارای 10 لینک می باشد نه 100 ها ....
چون کاربر هم فقط مجبور به این کردیم که فقط با کلیک بر روی منو ها می تواند به آن صفحه دسترسی داشته باشد
فکر می کنم چیز ساده ایی باشد البته شما که استاد ما هستین باید این روش ها را بهتر بدانید دیگر نیاز به توضیح نیست ...

جلوگیری از دسترسی مستقیم
به نظر شما رمزگذاری صفحات وب اینکدر کد ها آیا راه حلی است که غیر قابل نفوذ است و هم چنین آیا شما دوست بزرگوار تا
حالا با این نرم افزار های اینکد و دیکد استفاده کردین و کلا چه نرم افزاری را پیشنهاد می کنید لایسن و مبلغ آن مهم نیست
مهم کیفیت کار است البته من طبق تحقیقاتی که کردم نرم افزار هایی به نام TFG و zend را برگذیدم اما اگر شما با این اینکدر ها کار کردین کدام یک را از نظر کیفیتی و امنیت انتخاب می کنید؟ ...
 

M_cover

Member
دوست عزیز پارسی خیلی ثلیث صحبت میکنید یکم سخته بفهمم منظوتون رو. اگه میشه یکم بیشتر توضیح بدید.
اینطور که من متوجه شدم شما تمام صفحه ها رو از حالت تک به تک ( filename جدا), در یک فایل لود کردید.
حالا منظور شما از امنیت کد ها چیه؟ منظورتون کد های HTML هست؟ اگه اینه هست, کد های HTML باید توسط Browser قابل خوندن باشن و زمانی که این امر انجام میشه, کپی کردنشون هم انجام پذیره. البته میتونید این پروسه رو با encrypt کردن کد دشوار تر کنید.
اگر منظورتون استفاده از آبجکت هایی مثل Flash در صفحه و لود کردن فایل هایی مثل موسیقی در اون هست, برای سخت تر کردن دانلود توسط Download Manager ها میتونید اون رو در یک استریم encrypt شده قرار بدید تا به صورت اتوماتیک قابل دانلود نباشند ( گرچه هر چیزی که client بتونه ببینه قابل دستیابی هست.)
اگه جواب مورد نظروتون این نبود, دلیلش اینه که سوال شما برای بنده مفهوم نبوده.

موفق باشید.


دوست من زمانی که کاربر اطلاعات را توسط Browser می خواند دسترسی به اطلاعات در بعضی از مرورگر ها
اپن سورس می شود و بعضی دیگر هم با نرم افزار های موجود تمام کد های سایت قابل مشاهد است
اگر ما یک بانک اطلاعاتی csv برای لود در سرویس لوگین کاربران داشته باشیم با دسترسی به آن تمام اطلاعات کاربران مشخص می شود برای این کار یا به طریق ساده تر اینکدر کد ها چه نرم افزار را پیشنهاد می کنید که از نظر امنیت و کیفیت بالاترین سطح را دارد حتی اگر بعدا کد ها غیر قابل دیکد باشد
من فقط می خواهم اطلاعات کد ها به هیچ وجه فاش نشود لایسن و هزینه هم مهم نیست ؟!!

 

M_cover

Member
جناب Domanjiri یک سوال در مورد پاسخ 3 از شما پرسیدم با کش دار شدن این بحث فکر می کنم فراموش کردین !!!!!
من از شما پرسیدم که برای تغییر حق شرط که در کد زیر شرط برابری و مساوی است قابل تغغیر است
PHP:
$myvariable = $_GET['s'];
مثلا اگر بخواهیم در این حالت فرض بگیریم :
PHP:
?s:10 P:11 i:45
به حالت بالا می توان مقادیر را با $_GET تشخیص داد
و البته در حالت & اگر بخواهیم این کاراکتر را تشخیص دهیم چگونه می شود مثلا می خواهیم
با همان دستور $_GET کاراکتر & را بگیریم و با آن به صفحه دیگری برویم مثلا
PHP:
؟s=Support&1220
با اجرای s=Support ما به
Support.php هدایت می شویم و با اجرای
Support&1220
ما به Massage1220.php هدایت می شویم
باتشکر
 

Domanjiri

Well-Known Member
درود بر شما

پارامتر هایی که قراره توسط url به برنامه تزریق بشن، توسط کاراکتر «&» از هم جدا میشن. مثال:
کد:
[LEFT]http://example.com/?var1=xxx&var2=yyy&..[/LEFT]
و در کد PHP:
PHP:
//exactly in the index.php
$my_var1 = $_GET['var1'];
$my_var2 = $_GET['var2'];
......
..

در حالت عادی شما نمی تونید از کاراکتر «&» به عنوان بخشی از مقدار یک پارامتر استفاده کنید (چه جمله سختی!). چون برنامه این کاراکتر رو به عنوان جدا کننده پارامترها می شناسه.

برای این مورد شما باید از توابعی مثل urlencode استفاده کنید که برای مثال «&» رو به «26%» تبدیل میکنه.
PHP:
echo urlencode('&');

موفق باشین
 

M_cover

Member
PHP:
echo urlencode('&');
اگر ما بخواهیم کاراکتر & را در حالت GET تشخیص دهیم مثلا در حالت معمولی کاراکتر & به عنوان یک جداگر عمل می کند به طوری که
اگر حتی &&&&&&&... تا از این کاراکتر هم باشد همان کار را انجام می دهد من می خواهم طوری این کاراکتر & را ما بتوانیم با تابع
$_GET تشخیص دهیم و آن را با توابع شرطی مانند if بررسی کنیم یعنی اگر یک کاراکتر & به کار برده شد تابع خوانده شود و اگر چند کاراکتر & بود خط قطع شود و به صفحه Error برود
 

Domanjiri

Well-Known Member
اگه منظورتون رو درست متوجه شده باشم، تکه کد زیر مشکلتون رو حل می کنه!

PHP:
<?php
$text = 'aslk%26%26sef%26';//you set GET's data

if (preg_match("/\\%26(\\%26)+/i", $text ) ) {   // Prevent &&, &&&, &&&& ,......
    echo "Invalid input!";
} else {
    echo " Ok! continue plz..";
}

موفق باشین
 

M_cover

Member
مشکلتون رو حل
داش مشکل من دقیقا همین متغیر text است
من تابعی می خواهم که بتواند تمامی کاراکتر های بعد از ؟ علامت سوال را بخواند
تا بتوانم با جملات شرطی بررسی کنم

با تشکر
 

Domanjiri

Well-Known Member
خب عزیز من، شما از همون GET_$ استفاده کنید، فقط همونطور که گفتم، به جای & توی لینک 26% رو قرار بدین
کد:
[LEFT]Http://example.com/?var=fadsf%26dfawdd%26fsdfd%26[/LEFT]
و حالا
PHP:
$text = $_GET['var'];

من دلیل اینکه از چند پارامتر توی Url استفاده نمی کنید رو نمی فهمم!: Http://example.com/?var=foo&var2=bar به راحتی می تونید با GET_$ به var و var2 دسترسی پیدا کنین

پیروز باشین
 

M_cover

Member
دلیل اینکه از چند پارامتر توی Url استفاده نمی کنید
دوست من از چند پارامتر استفاده کرده ام اما می خواهم بدانم راهی وجود دارد که کل محتویات بعد از ؟ علامت سوال را خواند
$text = $_GET['var'];
این دستور فقط مقادیر بعد از var را می خواند من می خواهم مقادیر کل علامت سوال بخوانم (...چه چیزا ..)
بزارید اینجوری توضیح بدهم : من یک آدرسی به این صورت دارم
Http://example.com/?var1=Support&var2=Page2&var3=50&data=10:10
آیا امکان دارد در حالت معمولی کل عبارات بعد از ؟ را خواند یعنی تابعی که به ما این را نشان دهد
var1=Support&var2=Page2&var3=50&data=10:10:green:
ما مقادیر var1-..var3 data نمی دانیم ...
باتشکر
 
دوست من از چند پارامتر استفاده کرده ام اما می خواهم بدانم راهی وجود دارد که کل محتویات بعد از ؟ علامت سوال را خواند
$text = $_GET['var'];
این دستور فقط مقادیر بعد از var را می خواند من می خواهم مقادیر کل علامت سوال بخوانم (...چه چیزا ..)
بزارید اینجوری توضیح بدهم : من یک آدرسی به این صورت دارم
Http://example.com/?var1=Support&var2=Page2&var3=50&data=10:10
آیا امکان دارد در حالت معمولی کل عبارات بعد از ؟ را خواند یعنی تابعی که به ما این را نشان دهد
var1=Support&var2=Page2&var3=50&data=10:10:green:
ما مقادیر var1-..var3 data نمی دانیم ...
باتشکر

$_GET یک آرایه هست.
PHP:
print_r($_GET);
میتونید به این صورت تمام variable ها رو بخونید:

PHP:
	function showget(){
	$count = count($_GET) - 1;
	$array = array_keys($_GET);
	$last = "";
	for ($i = 0; $i <= $count; $i++) {$now = $array[$i];
	if($i < $count){ $next = "&"; }else{ $next = "";};
	$last .= $now."=".$_GET[$now].$next;};
	return $last;};
	echo showget();
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا