PDA

View Full Version : سوال: بازشگت به عقب با php



behnamsayar
شنبه 13 مرداد 1397, 22:14 عصر
سلام
دوستان من یه سورس دارم به این صورت


$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$url = $_POST['url'];

if (strlen($name) == 0 ){header('Refresh: 2; url = $url');die("<div class=\"Error\">نام خود را وارد نمایید</div>");}


ولی ارور میده
میخام زمانی که ارور داد بشه به صورت خودکار بعد مدت زمان خاصی برگرده به صفحه قبلی
راهنمایی کنید لطفا
ممنون

marasiali
یک شنبه 14 مرداد 1397, 00:46 صبح
کد شما رو درست نفهمیدم مخصوصا که خط دوم خط اولو بی اثر میکنه ولی به طور کلی آدرس صفحه قبل از طریق


$_SERVER['HTTP_REFERER']

به دست میاد و میتونین مقدارش رو داخل تابع header استفاده کنین و درصورت نیاز تایم بهش بدین.

alireza378
یک شنبه 14 مرداد 1397, 02:47 صبح
نمیشه وسط صفحه از Header استفاده کرد. چون header ها قبلا ارسال شدن. شما باید با استفاده از جاوا اسکریپت اینکار رو انجام بدید.

behnamsayar
یک شنبه 14 مرداد 1397, 13:25 عصر
کد شما رو درست نفهمیدم مخصوصا که خط دوم خط اولو بی اثر میکنه ولی به طور کلی آدرس صفحه قبل از طریق


$_SERVER['HTTP_REFERER']

به دست میاد و میتونین مقدارش رو داخل تابع header استفاده کنین و درصورت نیاز تایم بهش بدین.


الان به صورت هدر و تایم دار بخام بزارم به چه صورت باید بزارم؟

marasiali
یک شنبه 14 مرداد 1397, 15:15 عصر
برا تایم دار که خودتون هم تو کدتون بود همون تیکه:


header('Refresh: 2; url = $url')

جای متغیر url از اونی که تو پست قبل گفتم استفاده میکنین ولی اگر هنگام ارور باشه آقای alireza378 درست میگن و فکر نکنم با php بشه و باید از جاوا اسکریپت استفاده کنین.

Farshid007
یک شنبه 14 مرداد 1397, 22:38 عصر
اگه بخوایین وسط صفحه از header استفاده کنید باید از ob یا همون output buffering کمک بگیرید

ولی به نظرم این کار با جاوااسکریپت انجام بشه بهرته مثل این:



<!DOCTYPE html>
<html>
<head>

<title>Page Title</title>

</head>
<body>
<?PHP
$error =true;
if($error){?>
<p>Error you will back soon :(</p>
<script>
function backWindow(){
window.history.back()
}
setTimeout(backWindow,5000);
</script>
<?PHP }
?>
</body>
</html>

marasiali
دوشنبه 15 مرداد 1397, 00:42 صبح
ممنون میشم راجع به روش ob هم اطلاعاتی در اختیارمون بذارین. من با ob خیلی جزئی کار کردم در حد اینکه استارت بزنم و بعد چاپ شده ها رو متغیر کنم تحویل بگیرم ولی راجع به ربطش به این موضوع اطلاعی ندارم.

Farshid007
پنج شنبه 18 مرداد 1397, 18:30 عصر
ربطش به این موضوع تو ارسال هدر میشه
هدر ها چیزهایی هستند که با خروجی که از سمت سرور ارسال میشه ارسال میشن مثل نوع فایل مثل پروتکل و خیلی اطلاعات دیگه
وقتی که خروجی ارسال شد یعنی هدر هم ارسال شده دیگه نمیشه از هم جدا باشن
بعد شما فکر کن خروجی رو ارسال کنیم تموم شه بره بعد بریم چند تا هدر هم ارسال کنیم :/ خب نمیشه دیگه
وقتی که output buffering فعال میکنیم کل خروجی هایی که قرار ارسال بشه رو نگه میداره به اصطلاح بافر میکنه و در اخر که همه کارمون تموم شد هدر ها هم مشخص شدن بعد همرو از بافر میفرسته سمت خروجی

البته من برنامه نویس فرانت هستم شاید یکم اماتوری توضیح داده باشم با عرض پوزش