PDA

View Full Version : مشکل در کد های لاگین



hamidhassas
جمعه 03 خرداد 1392, 13:32 عصر
من سرور خودم رو تغییر دادم حالا زمانی که میخوام لاگین گنم پیغام زیر نمایش داده میشه در صورتی که همین کد در سرور قبلی بدون مشکل کار میکرد علت چیه در صورتی که کد ها روی کامپیوتر خودم درست کار میکنه؟



Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 151

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 151

Warning: Cannot modify header information - headers already sent by (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 338


جواب:


<?php session_start(); ob_start() ?>
<!DOCTYPE HTML PUBliC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />


</head>

<body>



</body>
</html>

MRmoon
جمعه 03 خرداد 1392, 17:02 عصر
1 - تابع ob_start() در اول فايل و ob_end_flush() رو در انتهاي فايل فراخواني كنيد.
2 - پشت session_start() يك @ بگذاريد.
3 - اررور ريپورتينگ رو 0 كنيد.

hamidhassas
شنبه 04 خرداد 1392, 10:40 صبح
کد های فایل fg_membersite.php


در فایل fg_membersite.php قبل از session_start() که به صورت
[PHP]
if(!isset($_SESSION)){ session_start(); }

نوشته شده بود @ اضافه شد


if(!isset($_SESSION)){ @session_start(); }


پیغام زیر رفع شد


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 151 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 151
و در ابتدا و انتها دو تابع گفته شده اضافه شد اما
ارور زیر باقی موند


Warning: Cannot modify header information - headers already sent by (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 338

hamidhassas
یک شنبه 05 خرداد 1392, 10:51 صبح
کسی نسیت کمک کنه؟

MRmoon
یک شنبه 05 خرداد 1392, 13:18 عصر
چرا شما تو هر تابع يه بار session_start() رو فراخواني كرديد؟

يه بار فراخواني كافيه ديگه.

hamidhassas
دوشنبه 06 خرداد 1392, 00:02 صبح
خطای خط 338 مربوط به فایل fg_membersite.php


function RedirectToURL($url)
{
header("Location: $url");
exit;
}


این تابع در فایل index.php به صورت زیر فراخوانی میشه



<?PHP
require_once("membersite_config.php");
if(!$fgmembersite->CheckLogin())
{
$fgmembersite->RedirectToURL("login.php");
exit;
}
?>


لازم به گفتن است که کل پروژه روی لوکال بدون مشکل کار میکنه ولی از زمانی که روی سرور جدید قرار گرفته از کار افتاده

به نظر شما چیزی نباید روی هاست فعال و یا غیر فعال بشه تا درست بشه؟

hamidhassas
دوشنبه 06 خرداد 1392, 15:09 عصر
:گریه::گریه::گریه:

hamidhassas
سه شنبه 07 خرداد 1392, 09:20 صبح
میشه بیشتر در مورد 1 - تابع ob_start() در اول فايل و ob_end_flush() رو در انتهاي فايل فراخواني كنيد.
و
3 - اررور ريپورتينگ رو 0 كنيد
توضیح بدین

خطای خط 338 مربوط به فایل fg_membersite.php


function RedirectToURL($url)
{
header("Location: $url");
exit;
}


این تابع در فایل index.php به صورت زیر فراخوانی میشه



<?PHP
require_once("membersite_config.php");
if(!$fgmembersite->CheckLogin())
{
$fgmembersite->RedirectToURL("login.php");
exit;
}
?>


لازم به گفتن است که کل پروژه روی لوکال بدون مشکل کار میکنه ولی از زمانی که روی سرور جدید قرار گرفته از کار افتاده

به نظر شما چیزی نباید روی هاست فعال و یا غیر فعال بشه تا درست بشه؟

MRmoon
سه شنبه 07 خرداد 1392, 09:22 صبح
نگا من گفتم ob_start() و ob_end_flush() رو در اول و انتهاي ايندكس فراخواني كن.

hamidhassas
چهارشنبه 08 خرداد 1392, 10:16 صبح
نگا من گفتم ob_start() و ob_end_flush() رو در اول و انتهاي ايندكس فراخواني كن.

اضافه کردم اما هنوز ارور میده؟

Cannot modify header information - headers already sent by (output started at /home3/hassasco/public_html/index.php:1) in /home3/hassasco/public_html/fg_membersite.php on line 338

این نکته رو هم بگم وقتی یوزر و پسورد رو میزنم لاگین صورت میگیره اما صفحه که از login.php هست به index.php تغییر نمیکنه و اگه وقتی یوزر و پسورد رو وارد کردم و بعد ارور که نمایش داده شد به صورت دستی آدرس index.php رو وارد کنم وارد سیستم میشه

یک نکته دیگه هم اینکه فایل های دیگه که کد در اون ها هست رو وقتی فراخوانی میکنم اگر کاربر لاگین نکرده باشه به درستی کاربر رو منتقل نمیکنن به login.php اما فقط فایل index.php مشکل نداره و عمل نمیکنه چند بار هم کد نویسی رو از اول انجام دادم ولی باز نشد چرا
کلا تابع زیر کار نمیکنه چرا نمیدونم


function RedirectToURL($url) {
header("Location: $url");
exit;
}

hamidhassas
چهارشنبه 08 خرداد 1392, 17:05 عصر
این شرط رو نمیشه به یک صورت دیگه نوشت

saeidpsl
چهارشنبه 08 خرداد 1392, 20:45 عصر
بفرما:چشمک:
این فایل کاملآ فیکس شده .
یا بهتر بگم



Any HTML output, including the DOCTYPE declaration or any HTML tag, including the head of the page
Extra whitespace before the opening PHP tag of the page, or outside the PHP tags of an include file
Using print() or echo before calling header() or session_start()
Using virtual() to include files
Using the byte-order mark (BOM) at the beginning of a page

hamidhassas
پنج شنبه 09 خرداد 1392, 09:57 صبح
بفرما:چشمک:
این فایل کاملآ فیکس شده .
یا بهتر بگم



Any HTML output, including the DOCTYPE declaration or any HTML tag, including the head of the page
Extra whitespace before the opening PHP tag of the page, or outside the PHP tags of an include file
Using print() or echo before calling header() or session_start()
Using virtual() to include files
Using the byte-order mark (BOM) at the beginning of a page


ممنون مشکلم حل شد
چرا وقتی من <?php session_start(); ob_start() ?> رو به کد هام اضافه میکردم کار نمیکرد؟

اصلا فایل فیکس شده چیه و چطور میشه ایجادش کرد و چه اهمیتی داره؟

saeidpsl
پنج شنبه 09 خرداد 1392, 12:19 عصر
شما وقتی یک فایل رو از encoding ANSI به encoding utf-8 تغییر میدی بعضی کارکترها هست دیده نمییشه و همون ها باعث میشه هدر ارسال نشه
و بهترین روش اینه با Notepad++ فایل رو از از اول با encoding utf-8 سیو کنی که مشکل پیدا نکنه