PHP - if

Programovacie jazyky, rady, poradňa...
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

ppt napísal:IqiPoP: diky. To session zostane v pamati aj dlhsie? Alebo ked chcem poslat tu istu premennu aj do tretej stranky (napr z druha.php do tretia.php), tak musim vsetko zopakovat :?:
defaultne na serveroch je expiracia session nastavena na 24 minut po poslednom requeste. skratit alebo predlzit defaultne nastaveny cas expiracie je problem, pretoze garbage collection nefunguje tak ako ma.

ku session:
ak sa rozhodnes, ze uzivatelia prezerajuci si tvoju stranku musia na to mat povolene cookies, tak staci na zaciatku kazdej stranky (prva.php, druha.php, tretia.php, ...) napisat session_start(), co nainicializuje podla cookies z hlavicky requestu, tvoju ulozenu session do superglobalnej premennej $_SESSION.
v opacnom pripade linky musia obsahovat session_name() s hodnotou session_id()
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

ppt napísal:Tak potom by mal existovat nejaky prikaz na vymazanie session, nie?
session_destroy();
Nosferatu
Medium Expert
Medium Expert
Príspevky: 127
Registrovaný: 24 máj 2005, 8:50

Príspevok od používateľa Nosferatu »

hej, hej.. tuna to máš po česky:

Kód: Vybrať všetko

http://pabi3.com/article76/php-pre-zaciatocnikov-sessions-15diel/
originál php dokumentácia:

Kód: Vybrať všetko

http://sk.php.net/manual/sk/ref.session.php
tu je niečo o jej možnosti zneužitia, možno už zaplátané, čo ja viem :? :

Kód: Vybrať všetko

http://blackhole.sk/node/280

Kód: Vybrať všetko

session_destroy(); - // Zruší celú session, napr. keď sa user odhlasuje
sessions:

Kód: Vybrať všetko

Pro práci se session jsou v php tyto funkce:

	- session_start(); - Inicializuje session 

	- session_destroy(); - Zruší session

	- session_register(Jmeno); - Zaregistruje session proměnnou

	- session_unregister(Jmeno); - Zruší session proměnnou. (Pokud potřebujeme jednu promměnou zrušit a ostatní ponechat)

	- session_unset(); - Zruší všechny session proměnné, ale ponechá session iniciované, oproti session_destroy();

	- session_id(); - Vypíše řetězec, který bude předáván v URL pro session
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

OK, diky chlapici, idem to skusit...
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

IgiPop: nestaci namiesto session_name() pouzit v linku PHPSESSID???

Kód: Vybrať všetko

echo '<a href="druha.php?PHPSESSID='.session_id().'">prepni</a>';
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

gwixt napísal:IgiPop: nestaci namiesto session_name() pouzit v linku PHPSESSID???

Kód: Vybrať všetko

echo '<a href="druha.php?PHPSESSID='.session_id().'">prepni</a>';
a ty vies presne povedat na tom ktorom hostingu, ako je pomenovana session_name v konfiguraku php.ini? taktiez, mne sa nepaci pomenovanie "PHPSESSID" a mozem si ho zmenit

Kód: Vybrať všetko

session_name("MySID");
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

nie je PHPSESSID defaultne nastavene??? mne to takto fungovalo zatial uplne vsade
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

Ak vyzera skript napr. takto:
prva.php:
<?
session_start();
$_SESSION['cislo'] = 123;
?>
<form method="post" action="druha.php">
//nieco
<input type="Submit" name="odosli" value="odosli">
</form>
Tak potom mi to bude na stranke druha.php fungovat? Myslim to session. (ak je cookies povolene)
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

ppt napísal:Tak potom mi to bude na stranke druha.php fungovat? Myslim to session. (ak je cookies povolene)
ano ... preco by nefungovalo
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

gwixt napísal:ano ... preco by nefungovalo
Lebo nie som nijaky expert v php :lol:
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

gwixt napísal:nie je PHPSESSID defaultne nastavene??? mne to takto fungovalo zatial uplne vsade
to je pravda, ze je tak defaultne nastavena, ale co ak hrabne adminovi a pri konfiguracii to zmeni.
nikdy sa nespoliehaj na defaultne nastavenia, nahodou ich admin zmeni, a ty budes mat zbytocne s tym robotu.
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

No ja sa trapim, cudujem sa, ze mi to nejde, a nakoniec som prisiel na to, ze SESSION sa musi pisat s velkymi pismenami... :oops: ale uz to ide. 8)
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

Mam vybratu cast tabulky z mysql takto:
<?
mysql_connect("localhost");
$result = mysql("tab","select * from users where login like $log ");
?>
A ja chcem vediet premennu id u uzivatela $log, ktora je v tej istej tabulke tak mam dat aky prikaz? Vypisuje mi chybu, ked pouzivam toto:
$id=mysql_result($result,0,"id");
echo $id
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

ppt napísal:A ja chcem vediet premennu id u uzivatela $log, ktora je v tej istej tabulke tak mam dat aky prikaz? Vypisuje mi chybu, ked pouzivam toto:
ked uz mas result tak skus toto

Kód: Vybrať všetko

 $row=mysql_fetch_array($result,MYSQL_BOTH);
 echo $row["id"];
IgiPop napísal:to je pravda, ze je tak defaultne nastavena, ale co ak hrabne adminovi a pri konfiguracii to zmeni.
nikdy sa nespoliehaj na defaultne nastavenia, nahodou ich admin zmeni, a ty budes mat zbytocne s tym robotu.
njn dik za info
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

qwixt: Vypisuje mi pri tom chybu:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/8/site26068/wwwroot/main/banner.php on line 7
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

ppt napísal:qwixt: Vypisuje mi pri tom chybu:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/8/site26068/wwwroot/main/banner.php on line 7
Uz som to vyriesil inac a sice:
$result = mysql("tab","select*from users");
$pocet = mysql_NumRows($result);
$i=0;
while ($i<$pocet):
if (mysql_result($result,$i,"login")==$log) $_SESSION['id']=mysql_result($result,$i,"id");
$i++;
endwhile;
Diky qwixt :wink:
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

Potrebujem odoslat cez formular hodnotu jednej premennej-cez hidden. A neviem ako, kedze ide u premennu. Co mam napisat do value? Napr. nech premenna v php sa vola $id.

Kód: Vybrať všetko

	<input type="hidden" name="id" value=" ">
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

ppt napísal:Potrebujem odoslat cez formular hodnotu jednej premennej-cez hidden. A neviem ako, kedze ide u premennu. Co mam napisat do value? Napr. nech premenna v php sa vola $id.

Kód: Vybrať všetko

	<input type="hidden" name="id" value=" ">
ak som to dobre pochopil tak nejak takto:

Kód: Vybrať všetko

<input type="hidden" name="id" value="<?=$id; ?>">
alebo
echo '<input type="hidden" name="id" value="'.$id.'">';
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

IgiPoP napísal:ak som to dobre pochopil tak nejak takto:

Kód: Vybrať všetko

<input type="hidden" name="id" value="<?=$id; ?>">
alebo
echo '<input type="hidden" name="id" value="'.$id.'">';
Dobre si pochopil. Nevedel som, ako mam zmiesat html s php. Idem to skusit, diky.
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

IgiPoP napísal:session_destroy();
Aky je podobny prikaz, avsak pri praci s cookies? Cize akym prikazom zrusim cookies?
Napísať odpoveď