2012-07-14 12 views
10

mam tej kwerendy w mysql w stronę PHP:sesji w PHP w silnika Społecznej

mysql_query("INSERT INTO tz_todo SET text='".$text."', 
            position = ".$position.", 
            user_id=".$_SESSION['user_id'].", 
            view_stat=0"); 

Próbowałem echo zapytania, a wynik jest taki:

INSERT INTO tz_todo SET text='trial text', position = 21, user_id=, view_stat=0 

wydaje się, że nie można uzyskać wartości sesji user_id.

I $_SESSION['user_id'] nie działa w silniku społecznościowym. Jak to poprawić? Utworzyłem także wersję localhost w moim xamppie i wszystko jest w porządku, ale kiedy przekonwertowałem ją na silnik społecznościowy, sesja nie działa.

+4

czy wywołujesz 'session_stat();' na początku pliku? – David

+1

Sprawdź, czy istnieją funkcje macierzystego mechanizmu społecznościowego do obsługi sesji i użyj ich do przechowywania/uzyskiwania z nich informacji. –

+0

@Dostępne Tak. Rozpocząłem już sesję. – KazuNino

Odpowiedz

0
session_start(); 
$_SESSION["test"] = "hello world"; 
session_start(); 
echo $_SESSION["test"]; 

robi prac nad kodem? Jeśli nie, sprawdź swoją session.save_path w pliku php.ini UWAGA: aby zachować tę zmienną pamiętaj, aby wywołać session_start() na każdym skrypcie/stronie php przed wywołaniem zmiennej z sesji.

+0

, kod działa, ale silnik społecznościowy nie zachowa wartości sesji. – KazuNino

+1

Przejrzyj ten link: http://www.socialengineforum.com/index.php?/topic/15992-bug-fix-your-session-configuration-is-incorrect/ – Sathishkumar

+0

Próbowałem tego również, ale nic się nie dzieje: ( – KazuNino

2

W każdej strony, na której używasz obiekty sesji, umieść ten kod na początku pliku:

if(!isset($_SESSION)){session_start();} 

ten sposób, jeśli sesja nie został jeszcze uruchomiony, to zaczyna go; w przeciwnym razie ignoruje rozpoczęcie sesji, jeśli sesja już się rozpoczęła. Jest to ważne, ponieważ wywoływanie session_start(), jeśli sesja jest już uruchomiona, może czasem powodować błędy.

0

Dynamika można zapomnieć, aby rozpocząć sesję na górze strony

<?php if(!isset($_SESSION)){ session_start(); } ?>

$ _SESSION [ 'user_id'] nie może przechowywać wartość. sprawdź swoją stronę logowania (Zasadniczo po zmiennych sesji logowania zostanie ustawiony) lub po pogody rejestru przypisana wartość do tej zmiennej sesji ..

ustawienie wartości zmiennej sesji:

$ _SESSION [ 'user_id "] =" 1234567 ";

1

ten sposób mogę uzyskać identyfikator użytkownika poprzez sesji

session_start(); 

$userID = $viewer->getIdentity(); 

$_SESSION['user_id'] = $userID; 

echo $_SESSION['user_id']; 
1

Korzystanie sesję przechowywać user_id jest całkowicie błędne. Aby uzyskać atrybut identyfikator_użytkownika, spróbuj uzyskać

$viewer_id = Engine_Api::_()->user()->getViewer()->getIdentity(); (lub $ user-> getIdentity, jeśli masz obiekt innego użytkownika).

Jeśli nadal potrzebujesz sesji do przechowywania tych danych, użyj Zend-approach.

Powiązane problemy