ďťż

[php\MySQL] Autoryzacja

       

Podstrony


telcocafe

Witam.

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
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.