Headeru z nicoho nic vadi session_start – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Headeru z nicoho nic vadi session_start – PHP – Fórum – Programujte.comHeaderu z nicoho nic vadi session_start – PHP – Fórum – Programujte.com

 

Smokie0
Expert
2. 2. 2007   #1
-
0
-

Zdravim.

Neviem preco, ale na mojom localhoste zrazu z nicoho nic nemozem poslat informacie cez header (na presmerovanie), pretoze v kode mam session_start.
Len tak som skusil session_start a vsetky registracie premmennych pod nim presunut v kode pod cast s header, ale aj tak tam bol problem (o tom, ze by to potom vobec nefungovalo nehovorim).

A ked som to spustil na hostingu, tak to bezalo bez akychkolvek problemov.

Nastavenia apache som nemenil, tak neviem preco to zrazu zo dna na den nefunguje.


Este poslem kod, ak by to niekoho zaujimalo, ale neviem ci to ma vyznam



session_start();
if(!session_is_registered("db_pswd")) { session_register("db_pswd"); }
if(!session_is_registered("user_nick")) { session_register("user_nick"); }
if(!session_is_registered("user_pswd")) { session_register("user_pswd"); }
if(!session_is_registered("user_name")) { session_register("user_name"); }
if(!session_is_registered("user_id")) { session_register("user_id"); }
if(!session_is_registered("user_team")) { session_register("user_team"); }
$_SESSION["user_pswd"] = $_POST["pswd"];

$link = mysql_pconnect(nepodstatne);
$db = mysql_select_db(nepodstatne, $link);

if($action == 'login')
{
if($_POST["nick"] <> "")
{
$query = "SELECT * FROM jazdci WHERE login = \"$_POST[nick]\"";
$result = mysql_query($query ,$link);
while($row=mysql_fetch_object($result))
{
$_SESSION["user_name"] = $row->meno;
$_SESSION["user_nick"] = $row->login;
$_SESSION["db_pswd"] = $row->heslo;
$_SESSION["user_id"] = $row->ID_jazdca;
}
mysql_free_result($result);

if($_SESSION["db_pswd"] == $_SESSION["user_pswd"])
{
header("location: ./index.php?action=play");
}
else
{
header("location: ./index.php?action=error1");
}
}
else
{
header("location: ./index.php?action=error2");
}
}


Za rady dakujem

Nahlásit jako SPAM
IP: ...–
Marek Štafl0
Stálý člen
2. 2. 2007   #2
-
0
-

Napadlo mě, jestli třeba nemáš úplně na začátku před <?php mezeru nebo prázdný řádek (nejsem si úplně jistý, že by to vadilo), ale když Ti to funguje na hostingu, tak to teda nevím.

Nahlásit jako SPAM
IP: ...–
Smokie0
Expert
2. 2. 2007   #3
-
0
-

MareX píše:#
# Napadlo mě, jestli třeba nemáš úplně na začátku před <?php mezeru nebo prázdný řádek (nejsem si úplně jistý, že by to vadilo), ale když Ti to funguje na hostingu, tak to teda nevím.


Nemam nemam, pred session_start(); je este jeden riadok, ale tam je len <? a ked som ich dal do jedneho riadku, tak to tiez nepomohlo.

Pre mna to je zahada, pretoze na kode sa nic nemenilo a prakticky to prestalo ist zo dna na den bez zjavnej priciny.

Nahlásit jako SPAM
IP: ...–
survik1
~ Moderátor
0
Posthunter
2. 2. 2007   #4
-
0
-

$query = "SELECT * FROM jazdci WHERE login = \"$_POST[nick]\"";

zkus

$query = "SELECT * FROM jazdci WHERE login = '".$_POST[nick]."'";

Jinak nevím

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
Radoslav Pala0
Super člen
2. 2. 2007   #5
-
0
-

To Smokie: mne sa to tiez niekedy stane ze nieco z nicho nic prestane fungovat. potom po x hodinych pridem na to, ze som neico vymazal apod.

Nahlásit jako SPAM
IP: ...–
Smokie0
Expert
2. 2. 2007   #6
-
0
-

radypala píše:#
# To Smokie: mne sa to tiez niekedy stane ze nieco z nicho nic prestane fungovat. potom po x hodinych pridem na to, ze som neico vymazal apod.


To poznam, tiez sa mi to stava. Len tu viem, ze som nezmazal nic.
Dokoncil som to - fungovalo to, potom som to hodil na hosting a na nom este prepisal cez notepad prihlasovacie udaje do DB a potom po par hodinach som to chcel znova hodit na hosting, lebo som zabudol, ze som to uz urobil, ale som si pomylil okna v total commanderi a to co bolo na hostingu som skopiroval na disk. A odvtedy to nejde. Prihlasovacie udaje som samozrejme prepisal spat na localhostingove, ale to je nepodstatne.
Uz som aj myslel na to, ci hosting nahodou neprepisal nieco v kode (reklama), ale presiel som cely zdrojak a nic som nenasiel.

Neviem ci nebude chyba v nastaveni apache, ale tam som od nainstalovania niekedy v novembri nic nemenil.

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
2. 2. 2007   #7
-
0
-

A jakou to tedy chybu vypíše?

