ďťż
Podstrony
|
telcocafeWitam.Dla treningu pisałem skrypt autoryzacji użytkownika. <?php include "common_db.inc"; $register_script = "register.php"; function auth_user($userid, $userpassword) { global $defaul_dbname, $user_tablename; $link_id = db_connect($default_dbname); $query = "SELECT username FROM $user_tablename WHERE userid = '$userid' AND userpassword = password('$userpassword')"; $result = mysql_query($query); if(!mysql_num_rows($result)) return 0; else { $query_data = mysql_fetch_row($result); return $query_data[0]; } } function login_form() { global $PHP_SELF; ?> <HTML> <HEAD> <TITLE>Logowanie</TITLE> </HEAD> <BODY> <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>"> <DIV ALIGN="center"><CENTER> <TABLE BORDER="1" WIDTH="200" CELLPADDING="2"> <TR> <TH WIDTH="18%" ALIGN="right" NOWRAP>Identyfikator</TH> <TD WIDTH="82%" NOWRAP> <INPUT TYPE="text" NAME="userid" SIZE="8"> </TD> </TR> <TR> <TH WIDTH="18%" ALIGN="right" NOWRAP>Hasło</TH> <TD WIDTH="82%" NOWRAP> <INPUT TYPE="password" NAME="userpassword" SIZE="8"> </TD> </TR> <TR> <TD WIDTH="100%" COLSPAN="2" ALIGN="center" NOWRAP> <INPUT TYPE="submit" VALUE="Logowanie" NAME="submit"> </TD> </TR> </TABLE> </CENTER></DIV> </FORM> </BODY> </HTML> <? } session_start(); if(!isset($userid)) { login_form(); exit; } else { session_register("userid", "userpassword"); $username = auth_user($userid, $userpassword); if(!$username) { session_unregister("userid"); session_unregister("userpassword"); echo "Autoryzacja nieudana. " . "Musisz podac poprawny idenryfikator oraz haslo. " . "Jeszcze raz sprobuj sie zalogowac.<BR>\n"; echo "<A HREF=\"$PHP_SELF\">Logowanie</A><BR>"; echo "Jesli jeszcze nie jestes zarejestrowanym czlonkiem witryny. " . "to powinienes sie zarejestrowac.<BR>\n"; echo "<A HREF=\"$register_script\">Rejestracja</A>"; exit; } else echo "Witamy $username"; } ?> Gdy ładuje ten skrypt tabelka z logowaniem owszem się pojawia i działa, ale wraz z okienkiem autoryzajcji na stronie wyświetlają sie dwa komunikaty błedu. Oto one: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\mysql\common_db.inc:1) in c:\usr\krasnal\www\mysql\auth_user.php on line 55 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\mysql\common_db.inc:1) in c:\usr\krasnal\www\mysql\auth_user.php on line 55 Od razu mówie, że w pliku "common_db.inc" nie ma żadnych funkcji służących do otwierania sesji czy wysyłania ciasteczek. Czy ktoś domyśla się czemu tak jest? :excl: Było, było poruszane na forum, Sam miałem z tym problem. Otóż tę część: Â <? } session_start(); if(!isset($userid)) { login_form(); exit; } else { session_register("userid", "userpassword"); $username = auth_user($userid, $userpassword); if(!$username) { session_unregister("userid"); session_unregister("userpassword"); echo "Autoryzacja nieudana. " . "Musisz podac poprawny idenryfikator oraz haslo. " . "Jeszcze raz sprobuj sie zalogowac.<BR>\n"; echo "<A HREF=\"$PHP_SELF\">Logowanie</A><BR>"; echo "Jesli jeszcze nie jestes zarejestrowanym czlonkiem witryny. " . "to powinienes sie zarejestrowac.<BR>\n"; echo "<A HREF=\"$register_script\">Rejestracja</A>"; exit; } else echo "Witamy $username"; } ?> Wstawiasz na samą górę a html na sam dół. A to mój (ten sam) problem: http://forum.ks-eksp...showtopic=54147 :rolleyes: :excl: Użytkownik fallschirmjager edytował ten post 11 sierpień 2005, 18:29 |
|||
Sitedesign by AltusUmbrae. |