Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html]Sesje
Forum PHP.pl > Forum > Przedszkole
zibizz1
Cytat
<?php

session_start(); // można pominąć jeśli jest się pewnym że włączona jest opcja auto_start

if (!isset($_SESSION['count'])) { // jeśli zmienna nie jest zarejestrowana
$_SESSION['count'] = 0; // przypisz jej początkową wartość
} else { // jeśli jest zarejestrowana
$_SESSION['count']++; // zwiększ jej wartość
}

echo $_SESSION['count'];

?>

Kiedy taki kod umieszcze w osobnym pliku np liczenie.php działa on poprawnie i gdy odświeży sie strone przybywa +1. Natomiat gdy ten kod umieszcze na stronie internetowej i dodam jej rozszerzenie php to skrypt cały czas pokazuje 0.
Co zrobić aby działał on w stronie?
Ar2r
Ten osobny plik uruchamiasz na localhost, czy na serwerze u providera?
zibizz1
na serwerze
Tutaj skrypt w stronie internetowej(gdy odswieżamy nie przybywa nic -ciągle zero)
Tutaj w osobnym pliku(gdy otworzymu choć raz zaczyna działać ten na stronie)
Aby zresetować trzeba zamknąć i otworzyć przeglądarke
nevt
Cytat
1. Kiedy taki kod umieszcze w osobnym pliku np liczenie.php ...
2. Natomiat gdy ten kod umieszcze na stronie internetowej i dodam jej rozszerzenie php...

Możesz przybliżyć czym się według ciebie różnią te "dwa sposoby" ?
Bo ja nie widzę żadnej różnicy...
zibizz1
zedytowałem mój poprzedni post tam masz pokazane o co chodzi i znalazłem przyczyne problemu

Cause

The PHP function such as headers(), used with start_session(), produces HTML headers. When the PHP fragments are placed in the body of the HTML, this causes errors because the PHP fragments are trying to put HTML headers within the HTML body.

Solution

Put the PHP fragments before the HTML body tag.

Poprostu skrypt musi być na początku a jak jest inczej to wywala błąd start_session(). Trzeba podzieliś skrypt na 2 części:
Tą wstawaimy na samiutkim początku strony:
Cytat
<?php
session_start(); // można pominąć jeśli jest się pewnym że włączona jest opcja auto_start
?>

a tą tam gdzie ma sie pojawiać wynik
Cytat
<?php
if (!isset($_SESSION['count'])) { // jeśli zmienna nie jest zarejestrowana
$_SESSION['count'] = 0; // przypisz jej początkową wartość
} else { // jeśli jest zarejestrowana
$_SESSION['count']++; // zwiększ jej wartość
}

echo $_SESSION['count'];

?>

Temat zamkniety
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.