Jinak ke kódu:
vykašli se úplně na všechny řádky typu a vymaž je, jsou naprosto nepotřebné:
if(!session_is_registered("db_pswd")) { session_register("db_pswd"); }
Tohle bych využíval jen u opravdu zatížené aplikace, navíc pokud to člověk nemá dobře zoptimalizované, může to být k neužitku:
mysql_pconnect()
Vypadá to, že předpokládá superglobální proměnné a zamíchal si dvoité uvozovky za jednoduché:
if($action == 'login')
Hezčí by bylo empty() (if(!empty($_POST['nick']))):
if($_POST["nick"] <> "")
Radší vždycky vypisuj sloupce, nebudeš v tom mít pak bordel, navíc šlo by to zapsat rychleji('SELECT sloupec1, sloupec2 FROM jazdci WHERE login = \''.$_POST['nick'].'\''):
$query = "SELECT * FROM jazdci WHERE login = \"$_POST[nick]\"";
Hesla v plain textu, použíj alespoň sha1() nebo lépe crypt():
if($_SESSION["db_pswd"] == $_SESSION["user_pswd"])
Location se píše s velkým L a dle RFC hlavičky mají ukazovat absolutní cestu(header("Location: http://example.com/index.php?action=play")):
header("location: ./index.php?action=play")

Asi určitě to tvou chybu nevyřeší, ale kód bude hezčí a optimální. :)

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Smokie0
Expert
3. 2. 2007   #8
-
0
-

2 D1ce: Dakujem :)

Inak pise to chybu



Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\projekty\csicup\index.php:1) in C:\wamp\www\projekty\csicup\index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\projekty\csicup\index.php:1) in C:\wamp\www\projekty\csicup\index.php on line 1


Line 1 je "<? session_start();"

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
3. 2. 2007   #9
-
0
-

To Smokie: No vida. :) S tím následujícím headerem to nemá nic společného. Tuším, že jsi přešel na utf-8 nebo si updatoval editor. Na hostingu máš zaplý output buffering a na localu ne. Zkus vypnout BOM příznak = konzultovat s příslušným manuálem editoru nebo si taky zapnout ob na localu, což silně nedoporučuji, páč si tak jistojistě naprasíš ve skriptech. Ještě sem můžeš napsat co máš za editor, třeba to nastavení někdo najde za tebe.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Smokie0
Expert
3. 2. 2007   #10
-
0
-

D1ce píše:#
# To Smokie: No vida. :) S tím následujícím headerem to nemá nic společného. Tuším, že jsi přešel na utf-8 nebo si updatoval editor. Na hostingu máš zaplý output buffering a na localu ne. Zkus vypnout BOM příznak = konzultovat s příslušným manuálem editoru nebo si taky zapnout ob na localu, což silně nedoporučuji, páč si tak jistojistě naprasíš ve skriptech. Ještě sem můžeš napsat co máš za editor, třeba to nastavení někdo najde za tebe.


Uz je to vyriesene. V Dreamweaveri som vytvoril novy index.php a do neho vlozil obsah toho stareho a zrazu to ide. Problem vznikol vtedy, ked som omylom namiesto a z disku na ftp skopiroval index.php z ftp na disk.

Dakujem vsetkym :)

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
3. 2. 2007   #11
-
0
-

To Smokie: Tak to v té verzi musel být BOM příznak ne? :) Tím přesunem se přeci nemohl změnit obsah souboru.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Smokie0
Expert
5. 2. 2007   #12
-
0
-

D1ce píše:#
# To Smokie: Tak to v té verzi musel být BOM příznak ne? :) Tím přesunem se přeci nemohl změnit obsah souboru.

Mne sa zdalo cudne ako je mozne, ze jeden hlupy presun mohol urobit nieco take. Ale ja som ziadne BOM priznak nikde nevidel. Ten obsah sa od povodneho v nicom nelisil (volnym okom, otvaral som ho v Dreamweaveri).
Popravde pocujem o BOM priznaku pocujem prvykrat.

Nahlásit jako SPAM
IP: ...–
Jiří0
Stálý člen
9. 2. 2007   #13
-
0
-

mi to taky dělává. Nechápu to.. vždycky tu stránku musím otevřít v pspadu a tam nazačátku zaentruju a pak to zase umažu a uložím.
Pak to fakčenko ....

ale vůbec nevím proč to dělá....:/

Nahlásit jako SPAM
IP: ...–
I programování je pudová záležitost. Buď to pude, nebo to nepude
Substance242
~ Anonymní uživatel
1 příspěvek
26. 2. 2007   #14
-
0
-

Toto uz asi nikto nenajde, ja som do PHP zabrdol len trosku, tuto diskusiu som nasiel len nahodou vdaka hladaniu retazca "CSICUP" :-) Ja len ci to nemohlo byt takou somarinou, ze subory boli prenesene ako binarne a mali byt prenesene ako ASCII (rozne zariadkovania), viem ze niekedy to po FTP na Linux robilo rozdiel v skriptoch.

Nahlásit jako SPAM
IP: ...–
Smokie0
Expert
27. 2. 2007   #15
-
0
-

Substance242 píše:#
# Toto uz asi nikto nenajde, ja som do PHP zabrdol len trosku, tuto diskusiu som nasiel len nahodou vdaka hladaniu retazca "CSICUP" :-) Ja len ci to nemohlo byt takou somarinou, ze subory boli prenesene ako binarne a mali byt prenesene ako ASCII (rozne zariadkovania), viem ze niekedy to po FTP na Linux robilo rozdiel v skriptoch.


Bolo bolo, pravdepodobne ;)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 30 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý