Autor Zpráva
kuzmic
Profil *
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 *
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 *
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
if(isset($_POST['jmeno'])) $jmeno = $_POST['jmeno']; else $jmeno = NULL;
if(isset($_POST['heslo'])) $heslo = $_POST['heslo']; else $heslo = NULL;
radas
Profil *
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 *
Děkuju, už to jede jak má.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: