PDA

View Full Version : مشکل با redirect کردن صفحه



bade saba
سه شنبه 15 فروردین 1391, 14:35 عصر
سلام
من یه فایل دارم که یه سری توابع برنامه داخلش هست، مسئله اینه که وقتی آدرس این فایل به شکل مستقیم تایپ میشه کرچه چیزی نشون نمیده و page source خالیه اما من میخام وقتی آدرس مستقیم تایپ میشه کلا بره به صفحه اصلی اما وقتی از کد
<? header('Location: /index.php'); ?>
استفاده میکنم وقتی این فایل رو هر جا include میکنم اون صفحه ها هم همه کاربر رو به صفحه اصلی میفرستند.

چه راهی وجود داره که این مشکل حل بشه؟؟؟؟

کد صفحه تقریبا اینه

<?php
header("location: ../index.php");

function func1()
{
codes;
}
function func2()
{
codes;
}
function func3()
{
codes;
}
?>

djsaeedkhan
سه شنبه 15 فروردین 1391, 19:06 عصر
سلام
شما یه متغیر در نظر بگیر و آدرس سایت رو در اون قرار بده
بعد هر وقت خواستی بگی برو به فلان صفحه ، اول اون متغیر رو بزار و بعد آدرس ادامه رو قرار بده.
اینجوری اگر کدت رو به جای دیگری هم منتقل کنی باتغییر یک خط کد همه آدرس هات درست میشه


$SiteDir="localhost/site/";
header("location:".$SiteDir."page/123");

bade saba
چهارشنبه 16 فروردین 1391, 10:50 صبح
سلام

شاید من سوالم رو با توضیح مناسب بیان نکردم اما منظور من چیزی که شما فرمودید نیست. من مشکلم اینه که میخوام وقتی کاربر به شکل مستقیم در browser آدرس samplesite.com/phpclass/func.php رو تایپ میکنه منتقل بشه به صفحه index.php اما وقتی این پیج func.php تو فایلهای دیگه include میشه این اتفاق برای اون صفحه که این فایل در اون include شده نیفته اما به این صورت که من در بالا آوردم اگه پیاده کنیم این وضعیت پیش میاد و در هر دو حالت کاربر به صفحه اصلی سایت منتقل میشه

mtchabok
چهارشنبه 16 فروردین 1391, 11:54 صبح
شما بهتره که از یه ثابت در فایل اصلیتون استفاده کنین و در فایلهایی که انکلود میشن موجودیت ثابت رو چک کنین .
به عنوان مثال در فایل index.php دارای محتویات زیر هس :

<?php
define( 'SECURE', true);
include __DIR__ . '/script.php';

خوب در کنار فایل بالا یه فایل دیگه با نام script.php میزارم که نمی خوام مستقیم کاربر بازش کنه به همین دلیل در داخلش این کدها رو مینویسم :

<?php
if(!defined( 'SECURE' )){
header('Location: ./index.php');
exit;
}

همین .
این بهترین روش برای جلوگیری از اجرای مستقیم فایل توسط کاربر هست .

MMSHFE
چهارشنبه 16 فروردین 1391, 12:38 عصر
<?php
if(realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME')) {
header('location: ../index.php');
}

function func1()
{
codes;
}
function func2()
{
codes;
}
function func3()
{
codes;
}
?>

به همین سادگی.

bade saba
چهارشنبه 16 فروردین 1391, 13:24 عصر
<?php
if(realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME')) {
header('location: ../index.php');
}

function func1()
{
codes;
}
function func2()
{
codes;
}
function func3()
{
codes;
}
?>

به همین سادگی.

ممنون مشکل حل شد اما من نفهمیدم این کد دقیقا داره چی کار میکنه و چرا مشکل حل شد اگه ممکنه یه توضیح هم بدید

MMSHFE
چهارشنبه 16 فروردین 1391, 15:07 عصر
شرطی که گذاشتم مسیر فایلی که کد توش قرار داره رو با مسیر اسکریپتی که توسط مرورگر درخواست شده و درحال اجرا هست مقایسه میکنه و اگه این دو مسیر با هم برابر باشن یعنی اینکه فایل مستقیماً درخواست شده و کاربر به صفحه index.php هدایت میشه.
موفق باشید.

miladhash
جمعه 08 اردیبهشت 1391, 15:09 عصر
اقای mmshfe من یک فرم دارم که تو html نوشته شده وقتی ارسال فرم رو می زنم صفحه سفید میشه ولی ایمیل برام ارسال میشه
می خواست ببینید مشکل این 2 فایل php از کجاست؟

http://up.p3s.ir/uploads/13355237711.rar

MMSHFE
جمعه 08 اردیبهشت 1391, 20:36 عصر
فایل ضمیمه رو دریافت کنید.
ضمناً همیشه تگ PHP رو بصورت کامل بنویسید.
موفق باشید.

miladhash
شنبه 09 اردیبهشت 1391, 02:26 صبح
فایل ضمیمه رو دریافت کنید.
ضمناً همیشه تگ PHP رو بصورت کامل بنویسید.
موفق باشید.
آقا بازم کار نکرد :گریه:
جالبیش اینکه با فایر فاکس 3.6 فرم کار می کنه اما با فایر فاکس جدید یا با کروم باز صفحه سفید میاد نمی دونم مشکل از کجاست

MMSHFE
شنبه 09 اردیبهشت 1391, 12:44 عصر
والا واسه من که کار کرد.

miladhash
شنبه 09 اردیبهشت 1391, 16:32 عصر
والا واسه من که کار کرد.
وقتی تو سرور میریزم باید تنطیم خاصی بکنم یا چی؟

MMSHFE
شنبه 09 اردیبهشت 1391, 16:44 عصر
کار خاص که نه، فقط باید تنظیمات SMTP رو انجام بدین و سرورتون هم امکان ارسال ایمیل داشته باشه. درهرحال باید از نزدیک (روی خود سرور) اوضاع بررسی بشه. اینطوری ندیده نمیتونم دقیقاً بگم مشکل از کجاست. موفق باشید.

miladhash
شنبه 09 اردیبهشت 1391, 17:18 عصر
کار خاص که نه، فقط باید تنظیمات SMTP رو انجام بدین و سرورتون هم امکان ارسال ایمیل داشته باشه. درهرحال باید از نزدیک (روی خود سرور) اوضاع بررسی بشه. اینطوری ندیده نمیتونم دقیقاً بگم مشکل از کجاست. موفق باشید.
id تونو لطف می کنید بهم بدید کارتون دارم

MMSHFE
شنبه 09 اردیبهشت 1391, 17:23 عصر
با سلام، حقیقتش با یاهو کار نمیکنم ولی ایمیلم هست (mmshfe@gmail.com). اگه سؤالی بود در خدمتم. موفق باشید.

miladhash
شنبه 09 اردیبهشت 1391, 18:32 عصر
با سلام، حقیقتش با یاهو کار نمیکنم ولی ایمیلم هست (mmshfe@gmail.com). اگه سؤالی بود در خدمتم. موفق باشید.
کارم در مورد php نیست در مورد مدیریت سایت می خواستم حرف بزنم

miladhash
شنبه 09 اردیبهشت 1391, 18:41 عصر
کارم در مورد php نیست در مورد مدیریت سایت می خواستم حرف بزنم
منظورم همکاری در انجمن ما بود اگه می خواین همکاری کنین به من خبر بدین

MMSHFE
شنبه 09 اردیبهشت 1391, 19:28 عصر
ممنون از نظر لطفتون ولی حقیقتش همینجا هم زیاد نمیرسم در خدمت دوستان باشم. چه برسه به انجمن جدید. اگه در توانم باشه، بدون اینکه پست خاصی داشته باشم اونجا هم همکاری خواهم داشت ولی قول قطعی نمیتونم بدم. امیدوارم خدای نکرده به حساب کلاس گذاشتن و... نگذارین چون منظورم این نیست. فقط نمیخوام یک موقع قول همکاری بدم و بعد فرصت کافی نداشته باشم و بدقول بشم. موفق باشید.