Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie - problem z przesyłaniem danych z formularza
ciasteczko
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 11.10.2007

Ostrzeżenie: (0%)
-----


Witam.
Jestem nowym użytkownikiem forum a zarazem i raczkującym w PHP. Chciałbym stworzyć na swojej stronce rejestrację i logowanie użytkowników tak aby mieli dostęp do swoich opcji. Rejestrację z trudem ale mam już z głowy. Problem natomist mam wielki z logowaniem. Znalazłem w takiej "mądrej" książce skrypt do logowania oparty na bazie danycch MySQL. Wygląda to tak.

Plik login.php
Kod
       <?php
    
       session_start();
       if (isset($_POST["submit"])) {
         $login = $_POST["login"];
         $passwd = $_POST["passwd"];
         $auth = false;
         $pwdb = mysql_connect("localhost", "user_do_bazy", "password");
         mysql_select_db("baza", $pwdb);
         $rows = mysql_query("SELECT login, passwd FROM baza", $pwdb);
         while ($row = mysql_fetch_array($rows)) {
           if ($login == $row["login"] && $passwd == $row["passwd"]) {
             $auth = true;
             break;
           }
         }
      
         if ($auth) {
           $_SESSION["username"] = $login;
           if (isset($_GET["url"])) {
             $url = $_GET["url"];
           } else {
             $url = "panel.php";
           }
          
           if (!isset($_COOKIE[session_name()])) {
             if (strstr($url, "?")) {
               header("Location: " . $url .
                 "&" . session_name() . "=" . session_id());
             } else {
               header("Location: " . $url .
                 "?" . session_name() . "=" . session_id());
             }
           } else {
             header("Location: " . $url);
           }
         }
       }
       ?>
       <html>
       <head>
       <title>Uwierzytelnianie użytkowników</title>
       </head>
       <body>
      
       <form method="post">
       <input type="text" name="login" />
       <input type="password" name="passwd" />
       <input type="submit" name="submit" value="Login" />
       </form>
      
       </body>
       </html>

No i po poprawnym zalogowaniu się przechodzi mi do pliku panel.php, który wygląda tak:
Kod
   <html>
   <head>
   </head>
   <body>
   <?
  
       session_start();
       if (!isset($_SESSION["username"])) {
           header("Location: /protected3/login.php?url=" .
           urlencode($_SERVER["SCRIPT_NAME"]));
       } else {    
         echo "<B>Nazwa istniejacej sesji:</B>&nbsp;".$_SESSION["username"];
             echo "&nbsp;<A href=\"logout.php?\"" . SID . "\">";
             echo "[Wyloguj]</A><BR>";    
         echo "<B>Twoj login:</B>&nbsp;".$_GET['login'];
         echo "<B>Twoje haslo:</B>&nbsp;".$_GET['passwd'];
      }
   ?>
  
   </body>
   </html>


No i problem jest taki że kiedy już po zalogowaniu się przechodzi mi do pliku panel.php nie mam tam dostępu do zmiennych $login oraz &passwd tzn po wpisaniu żeby wyświetlił login i hasło widzę coś takiego:
Kod
Notice:  Undefined index:  login in /usr/account/ftp/scoute/panel.php on line 19
Notice:  Undefined index:  passwd in /usr/account/ftp/scoute/panel.php on line 20
   [\code]
   Co ciekwae kiedy wpiszę:
   [code]
   echo $_SESSION["username"];


pokazuje mi nazwę sesji więc uważam że jakieś tam dane przekazuje do panel.php. nie przekazuje jednak loginu i hasla. <B>W czym zatem tkwi problem. Co jest nie tak w tym skrypcie ?</B>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 10:45