PDA

View Full Version : سوال: مشکل با کوکی سرور



KouroshSharifi
پنج شنبه 29 اردیبهشت 1390, 19:04 عصر
سلام ، سایت من روی لوکال هاست به درستی کار می کنه اما وقتی اون رو آپلود می کنم با دو تا مشکل مواجه می شم :


setcookie("vote_saved", "1", time()+120);
if(isset($_COOKIE['vote_saved'])
{
echo "ok";
}
else
{
echo "Not Ok";
}
header("location:index.php");
exit();

روی لوکال هاست cookie به درستی ست می شه و صفحه به index.php منتقل میشه ، اما روی سرور وقتی وارد این پیج می شم هیچ چیزی اکو نمی شه ، نه ok و نه not ok و پیج هم redirect نمی شه .
باید بگم که قبل از این کدها یکسری کد دیگه هم هسا که مقادیری رو وارد دیتابیس می کنه که به درستی هم کار می کنه اما از این خط به بعد ظاهراً کدها اجرا نمی شن و اروری هم نمی ده .البته صفحات سایت روی root نیست و داخل یک فولدر هست .
ممنون می شم راهنمایی کنید .

ahmad.khaliq
جمعه 30 اردیبهشت 1390, 04:29 صبح
دوست عزیز
کد شما کاملا اشتباه است.
دقت کنید که کوکی ها به صورت هدر برای مرورگر ارسال میشن و زمانی ست میشن که صفحه به صورت کامل توسط مرورگر دریافت بشه.

در کد بالا زمانی که تابع setcookie رو اجرا میکنید، دستور ایجاد شدن کوکی رو برای مرورگر صادر کردید اما در همون لحظه که ایجاد نمیشه که شما بلافاصله پشت سرش چک میکنید که آیا وجود داره یا نه!!!!!!!!!!!!!!
شما باید کوکی رو در این صفحه ایجاد کنید و سپس کاربر رو بفرستید به یک صفحه دیگه و در اونجا وجود کوکی رو بررسی کنید.

KouroshSharifi
جمعه 30 اردیبهشت 1390, 19:03 عصر
دوست عزیز
کد شما کاملا اشتباه است.
دقت کنید که کوکی ها به صورت هدر برای مرورگر ارسال میشن و زمانی ست میشن که صفحه به صورت کامل توسط مرورگر دریافت بشه.

در کد بالا زمانی که تابع setcookie رو اجرا میکنید، دستور ایجاد شدن کوکی رو برای مرورگر صادر کردید اما در همون لحظه که ایجاد نمیشه که شما بلافاصله پشت سرش چک میکنید که آیا وجود داره یا نه!!!!!!!!!!!!!!
شما باید کوکی رو در این صفحه ایجاد کنید و سپس کاربر رو بفرستید به یک صفحه دیگه و در اونجا وجود کوکی رو بررسی کنید.

بله حق باشماست . مشکل کوکی حل شد . اما مشکل این هست فکر می کنم سرور با include مشکل داره ، چون وقتی کد ها رو از db_config در آوردم و توی کد های اصلی پیج کپی کردم و include رو حذف کردم مشکل حل شد . فکر نمی کنم مشکل از کد نویسی من بوده باشه و کد من باگ داشته باشه چون روی لوکال هاست درست کار می کنه ، اگر خطای سینتکسی یا منطقی داشت روی لوکال هاست هم باید ارور می داد .
db_config.php محل ذخیره تنظیمات ارتباط با DB هست . که وقتی اون رو include می کنم دیتا وارد db می شه اما صفحه redirect نمی شه .
این اصل کدها صفحه منه که redirect نمی شه : ( اما توی localhost درست کار می کنه )

<?php include("includes/db_config.php"); ?>
<?php
$vote = $_POST['polling'];
$vote_ip = $_GET['ip'];
$register_vote = mysql_query("INSERT INTO polling(vote,ip) VALUES('{$vote}','{$vote_ip}')",$connection);
confirm_query($register_vote);
setcookie("vote_saved", "1", time()+120);
header("location:index.php");
exit();
?>

اما توی این حالت redirect می شه و مشکلی نداره :


<?php
require_once("includes/db_connectivity_config.php");
require_once("includes/functions.php");
?>
<?php
$connection = mysql_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD);
mysql_query('set names "utf8"', $connection);
confirm_query($connection);
$sel_db = mysql_select_db(DB_NAME,$connection);

$vote = $_POST['polling'];
$vote_ip = $_GET['ip'];
$register_vote = mysql_query("INSERT INTO polling(vote,ip) VALUES('{$vote}','{$vote_ip}')",$connection);
confirm_query($register_vote);
setcookie("vote_saved", "1", time()+120);
header("location:index.php");
exit();
?>