Autor | Zpráva | ||
---|---|---|---|
kuzmic Profil * |
#1 · Zasláno: 25. 11. 2009, 00:40:56
Dobrý večer,
chtěl bych Vás poprosit, jestli by jste neporadili co dělám ve skriptu špatně aby mi fungovalo přihlášení uživatelů. V této chvíli mi to při jakékem koli jméno a heslu pustí na stránku, kam by se měl dostat, pouze pokud jméno a heslo odpovídá jménu a heslu z databáze. Když odstraním to isset tak to sice už reaguje na jméno a heslo, ale pouze na posledního uživatele v databázi, ty předchozí to vůbec nebere. Předem díky za radu. <?php include "connect.php"; include "head.php"; //include "menu.php"; ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Lékárna</title> <link rel="stylesheet" type="text/css" href="css/styl.css" /> </head> <body> <?php session_start(); $_SESSION['rovnase']='ne'; $sql=mysql_query("SELECT jmeno,prijmeni FROM zamestnanec "); while($row = mysql_fetch_array($sql)) { if((isset($_POST['heslo'])==$row['jmeno']) and (isset($_POST['heslo'])==$row['prijmeni'])) { $_SESSION['rovnase']='ano'; header("location: uvod.php"); } else { $_SESSION['rovnase']='ne'; } } if((empty($_POST['jmeno']) or (empty($_POST['heslo'])))) { echo "<div id='error'>Zadejte jméno a heslo</div>"; } elseif($_SESSION['rovnase']=='ne') { echo "<div id='error'>někde je chyba</div>"; } ?> <div id="login"><img src="img/login.jpg"></div> <div id="login_tabulka"> <form action="" method="post"> <table> <tr> <td>Jméno:</td><td><input type="text" name="jmeno" ></td> </tr> <tr> <td>Heslo:</td><td><input type="password" name="heslo" ></td> </tr> </table> <input type="submit" value="Přihlásit"> </form> </div> </body> </html> |
||
PetrM Profil * |
#2 · Zasláno: 25. 11. 2009, 00:47:05
Možná by neškodilo do SQL dotazu upřesnit (podle odeslaných údajů), kterého uživatele chcete přihlásit a porovnat jeho údaje s odeslanými.
|
||
kuzmic Profil * |
#3 · Zasláno: 25. 11. 2009, 01:11:34
provedl jsem to tedy takto:
<?php include "connect.php"; include "head.php"; //include "menu.php"; ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Lékárna</title> <link rel="stylesheet" type="text/css" href="css/styl.css" /> </head> <body> <?php session_start(); $_SESSION['rovnase']='ne'; if(isset($_POST['jmeno'])) $jmeno = $_POST['jmeno']; if(isset($_POST['heslo'])) $heslo = $_POST['heslo']; $sql=mysql_query("SELECT * FROM zamestnanec WHERE jmeno='$jmeno' and prijmeni='$heslo'"); while($row = mysql_fetch_array($sql)) { if((($_POST['jmeno'])==$row['jmeno']) and (($_POST['heslo'])==$row['prijmeni'])) { $_SESSION['rovnase']='ano'; //echo "ano"; header("location: uvod.php"); } else { $_SESSION['rovnase']='ne'; } } if((empty($_POST['jmeno']) or (empty($_POST['heslo'])))) { echo "<div id='error'>Zadejte jméno a heslo</div>"; //header("location: index1.php"); } elseif($_SESSION['rovnase']=='ne') { echo "<div id='error'>někde je chyba</div>"; } ?> <div id="login"><img src="img/login.jpg"></div> <div id="login_tabulka"> <form action="" method="post"> <table> <tr> <td>Jméno:</td><td><input type="text" name="jmeno" ></td> </tr> <tr> <td>Heslo:</td><td><input type="password" name="heslo" ></td> </tr> </table> <input type="submit" value="Přihlásit"> <p>Jméno: admin</br>Heslo: test</p> </form> </div> </body> </html> ted už to vypadá že to pracuje dobře, akorát to na začátku píše: Notice: Undefined variable: jmeno Notice: Undefined variable: heslo Pokusil jsem se to vyřešit pomocí if(isset($_POST['jmeno'])) $jmeno = $_POST['jmeno']; if(isset($_POST['heslo'])) $heslo = $_POST['heslo']; Ale nepomohlo to, hláška je tam stále |
||
Jan Tvrdík Profil |
#4 · Zasláno: 25. 11. 2009, 07:04:10
if(isset($_POST['jmeno'])) $jmeno = $_POST['jmeno']; else $jmeno = NULL; if(isset($_POST['heslo'])) $heslo = $_POST['heslo']; else $heslo = NULL; |
||
radas Profil * |
#5 · Zasláno: 25. 11. 2009, 07:38:39
osobně bych vůbec neprovaděl dotaz pokud jsou post data prázdna..schoval bych to do této podmínky
if((!empty($_POST['jmeno']) and (!empty($_POST['heslo'])))) { // tu bych dal přihlašovací proces } |
||
kuzmic Profil * |
#6 · Zasláno: 25. 11. 2009, 12:46:39
Děkuju, už to jede jak má.
|
||
Časová prodleva: 14 let
|
0