| | |
Autor | Správa |
---|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 31.08.2008 16:36 | |
|
takze mam problem a neviem co s nim uz fakt ne som skusal vselico
takze mam prihlasenie.php
Kód: if($riadky==1){ session_register("myprezyvka"); header("location:prihlasenie_hotove.php"); } akoze ked uz sa vsetko splni to ma zaregistrovat tu sessions potom prihlasenie_hotove.php Kód: <?php session_start(); if(!session_is_registered(myprezyvka)){ header("location:main_login.php"); } else { header("location:index.php"); } ?> to asi tiez funguje ma to hodi na index index.php tam mam asi by sa mi menilo odhlasit-prihlasit Kód: <?php session_start(); if (session_is_registered(myprezyvka)):?> <a href="odhlasenie.php">Odhlasit</a> <?php else: ?> <a href="odhlasenie.php">Prihlasit</a> <?php endif; ?> mno a odhlasenie.php Kód: <? session_start(); session_destroy(); ?>
mno ale ked dam ze odhlasenie stale mi tam svieti odhlasit namiesto prihlasit ono to asi nezmaze to sessions abo co Diki moc za radu
|
|
Registrovaný: 21.01.07 Prihlásený: 29.03.20 Príspevky: 660 Témy: 53 |
Ukáž celý kód pre odhlasenie.php. Alebo to je celý kód?
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 31.08.2008 17:57 | |
|
jj je to cely ma tam byt este nieco?
|
|
Registrovaný: 21.01.07 Prihlásený: 29.03.20 Príspevky: 660 Témy: 53 |
Aký máš názov pre session cookie? Meníš ho na niektorej stránke?
A čo toto?
Kód: <?
Máš povolené na serveri krátke tagy pre PHP?
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 31.08.2008 18:47 | |
|
diki moc bolo to tym tagom vzdy nanho zabudam
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 13:37 | |
|
takze vyuzijem este tuto moju temu ja som totizto tento problem uz vyriesil sa mi zda lenze uz ani neviem preco nieco som vymazal a nahradil som to starymi verziami kde este boli chyby a teraz mam jednu dost blbu na stranke
http://www.dadctm.php5.sk/prihlasenie.php
ked sa prihlasim vypise toto
Kód: Warning: Cannot modify header information - headers already sent by (output started at /storage/www1/9/site44079/wwwroot/prihlasenie.php:10) in /storage/www1/9/site44079/wwwroot/prihlasenie.php on line 134
a kod Kód: if($riadky==1){ $_SESSION['myprezyvka'] =$myprezyvka; header("location:prihlasenie_hotove.php"); }
mam tam aj to ob_start(); a potom to ob_end_flush();
ale stale to robi co s tym? Dik
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 27.09.2008 14:03 | |
|
pred header máš zrejme už nejaký text ktrý sa vypísal..
_________________ Sorry za prelkepy |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 14:40 | |
|
Kód: <?php ob_start(); include ("config.php"); mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error()); mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error()); if (!empty($_POST["prezyvka"])){ //uz sa odosielalo $myprezyvka=$_POST['prezyvka']; $myheslo=$_POST['heslo'];
// To protect MySQL injection (more detail about MySQL injection) $myprezyvka = stripslashes($myprezyvka); $myheslo = stripslashes($myheslo); $myprezyvka = mysql_real_escape_string($myprezyvka); $myheslo = mysql_real_escape_string($myheslo);
$sql= "SELECT * FROM uzivatelia WHERE prezyvka='$myprezyvka' and heslo='$myheslo'"; $pouzi=mysql_query($sql); $riadky=mysql_num_rows($pouzi);
if($riadky==1){ $_SESSION['myprezyvka'] =$myprezyvka; header("location:prihlasenie_hotove.php"); } else { echo "<span style=\"color:red;\">Zla prezyvka alebo heslo!</span>"; } } ob_end_flush(); ?>
mam? lebo asi nemam podla mna bvo sak este som nic nevypisoval :-/
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | |
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Tú chybu "headers already sent" píše, keď už si niečo odoslal. Napríklad aj len medzeru. Stačí, že includuješ nejaký súbor, ktorý má za ?> medzeru a nemôžeš posielať headers. Preto pre istotu dávam za header("location: xxx.xxx"); ešte aj exit; prípadne die('nejaka hlaska');
A nemusí byť kompletná adresa
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 17:08 | |
|
teda som si spomenul ze uz nieco vypisujem
toto mam na bud odhlasitalebo prihlasit a je to pred problemovym skriptom
Kód: <?php if (isset($_SESSION['myprezyvka'])):?> <a href="odhlasenie.php">Odhlasit</a> <?php else: ?> <a href="prihlasenie.php">Prihlásiť</a> <?php endif; ?> </div>
mi nikto neviete s tym pomoct? please mam dat tuto cast s headrom na d tu druhu? inak sa to neda?
|
|
Registrovaný: 02.09.08 Prihlásený: 23.01.13 Príspevky: 81 Témy: 17 | Napísal Roko: 27.09.2008 19:31 | |
|
naco to robis cez header location?
ved to cele sprav uplne inak. ja som to robil tak, ze na kazdej stranke som len kontroloval, ci je uz vytvorena premenna SESSION nejak takto:
Kód: sesion_start();
if (is_set(SESION_['nick'] { //stranka pre prihlaseneho uzivatela })) else { //stranka pre neprihlaseneho uzivatela }
toto je len uplne jednoduchy priklad, da sa to este rozvyt o nieco take, ze budes kombinovat, ak je premenna nick definovana, no premenna password nesedi, tak mu vypises, ze zadal zle heslo atd...
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 19:39 | |
|
ved ja to mam tak isto ale namiesto celej stranky menim iba odhlasit/prihlasit
ale som to uz dal hore ale teraz nefunguje header sice to nepise tu chibu ale zase ma to nepresmeruje
// momentalne mi ten header uz nefunguje ani ked je to na standart mieste
|
|
Registrovaný: 02.09.08 Prihlásený: 23.01.13 Príspevky: 81 Témy: 17 | Napísal Roko: 27.09.2008 19:52 | |
|
ved to rob bez toho header location. naco ti to tam treba?
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 20:11 | |
|
mne sa vsetko dosralo bez toho headeru to nepojde bo ja to riesim tak ze potom sa to este kontroluje ze ci existuje session mno takze mam dalsi problem akjo odkontrolovat tu session a podla toho menit odhlsit/prihlasit bo na localhoste ide vsetko ok a na nete to blbne napr. toto
Kód: <?php session_start(); if (isset($_SESSION['myprezyvka'])):?> <a href="odhlasenie.php">Odhlasit</a> <?php else: ?> <a href="prihlasenie.php">Prihlásiť</a> <?php endif;?> bez toho session_start(); nefunguje no s nim to pise chybu Kód: : session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /storage/www1/9/site44079/wwwroot/index.php:10) in /storage/www1/9/site44079/wwwroot/index.php on line 55
ako to teda mam kontrolovat? pleaseeee help
|
|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal P3CKIV: 27.09.2008 21:13 | |
|
Toto:
Kód: session_start();
musí byť na úplnom začiatku všetkých súborov, v ktorých pracuješ so SESSIONs
_________________ V príprave... |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 27.09.2008 21:45 | |
|
mno ved to mam nie?
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 27.09.2008 22:12 | |
|
Asi nie keď sa ti niečo odosiela ešte pred tým session_start(). (pod úplným začiatkom sa myslí ten php súbor, ktorý sa zobrazuje a nie len ten, ktorý sa načítava pomocou include/require).
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 28.09.2008 11:00 | |
|
mno ale ja nic neincludujem teda vlastne hej to conf.php ale tam nieje nic so session sa mi tak zda ze sa dosralo vsetko co sa mohlo pretoze mi uz nic nefunguje ale pritom na localhoste ide vsetko ako ma nemoze to byt chyba serverom? a ked do toho prihlasenie.php nedam to session_start tak to zase vypise chybu s tym headerom tak ja uz fakt neviem
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
nie, nie, chyba nie je na strane servera. Si si istý, že máš <?php session_start(); a až potom include a všetko ostatné?
Inak dal by som radšej Kód: if(!session_id()){session_start();} Pre prípad, že už session je startnutý
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.09.2008 16:45 | |
|
dadmtb píše: mno ale ja nic neincludujem teda vlastne hej to conf.php ale tam nieje nic so session sa mi tak zda ze sa dosralo vsetko co sa mohlo pretoze mi uz nic nefunguje ale pritom na localhoste ide vsetko ako ma nemoze to byt chyba serverom? a ked do toho prihlasenie.php nedam to session_start tak to zase vypise chybu s tym headerom tak ja uz fakt neviem Ako môžeš tvrdiť, že na tej stránke nič pred session_start() nemáš? Kód: KOPEC RÔZNEHO KÓDU (vymazal som to, aby to nebolo príliš dlhé) <div class="menureg"> <a href="registracia.php">Registrovať</a> <b>|</b>
<br /> <b>Warning</b>: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already Ja tam pred tou funkciu, na rozdiel od teba, niečo vidím.
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 28.09.2008 18:25 | |
|
pockat a to pred tym session nemoze byt ani html kod? mne sa zda ze mi to pred tym fungovalo a tda ako to mam vyriesit? Dik
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.09.2008 18:44 | |
|
Pred session_start nemôže byť vôbec nič. Vyriešiš to tak, že tú funkciu session_start presunieš úplne na začiatok (ale to som už asi písal).
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
mal by si asi vedieť, ako sa to celé posiela...
Ono to ide ako jeden kus. Najprv idú nejaké headers. Keď už sú všetky headers poslané, je tam jeden volný riadok a po ňom ide všetko ostatné. Ak tam už je ten jeden volný riadok, nemôžeš už sa vrátiť späť. Jedine, že by si bol high-end programátor, ktorý vie vrátiť čas. Ale stroj času asi nemáš, takže nič. A PHP nijakým spôsobom nerozlišuje, či posielaš medzeru alebo html tagy. PHP rozoznáva iba php časti a to, čo má ignorovať a iba vyflusnúť
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.09.2008 19:21 | |
|
High-end by mohol použiť buffer a ten by mohol prípadne pred tým poslaním headeru vymazať (každopádne na tej stránke sa to použiť nedá, lebo by to vymazalo aj ten html kód, čo sa zobrazovať musí).
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 28.09.2008 20:08 | |
|
takze uz som to session dal navrch uz to nevypisuje chibu a co s tym headerom okrem jeho odstranenia?
Kód: Warning: Cannot modify header information - headers already sent by (output started at /storage/www1/9/site44079/wwwroot/prihlasenie.php:13) in /storage/www1/9/site44079/wwwroot/prihlasenie.php on line 133
Dik
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 28.09.2008 20:25 | |
|
Presne to isté. Musíš to celé urobiť tak, aby boli všetky úpravy hlavičky pred tým, ako sa pošlú iné údaje.
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 28.09.2008 20:33 | |
|
Heh, ešte stále si sa tuším nenaučil čítať chybové hlášky... Ale môžem ti ju opäť preložiť, aby si vedel, že tie chybové hlášky naozaj majú zmysel. A dokonca ti presne vedia povedať, kde máš chybu!
Citácia: Varovanie: Nemožno upraviť hlavičky - hlavičky už boli odoslané (výstup sa začal na /storage/www1/9/site44079/wwwroot/prihlasenie.php:13) v súbore /storage/www1/9/site44079/wwwroot/prihlasenie.php na riadku 133 Pre tento prípad sa stačí pozrieť na obsah zátvorky ( výstup začal na /storage/www1/9/site44079/wwwroot/prihlasenie.php:13 - to znamená súbor prihlasenie.php, riadok 13). Tam nájdeš nejaký znak, ktorý je pred značkou <?php - či už to bude prázdny znak, HTML, alebo čistý text... Ten treba odstrániť (resp. dať za volanie niektorých funkcí, napr. aj session_start).
Takže, ak som ti to už nepovedal niekedy dávno (a toto platí aj pre iných), uč sa angličtinu! To je všetko.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal autor témy dadmtb: 29.09.2008 21:36 | |
|
mno ved ono ja som tomu vcelku pochopil len neviem ako to vyriesit bo ked dam ten header navrch a teda dam to napr ako definiciu alebo napr pod daku premennu tak aj tzak sa to bude volat az potom ked tam budu predtym dake znaky
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 30.09.2008 2:36 | |
|
Musíš to urobiť tak, aby si tú funkciu volal ešte pred tými znakmi. Nechápem, prečo až v polovici stránky prídeš na to, že to chceš niekam presmerovať.
|
|
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|