2012-12-05 11 views
6

मैं किसी उप-निर्देशिका Subsystem नामित साथ System नाम के एक मुख्य निर्देशिका है। मुख्य निर्देशिका से मेरा सत्र उप-निर्देशिका में काम नहीं कर रहा है।क्या एक PHP सत्र उपनिर्देशिकाओं में काम करता है?

जब मैं दोनों फ़ोल्डरों में echo session_save_path();, वे मुझे "/tmp" दिखाते हैं।

फिर, मैंने अपनी उप-निर्देशिका में session_save_path("../tmp"); डालने की कोशिश की लेकिन यह मुझे "This webpage has a redirect loop" दिखाता है।

<?php 
session_start(); 

if (!($_SESSION['uid'])) 
{ 
    header("Location:index.php"); 
} 
else 
{ 
    $_SESSION['uid'] = $_SESSION['uid']; 
} 
?> 

उप-प्रणाली फ़ोल्डर में session.php:

System निर्देशिका में session.php

<?php 
session_save_path("../tmp"); 
session_start(); 

if (!($_SESSION['uid'])) 
{ 
    header("Location:index.php"); 
} 
else 
{ 
    $_SESSION['uid'] = $_SESSION['uid']; 
} 

>

मैं सब कुछ खत्म हो Google पर है, लेकिन मैं अभी भी यह नहीं मिल सकता है? काम करने के लिए।

+0

@TheSmose, हाँ, आपका जवाब के नीचे टिप्पणी की;) – Newbie

उत्तर

1

निर्देशिका आपके सत्र स्थिति को प्रभावित नहीं करती है (दी गई अपाचे-PHP वेबसाइट की सभी निर्देशिका मानक कॉन्फ़िगरेशन में उसी सत्र तक पहुंच जाएगी)। आप session_save_path() उपयोग करने के लिए नहीं होना चाहिए।

मुझे लगता है कि भाग में समस्या यह है कि आप स्वयं को 'uid' सेट कर रहे हैं ($_SESSION['uid'] = $_SESSION['uid'];) - इसलिए संभावित रूप से इसे वास्तव में किसी मान पर सेट नहीं करना चाहिए - और सेट होने पर संभावित रूप से अनिश्चित काल तक रीडायरेक्ट करना।

मैं इस साधारण परीक्षण का सुझाव सुनिश्चित करें कि आपके सत्र कर रहे हैं, वास्तव में, काम कर रहे:

/session_set.php

<?php 
    session_start(); 
    $_SESSION['uid'] = 123; 

/sub_dir/session_get.php

<?php 
    session_start(); 
    echo $_SESSION['uid']; 
+0

इस परीक्षण काम कर रहा है, उप-फ़ोल्डर मुख्य फ़ोल्डर से सत्र प्राप्त कर सकते हैं। के बाद उपयोगकर्ता द्वारा सफलतापूर्वक प्रवेश किया है मेरे सत्र login.php में बनाया जाता है। इस प्रकार, मैं सत्र मुख्य फ़ोल्डर में session.php के माध्यम से गुजरती हैं। लेकिन मेरे सबफ़ोल्डर को अभी भी सत्र नहीं मिलता है :( – Newbie

+0

वैसे, ($ _SESSION ['uid'] = $ _SESSION ['uid'];) मुख्य निर्देशिका में पृष्ठों के बीच बस ठीक काम करता है। – Newbie

+0

@Newbie - यह कहीं भी ठीक काम करेगा, लेकिन यह कुछ भी नहीं कर रहा है। आपके पास जो समस्याएं हैं, वे सत्र के कारण नहीं हैं। आपके तर्क में कहीं और समस्या है। मेरा सुझाव है कि आप अपने सभी सत्र तर्क पोस्ट करने का एक नया प्रश्न बनाएं और किसी को पता लगाएं कि बग कहां है। –

0

एक सत्र सर्वर जहां पंजीकृत सत्र vari पर एक अस्थायी निर्देशिका में एक फ़ाइल बनाता है ables और उनके मूल्य संग्रहित हैं। यह डेटा उस यात्रा के दौरान साइट के सभी पृष्ठों पर उपलब्ध होगा।

अस्थायी फ़ाइल का स्थान php.ini फ़ाइल में session.save_path नामक सेटिंग द्वारा निर्धारित किया जाता है। तो इस मार्ग की जांच करें।

इसके अलावा [सत्र-सेव-पथ()] [1] वर्तमान सत्र सहेजें पथ प्राप्त करें और/या सेट करें।

मुझे लगता है कि यू न इस लाइन लिखने और सही पथ के लिए अपने php.ini जाँच करने के लिए की जरूरत है।

सत्र के लिए मैं कुछ उपयोगी लेख पाया http://www.tutorialspoint.com/php/php_sessions.htm

धन्यवाद।

+0

को ऊपर उठा रहा हूं, मुझे session.save_path = "/ tmp" मिला। तो मुझे क्या करना चाहिए? मुझे आश्चर्य है कि यह seeion_save_path के साथ कुछ गलत है या नहीं। – Newbie

संबंधित मुद्दे