Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cookies w srodku kodu ?
Forum PHP.pl > Forum > Przedszkole
boya
Witam
Zbudowalem sobie sonde ktore wyglada mniej wiecej tak

sonda.php
[php:1:f3d2887fe8]<?php
if($_COOKIE['sonda']!="1") {
include ("nieglosowano.php");
}else{
include ("glosowano.php");}
?>[/php:1:f3d2887fe8]

jezeli cookies jest to wywala mnie na glosowano.php i tutaj wszytko jest ok. Problem pojawia sie gdy przechodze na nieglosowano.php wtedy tam musze dodac ciacho...i je dodaje...

[php:1:f3d2887fe8]<?php
setcookie("sonda", "1", time()+3600*168);
?>[/php:1:f3d2887fe8]

problem w tym ze ono sie nie dodaje ;/ bo jest w includzie strony sonda.php wiec gdzies w srodku strony

jak mam to rozwazac aby cookisy sie dodawaly ? a moze cos zle robie ?
kszychu
1. Poszukaj informaccji o ob_flush() i jej podobnych.
2. nie inkluduj a przekieruj na inną stronę: header("Location: .......")
boya
musi byc na include
a tamtych poszukam ;]
boya
dobra moze zrobie to tak ze dodam sesje na jakis określony czas...pytanie jak ?
a czy istnieje to sobie sprawdze

takze pytanie jak czasnac sesje na okreslony czas ?
Zajec
Na początku pliku, przed samym kodem (X)HTML:

[php:1:038494b0ce]<?php
if($_COOKIE['sonda']!="1") //plus jak się domyślam jakiś dodatkowy warunek, który jest sprawdzany w nieglosowano.php
setcookie("sonda", "1", time()+3600*168);
?>[/php:1:038494b0ce]

A potem sprawdzasz ciasteczko jeszcze raz, i includujesz co trzeba, ale już bez zabawy w dodawanie ciastka.
boya
tak tylko ze nieglosowano jest includowany w

sonda.php a sonda php w index.php a wiec to nie bedzie początek kodu ;/
Zajec
Czyli rozumiem, że do index.php nie masz dostępu??
W takim razie pozostaje Ci chyba tylko otworzenie nowego okienka, ze stroną która zapisze ciacho, lub zapisanie ciacha przez JS.
boya
ok
to jak zaknac samoczynnie nowo otwarte okno ? bez naszej ingerrencji
Majdan
Zamknąć okienko także możesz przez JS. Poszukaj dokładniejszej odpowiedzi.
Zajec
Pamiętaj tylko o blokowaniu pop-up'ów. Mi się nie otworzy żadne okienko, jeśli sam nie klikne na link. I w tym przypadku właśnie dodanie ciastka przez JS byłoby chyba lepszym rozwiązaniem.
rozny
na poczatku pliku index.php dajesz:
[php:1:6c09752347]<?php
ob_start();
?>[/php:1:6c09752347]
a na koncu:
[php:1:6c09752347]<?php
ob_end_flush();
?>[/php:1:6c09752347]
i od tej chwili mozesz wysylac ciacha i naglowki kiedy tylko ci sie podoba. wplynie to troche na czas ladowania strony, ale mysle ze nieznacznie.
przed
[manual:6c09752347]ob_start();[/manual:6c09752347] nie moze sie nic pojawic!
DeyV
Cytat
takze pytanie jak czasnac sesje na okreslony czas ?


wydaje mi się, że to akurat jest proste

[php:1:1cb569fb28]<?php
session_Start();


$_SESSION['arrDane'] = array(
'mixZmienna' => 'xxxx',
'mixZmienna2' => 'yyyy',
'intTime' => time()
);


$intCzasTrwania = 3600 ; //godzina

if( $_SESSION['arrDane']['intTime'] > (time() - $intCzasTrwania ) )
{
echo $_SESSION['arrDane']['mixZmienna'];
echo $_SESSION['arrDane']['mixZmienna2'];
}
else
{
$_SESSION['arrDane'] = array();
echo 'sessja zniszczna';
}
?>[/php:1:1cb569fb28]
boya
szkoda ze malo opisu dales smile.gif

[php:1:b1ac562a69]<?php
session_Start();

$_SESSION['sonda'] = array(
'intTime' => time()
);
$intCzasTrwania = 3600 ;

if( $_SESSION['sonda']['intTime'] > (time() - $intCzasTrwania ) )
{
}
else
{
$_SESSION['arrDane'] = array();
}
?>[/php:1:b1ac562a69]

zastanawiam sie czy tak moze byc ?
boya
Zrobilem tak:

[php:1:649b2d4cf8]<?php
index.php //plik index.php
ob_start();
//inne cookie + kod strony
include("sonda.php"); //plik sonda.php
//kod sonda.php
include("nieglosowano.php"); //plik nieglosowano.php
//kod nieglosowano.php
setcookie("sonda", "1", time()+3600*24*7);
//kod nieglosowano.php
//konic nieglosowano.php
//koniec sonda.php
ob_end_flush();
//koniec pliku index.php
?>[/php:1:649b2d4cf8]

Widac jak bardzo jest zagniezdzony cookie ktore musi wyladowac na poczatku strony...i nie ląduje ;/ moze cos zle napisalem ?
kszychu
boya: bardzo proszę o edycję swoich postów i nie pisanie jednego pod drugim.
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.