PDA

View Full Version : مشکل session



hd2010hd
سه شنبه 02 دی 1393, 00:24 صبح
سلام خدمت اساتید عزیز ما یه فایل index.php داریم که کد نویسی شده

کد اول فایل اینجوریه :


وقتی اجرا میکنیم این ارور ها رو میده :




text/x-generic error_log
ASCII text, with very long lines

PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/....../public_html/shop/index.php:1) in /home/...../public_html/shop/index.php on line 2

PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/........../public_html/shop/index.php:1) in /home/..../public_html/shop/index.php on line 2

PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/....../public_html/shop/index.php:1) in /home/...../public_html/shop/index.php on line 2




اول کد index.php هم اینه :



<?php
if(!isset($_SESSION)) { session_start(); }
ob_start();
include 'funcs/connect.php';
include 'funcs/funcs.php';
?>



ممنون میشم راهنماییم کنید

siamak_rp
سه شنبه 02 دی 1393, 02:56 صبح
فرمت صفحه رو بکن without BOM
ارورت میگه که یه چیزی داره فرستاده میشه، که ظاهرن میگی کد اوله و چیزی ارسال نمیشه پس مشکل می تونه از فرمت باشه

hd2010hd
سه شنبه 02 دی 1393, 10:10 صبح
فرمت صفحم without BOM هستش . فکر کنم مشکل از چیز دیگه ای باشه

phpdev
سه شنبه 02 دی 1393, 10:41 صبح
فبل از sesssion_start هیچ چیزی نباید باشه و فکر کنم داری یه چیزی قبل از اون توی صفحه به هیدر ارسال میکنی:متفکر:

چرا استارتر سشن رو توی شرط گذاشتی؟

hd2010hd
سه شنبه 02 دی 1393, 11:40 صبح
چون پنل کاربر تو همون صفحه اول هست بعد از لاگین فعال میشه

اگه کد اشتباهه کد درستشو میشه قرار بدین و اینکه این کد توی یه فروشگاه اسنفاده میشه

id1385
سه شنبه 02 دی 1393, 11:56 صبح
if (session_id() == '') {
session_start();
}

// sample use
$_SESSION['POST_'.$post_id] = time() + (5*60);




هدرها رو چک کن ببین چیزی فرستاده شده ؟

var_dump(headers_sent());

foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}

hd2010hd
سه شنبه 02 دی 1393, 12:54 عصر
هدر رو چک کردم اینم عکسش

126834

id1385
سه شنبه 02 دی 1393, 15:30 عصر
یه بار توی ایندکس فقط همینو بزار، اینجا که چیزی نشون نداده، ممکنه از یه جای دیگه استارت شده باشه یا سند شده باشه، یه بار به شکل زیر استفاده کن اگه خطا نداد باید موارد دیگه رو امتحان کنی

فقط همینو بزار توی فایل ایندکس:





if (session_id() == '') {
session_start();
}

var_dump($_SESSION);

hd2010hd
سه شنبه 02 دی 1393, 17:46 عصر
دقیقا کدی که گفتین رو فقط گذاشتم نو index.php

جوابش این شد

array (size=0)
empty

siamak_rp
چهارشنبه 03 دی 1393, 04:34 صبح
کدتو چک کن ببین هیچ فاصله ای ( اسپیس ) نداشته باشه قبل از شروع باز کردن php?>

mojtabamalaekeh
پنج شنبه 04 دی 1393, 00:39 صبح
سلام
توی w3schools تأکید کرده session_start قبل از هر دستوری باشه حتی قبل از DOCTYPE
بلد نیستم مشکل شما رو حل کنم فقط خواستم بپرسم چرا برای session_start شرط گذاشتین؟