در مورد راه سوم یکی توضیح میده؟
یه hexadecimal editorمعرفی میکنید ؟
داستان ما این هست :
یه فرمی دارم که یوزر و پسورد رو باهاش وارد میکنه و بعد از یه اسکریپت واسه چک با دیتا بیس استفاده میکنه من حالت خوب رو در نظر میگیرم که کاربر همه چیز رو درست وارد کرده بعدش این if سشن رو ست میکنه و بعدم یه هدر میفرسته به مرورگر و میره صفحه بعد این کد این if :
count هم تعداد row های موجود با اون یوزر و پس در دیتابیسه !
PHP:
if($count==1){
session_start();
session_register("myusername");
session_register("mypassword");
header("Location: index-2.php");
}
تا اینجا همه چیز درست اجرا میشه اما صفحه بعد که میخوام موجودیت سشن رو
چک کنم با کد های زیر دچار این وارنینگها میشم :
PHP:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2
حالا با اینکه هیچ فاصله بین session_start با معرف php نیست این مشکل هست نمیدونم چی output داره میشه ؟
این کد صفحه ای که گفتم وظیفه چک کردن این موضوع رو داره باید بگم که قبل از هیچ کد و فاصیه کد زیر در صفحه هست :
PHP:
<?
session_start();
if(!session_is_registered(myusername)){
header("location: index.php?prob=3");
exit;
}
?>
بعد از این وارنینگ صفحه و کد های دیگه به درستی اجرا میشه.
حالا داستان این جا قشنگ میشه که اگر سر زده بدون ست شدن سشن ها این صفحه رو باز کنید if میخواد اجرا بشه و گل بود سبزه هم میاد وسط !
PHP:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/ebrahimi/public_html/CP/index-2.php:1) in /home/ebrahimi/public_html/CP/index-2.php on line 4
خود تابع سشن استارت به نوعی هدر داره و آی دی جلسه رو از این راه میگیره ولی نمیدنم قبلش تو این صفحه چی داره هدر میشه
که اجازه نمیده اجرا بشه اون سشن.