اگه php بلد هستین؛ کمک کنید.

Ahmad.khaliq

New Member
سلام دوستان.

من یه مشکل کوچولو دارم! و مثل (...) تو گل گیر کردم!!!

من روی کامپیوتر خودم یک سرور دارم که php5.2.5 رو داره و مای اس کیو ال هم داره. اسم این سرور usbWebServer هستش که حجم کمی هم داره.
اما مشکل کجاست؟

من کدی نوشتم که روی کامپیوتر خودم (با این سرور کوچولو )به درستی کار میکنه ؛ اما وقتی آپلود میکنم رو سایتم خطا میده.

اسم این صفحه indextest.php است و سورسش به شکل زیر هستش:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test page</title>
<style type="text/css">
<!--
.texts {font-family: tahoma;font-size: 12px;}
a:link {
 text-decoration: none;
 color: #000000;
}
a:visited {
 text-decoration: none;
 color: #000000;
}
a:hover {
 text-decoration: none;
 color: #000099;
}
a:active {
 text-decoration: none;
 color: #000000;
}
.style4 {font-family: tahoma; font-size: 10px; }
-->
</style>
</head>
<body>
<div align="center">
  <?php
// check if user is loged in or not
checklogin();
if (empty($_GET["task"])){main();}
elseif($_GET["task"]=="main"){main();}
elseif($_GET["task"]=="logout"){logout();}
#############################################################################
// the logout function
function logout(){
setcookie("ُStatus", ""); 
setcookie("AdminID", "");
setcookie("AdminName", "");
setcookie("AdminMail", "");
setcookie("Adminlevel", "");
setcookie("AdminUSERName", "");
}
// end function
#############################################################################
// start check login cookie
function checklogin(){
if (empty($_COOKIE["ُStatus"])){
header("location:login.php");
}}
// end function
#############################################################################
// the main page
function main(){
print "Welcome to main page";
}
// end function
#############################################################################
// Finished!
?>
</div>
</body></html>


همونطور که گفتم رو کامپیوتر خودم درست کار میکنه ولی روی سرور این خطا به نمایش در میاد:

Warning: Cannot modify header information - headers already sent by (output started at /public_html/test/indextest.php:6) in /public_html/test/indextest.php on line 55
Welcome to main page​


در خط 55 این عبارت وجود داره:
PHP:
[LEFT]header("location:login.php");   //this code is on line 55[/LEFT]
 
آخرین ویرایش:

I.NoBody

Active Member
ساده بگم.
قبل از استفاده از تابع header نباید خروجی داشته باشی.
شما کلی کد HTML توی صفحه ات هست. بعدش از header استفاده میکنی.
این مشکل شماست
 

mosi20

Active Member
به خدا اگه یه سرچ توی گوگل یا همین جا میزدیم 200 تا تاپیک با همین اررور پیدا میکردی
Cannot modify header information - headers already sent by
 

mosi20

Active Member
به خدا اگه یه سرچ توی گوگل یا همین جا میزدیم 200 تا تاپیک با همین اررور پیدا میکردی
Cannot modify header information - headers already sent by
 

yakoza

Well-Known Member
به جای هدر از جاوا اسکریپت استفاده کن برای ریدایرکت کردن

PHP:
function checklogin(){
if (empty($_COOKIE["ُStatus"])){
echo "<script type='text/javascript'>window.location.href='login.php'</script>";
}}
 

peyman1987

Member
همونطور که دوستان گفتن نباید قبل از فرستادن هدر چیزی ( حتی تگ <html> ) هم توی صفحه چاپ شده باشه.
برای رفع مشکل هم دو راه دارین.

1- یا هدر رو ببرین بالای صفحه تون ( اگه مقدور هست )
2- یا همونطور که saidshp گفت اول کد از تابع ob_start(); و آخر کدتون از تابع ob_end_flush(); استفاده کنین.
 

Ahmad.khaliq

New Member
سلام دوستان خوبم
از راهنمایی های همتون متشکرم. به یاری خدا تونستم مشکل رو برطرف کنم.

پیروز باشید.
 

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

بالا