نمایش نتایج 1 تا 31 از 31

نام تاپیک: روشی به جای استفاده از سشن در php (حل شد)

  1. #1

    Question روشی به جای استفاده از سشن در php (حل شد)

    سلام دوستان
    سایتی رو طراحی کردم که تو بعضی از صفحات اون اجبارا از سشن استفاده کردم . تا چند روز پیش سایت به درستی کار میکرد ولی چند روزه مشکل داره و اون هم اینه که سشن ها مقدار میگیرن و در همون صفحه چاپ میشن ولی تو بقیه صفحات مقدار ندارن و صفرهستن.
    حالا برای این مشکل راه حلی هست یا نه؟
    میشه از متغیر استفاده کرد ؟ (آخه متغیر عمومی هم فکر کنم فقط توی یه صفحه شناخته شدس )

    با تشکر از دوستانی که راهنمایی میکنن

    ممنون.........................

  2. #2

    نقل قول: روشی به جای استفاده از سشن در php

    کدهاتون رو بزارید.(هم صفحه ای که سشن چاپ میشه و هم صفحه ای که سشن مقدار نداره)

  3. #3
    کاربر دائمی آواتار Reza1607
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    يه جايي تو مشهد
    پست
    969

    نقل قول: روشی به جای استفاده از سشن در php

    احتمالا تو صفحاتي كه سشن مقدر نداره يا صفر سشن رو استارت نكرده باشيد

  4. #4

    نقل قول: روشی به جای استفاده از سشن در php

    ممنون از همکاریتون ولی سشن ها فقط توی یه صفحه نیست که بخوام براتون بزرام . اگه ممکنه فقط بگین که چطور میشه این مشکلو برطرف کرد آخه قبلا همین دستورا کار میکردن توی لوکال هاستم کار میکنه به نظرتون مشکل از هاسته؟؟؟؟؟؟؟؟/

  5. #5

    نقل قول: روشی به جای استفاده از سشن در php

    چرا سشن استارت شده ولی بازم کار نمی کن

  6. #6

    نقل قول: روشی به جای استفاده از سشن در php

    خواهش میکنم یکی جواب بده خیلی فوریه....................خواهش

  7. #7

    نقل قول: روشی به جای استفاده از سشن در php

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

    در ضمن از کوکی هم میشه استفاده کرد ولی کاربر میتونه کوکی ها رو تغییر بده

  8. #8

    نقل قول: روشی به جای استفاده از سشن در php

    آخه مشکل اینجاس که کوکی هم جواب نمیده . متغیری مثل سشن وجود داره آیا؟؟؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ایران، شیراز، ... ، خونمون، روبروی مانیتور
    پست
    539

    نقل قول: روشی به جای استفاده از سشن در php

    شاید مثلا آدرس جایی رو که سشن ذخیره میشه با www وارد میکنید و جایی بدون آن چک میکنید
    چون سشن هایی که توسط www.site.com ذخیره میشن توسط site.com قابل خوندن نیستن (همچنین کوکی)

  10. #10

    نقل قول: روشی به جای استفاده از سشن در php

    نقل قول نوشته شده توسط AbiriAmir مشاهده تاپیک
    شاید مثلا آدرس جایی رو که سشن ذخیره میشه با www وارد میکنید و جایی بدون آن چک میکنید
    چون سشن هایی که توسط www.site.com ذخیره میشن توسط site.com قابل خوندن نیستن (همچنین کوکی)
    تا جایی که من میدونم سشن یه متغیره که توش مقدار میریزیم مثل کد زیر:

    $session['sum']=10;
    wwwیعنی چی؟

  11. #11

    نقل قول: روشی به جای استفاده از سشن در php

    بهترین کاری که من پیشنهاد می کنم به خودتون کمک میکنه این هست که مقداری از کدتون رو که نشون بده که کاری که انجام میشه چی هست و یا الگوریتم کاری که دارید انجام میدید رو به دوستان نشون بدید
    و یا اینکه سعی کنید یک نسخه ی ساده از اون چیز بزرگی که روی سایت دارید رو یک بار دیگه پیاده کنید و اینجا روش بحث کنید

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

  12. #12
    کاربر تازه وارد آواتار Yuness Mehdian
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    Global Village
    سن
    37
    پست
    75

    نقل قول: روشی به جای استفاده از سشن در php

    خطایی هم صادر میشه؟

  13. #13

    نقل قول: روشی به جای استفاده از سشن در php

    نقل قول نوشته شده توسط Yuness Mehdian مشاهده تاپیک
    خطایی هم صادر میشه؟
    نه فقط سشن توصفحه دیگه ای که می خوام چاپ بشه مقدار نداره

  14. #14
    کاربر تازه وارد آواتار Yuness Mehdian
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    Global Village
    سن
    37
    پست
    75

    نقل قول: روشی به جای استفاده از سشن در php

    توصیه میکنم فایلهاتون رو بصورت UTF-8 without BOM ذخیره کنید ، و تست کنید چون در غیر این صورت session به درستی اجرا نمیشه و امکان داره سرور خطاها رو نشون نده

  15. #15

    نقل قول: روشی به جای استفاده از سشن در php

    دوست گرامی، سشن به اون شکلی که شما نوشتین درست نیست. این مثال رو ببینید:

    session_start();
    $_SESSION['user'] = 'ali';

    دقت کنید که اسم آرایه SESSION_$ هست (دقیقاً به همین شکل با Underline و تماماً با حروف بزرگ)

  16. #16
    کاربر دائمی
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ایران، شیراز، ... ، خونمون، روبروی مانیتور
    پست
    539

    نقل قول: روشی به جای استفاده از سشن در php

    www منظور آدرس سایتتون هست
    مثلا دو آدرس زیر به سشن های هم دسترسی ندارن:

    http://example.com
    http://www.example.com


    مثلا ممکنه هنگام مقدار دهی سشن شما آدرس سایت را با www وارد کرده باشید و صفحه ای که سشن در آن مقدار ندارد بدون www ( یا برعکس )

  17. #17

    نقل قول: روشی به جای استفاده از سشن در php

    سلام
    احتمال زیاد شما کار با سشن ها رو کامل متوجه نشدین چون چیز خاصی نداره
    نکته اول:
    تابع session_satart() رو در خط اول در تمام صفحات بنویسید

    نکته دوم:
    نحوه بکارگیری متغییر های سشن رو دقت کنید
    یکی از کدهای صفحه ای که سشن رو صفر نشون میده اینجا بزارید برای بررسی

  18. #18

    نقل قول: روشی به جای استفاده از سشن در php

    این نمونه کد بخش مهم کد که سشن مقدار گرفته و باید نمایش داده شود می باشد.
    در صفحه reserv_room.php کد های زیر اجرا می شود ...

    session_start();
    ....
    <script src="fanction.js" type="text/javascript"></script>
    ......
    نوع فولبرد :<select name="ty" id="ty" onchange="y()" >
    <option value="0">منوی انتخابی</option>
    <option value="1">منوی باز </option>
    <option value="2">منوی بسته</option>
    </select><br /><br />
    <div id="bord" style=" width:530px; " >

    </div>
    با انتخاب هر یک از مقادیر منوی باز ...
    تابع y() فراخوانی می شود از فایل function.js که به شرح زیر است..
    function y()

    {

    if (window.XMLHttpRequest)

    x=new XMLHttpRequest();

    else if(window.ActiveXObject)

    x=new ActiveXObject("Microsoft.XMLHTTP");

    else

    alert("Ajax No Support");



    //alert(document.getElementById("slcg").value);

    var url,j;

    url="show_type.php";
    var params="name="+(document.getElementById("ty").valu e)+'/'+(document.getElementById("w").value) +'/'+(document.getElementById("sdate").value)+'/'+(document.getElementById("edate").value);


    x.open("post",url,true);

    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    x.setRequestHeader("Content-length", params.length);

    x.onreadystatechange =a;

    x.send(params);

    }

    function a()

    {



    if (x.readyState==4)

    {



    document.getElementById("bord").innerHTML=x.respon seText;



    }


    }
    و توسط فایل ajax به صفحه show_type.php می رود
    که متغیر session در این صفحه مقدار دهی می شود.
    صفحه show_type.php
    session_start();
    $_SESSION['sum1']=10;
    که در اینجا با توجه به تابع ajax a() در div با
    id=bord مقدار سشن نمایش داده می شود
    ولی در صفحه بعدی reserve_room.php که بعد از div مجددا سشن را فراخوانی کردم سشن مقدار ندارد.
    echo $_SESSION['sum1'];


    آخرین ویرایش به وسیله masoomenoroozi : سه شنبه 15 اسفند 1391 در 09:05 صبح

  19. #19

    نقل قول: روشی به جای استفاده از سشن در php

    خوب این کد که بنظر درست میاد. البته کد کامل فایل show_type.php و همچنین fanction.js رو هم باید ببینیم (البته دومی بعید میدونم ارتباطی داشته باشه) اما یک سؤال، چرا از jQuery برای AJAX استفاده نمیکنید؟

  20. #20

    نقل قول: روشی به جای استفاده از سشن در php

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

    آیا فرق بین jqueryو javaتاثیری در مقدار دهی سشن داره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟/

  21. #21

    نقل قول: روشی به جای استفاده از سشن در php

    نه jQuery رو بخاطر راحتی خودتون و تطابق با تمام مرورگرها گفتم. کل کدی که شما برای AJAX نوشتین رو با یک خط توی jQuery میشه نوشت.
    اما درمورد مشکلی که گفتین، احتمال داره بخاطر این باشه که فایل شما UTF-8 without BOM نیست. با ++Notepad فایل رو باز کنید و از منوی Encoding گزینه Encode in UTF-8 without BOM رو انتخاب کنید و فایل رو ذخیره و دوباره آپلود کنید. ضمناً روی هاست بطور پیشفرض Output Buffering غیرفعاله. توی اولین خط کدتون دستور ;()obstart و توی آخرین خط دستور ;()ob_end_flush رو بنویسید. این کار رو برای تمام فایلها انجام بدین. دقت کنید که هربار فایلتون رو با ادیتور معمولی مثل Notepad ویندوز ویرایش و ذخیره کنید، دوباره BOM به فایل اضافه میشه و دچار همین مشکل خواهید شد. علت اینکه سشن توی همون صفحه کار میکنه و توی بقیه صفحات نه هم اینه که اصلاً ;()session_start نتونسته بخاطر وجود BOM (که دیگه اجازه نمیده هدرها تغییر کنن)، سشن رو شروع کنه و درنتیجه SESSION_$ که شما ساختین، یک آرایه معمولی توی همون صفحه شده نه آرایه اصلی سشن که SuperGlobal هست. امیدوارم خوب توضیح داده باشم. اینجا رو هم ببینید.

  22. #22

    نقل قول: روشی به جای استفاده از سشن در php

    ممنون از پیگیریتون
    فقط یه سوال
    اول obstart() رو بنویسم یا $_SESSION()?

  23. #23

    نقل قول: روشی به جای استفاده از سشن در php

    اولین خط ;()ob_start باید باشه و آخرین خط ;()ob_end_flush
    ضمناً _ هم یادتون نره. جزو اسم توابع هست.

  24. #24

    نقل قول: روشی به جای استفاده از سشن در php

    یه زحمت براتون دارم
    راستش من خیلی jquery بلد نیستم . ممکنه همین کدارو با jquery برام بنویسید؟


    ممنون.................

  25. #25

    نقل قول: روشی به جای استفاده از سشن در php

    اول فایل فشرده jQuery (نسخه Minify شده) رو از سایت jQuery.com دانلود کنید و در کنار اسکریپت به اسم jqmin.js ذخیره کنید و بعد کد زیر رو اجرا کنید:
    کد HTML:
    <script src="jqmin.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#ty").change(function() {
                $.ajax({
                    type: "post",
                    url: "show_type.php",
                    data: "name="+$("#ty").val()+"/"+$("#w").val()+"/"+$("#sdate").val()+"/"+$("#edate").val(),
                    success: function(data) {
                        $("#bord").html(data);
                    }
                });
            });
        });
    </script>
    نوع فولبرد :<select name="ty"  id="ty" >
    <option value="0">منوی انتخابی</option>
    <option value="1">منوی باز </option>
    <option value="2">منوی بسته</option>
    </select>
    <div id="bord" style=" width:530px; " >
    البته من این کد رو برای راحتی در تفهیم، بصورت گسترده شده و با تفکیک پارامترها در سطرهای مختلف نوشتم وگرنه خیلی خلاصه تر هم میشه با post.$ نوشت. موفق باشید.

  26. #26

    نقل قول: روشی به جای استفاده از سشن در php

    ممنون از پاسخ هاتون

  27. #27

    نقل قول: روشی به جای استفاده از سشن در php

    خواهش میکنم. دکمه «تشکر کردن» برای اینجور وقتها درنظر گرفته شده. ضمناً اگه مشکلتون رفع شد، خبر بدین تا بقیه دوستان هم مطلع بشن. موفق باشید.

  28. #28

    نقل قول: روشی به جای استفاده از سشن در php

    بله . ولی با همه این شرایط باز هم سشن خالی مونده و مقدار نداره

    واقعا دیگه نمیدونم چیکار کنم. آخه همه کارهایی رو که گفتین انجام دادم

  29. #29

    نقل قول: روشی به جای استفاده از سشن در php

    اگه ممکنه TeamViewer نصب کنید و نام کاربری و رمز عبور رو برام پیام خصوصی کنید تا از نزدیک ببینم مشکل چیه.
    -----
    پاورقی: جدیداً به این نتیجه رسیدم که برخی مشکلات رو فقط میشه با Remote Connection رفع کرد و توضیح دادن جوابگو نیست و این مسئله کاملاً طبیعیه چون تا وقتی افراد در عمل نحوه رفع مشکل رو حداقل یکبار نبیین، توضیح فایده نداره.

  30. #30
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: روشی به جای استفاده از سشن در php

    نقل قول نوشته شده توسط masoomenoroozi مشاهده تاپیک
    این کد داره توی لوکال هاست درست جواب میده ولی نمیدونم چرا توی هاست اصلی درست کار نمیکنه. در حالی که تا چند روز پیش توی هاستم درست کار میکرد ممکنه اشکال توی تنظیمات هاست باشه ؟
    البته با پشتیبانی سرور هاستمون هم تماس داشتیم که تمام تنظیمات رو گفتن درسته.

    آیا فرق بین jqueryو javaتاثیری در مقدار دهی سشن داره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟/
    https://barnamenevis.org/showthread.p...%D8%AF-session یه دید بزن شاید مشکلت این باشه

  31. #31

    نقل قول: روشی به جای استفاده از سشن در php

    دوستان مشکل این دوستمون حل شد. برای حل مشکل مشابه سایر دوستان، علت رو اینجا میگم:
    اگه توی یک فایل، فایل دیگری رو include یا require کردین، حتماً باید اون فایل هم UTF-8 without BOM باشه و درصورت لزوم، ob_start رو اول و ob_end_flush رو آخر اون فایل هم صدا بزنید.
    بطور کلی عادت کنید حتماً تمام فایلهای شما UTF-8 without BOM باشن.
    ضمناً اگه یک فایل PHP دارین که ابتداش با تگ PHP شروع نشده و اولش HTML دارین، حتماً قبل از اون کدهای HTML تگ PHP رو باز کنید و ob_start رو صدا بزنید، نه اینکه در اولین جایی که تگ PHP باز شد، اینکار رو انجام بدین چون وجود کدهای HTML قبل از کدهای PHP هم باعث میشه مثل BOM، محتوای اونها برای مرورگر کلاینت ارسال بشه. بطور مشابه، ob_end_flush هم باید آخرین دستور فایل باشه و اگه انتهای فایلتون تگ PHP نیست باید بازش کنید و اونجا بنویسید. بطور خلاصه:
    ob_start دقیقاً اولین خط فایل باشه و ob_end_flush هم دقیقاً آخرین خط یعنی تمام فایلهای PHP شما باید اینطوری باشه:

    <?php
    ob_start();
    // the rest of file contents
    ob_end_flush();
    ?>

تاپیک های مشابه

  1. استفاده از سشن به جای پروفایل
    نوشته شده توسط bbc_sh در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: جمعه 01 شهریور 1387, 23:25 عصر
  2. مشگل در استفاده از cookie در php
    نوشته شده توسط نعیم رضاییان در بخش PHP
    پاسخ: 3
    آخرین پست: یک شنبه 25 بهمن 1383, 09:28 صبح
  3. استفاده از activex در php
    نوشته شده توسط mostafa612003 در بخش PHP
    پاسخ: 8
    آخرین پست: یک شنبه 01 شهریور 1383, 08:34 صبح
  4. استفاده از ASP و PHP در یک صفحه
    نوشته شده توسط Rambod در بخش Classic ASP
    پاسخ: 5
    آخرین پست: یک شنبه 10 اسفند 1382, 08:25 صبح
  5. استفاده از ASP و PHP در یک صفحه
    نوشته شده توسط Rambod در بخش PHP
    پاسخ: 2
    آخرین پست: سه شنبه 05 اسفند 1382, 16:45 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •