Login uživatele – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Login uživatele – PHP – Fórum – Programujte.comLogin uživatele – PHP – Fórum – Programujte.com

 

Counter0
Newbie
1. 6. 2013   #1
-
0
-

Zdarec,

Nejprve ukážu kod:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  <br><br><center>
<h1>Přihlášení uživatele</h1>
<form action="prihlas.php" method="POST">
<table>
<tr><td>Login:</td><td><input type="text" name="login" size="15"></td></tr>
<tr><td>Heslo:</td><td><input type="password" name="heslo" size="15"></td></tr>
<tr><td></td><td><input type="submit" value="Přihlásit se"><input type="reset" value="Reset"></td></tr>
</table>
</form>
</center>
<?php
require("connect.php");
if(isset($_POST["login"])and(isset($_POST["heslo"]))){
if(empty($_POST["login"])and(empty($_POST["heslo"]))){
echo("Nezadal jste login nebo heslo");
}
else{
$login=$_POST["login"];
$heslo=$_POST["heslo"];
$dotaz="select * from users where login=\"$login\" and heslo=\"$heslo\"";
$vysledek=mysql_query($dotaz)or die ("Chyba při přihlašování uživatele");
if(mysql_num_rows($vysledek)==1){
header("location:zkouska.php");

}



}




}





?>
  </body>
</html>

Můj problém spočívá v tom,že když nezadám správně login a heslo tak se mi nevypíše hláška "Chyba při přihlašování uživatele"). 

Díky za poskytnutí rad :)

Nahlásit jako SPAM
IP: 85.207.106.–
z_moravec
~ Redaktor
+3
Posthunter
1. 6. 2013   #2
-
0
-

Hlášku by to vypsalo pouze pokud by funkce mysql_query() vrátila false. Pokud pouze vrátí prázdný výsledek, není důvod volat die(). Můžeš to např. řešit počtem vrácených řádků (mysql_num_rows()). Pokud bude 0 zobraz hlášku.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Counter0
Newbie
1. 6. 2013   #3
-
0
-

#2 z_moravec
To jsem zkoušel abych dal ==0 jenže pak to pustí uživatele z kterého koliv loginu...

Nahlásit jako SPAM
IP: 85.207.106.–
z_moravec
~ Redaktor
+3
Posthunter
1. 6. 2013   #4
-
0
-

Musíš samozřejmě za tu hlášku dát exit(), aby skript dál neběžel.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Counter0
Newbie
1. 6. 2013   #5
-
0
-

#4 z_moravec
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  <br><br><center>
<h1>Přihlášení uživatele</h1>
<form action="prihlas.php" method="POST">
<table>
<tr><td>Login:</td><td><input type="text" name="login" size="15"></td></tr>
<tr><td>Heslo:</td><td><input type="password" name="heslo" size="15"></td></tr>
<tr><td></td><td><input type="submit" value="Přihlásit se"><input type="reset" value="Reset"></td></tr>
</table>
</form>
</center>
<?php
require("connect.php");
if(isset($_POST["login"])and(isset($_POST["heslo"]))){
if(empty($_POST["login"])and(empty($_POST["heslo"]))){
echo("Nezadal jste login nebo heslo");
}
else{
$login=$_POST["login"];
$heslo=$_POST["heslo"];
$dotaz="select * from users where login=\"$login\" and heslo=\"$heslo\"";
$vysledek=mysql_query($dotaz)or die ("Chyba při přihlašování uživatele");exit;
if(mysql_num_rows($vysledek)==0){
header("location:zkouska.php");

}



}




}





?>
  </body>
</html>



a pořád to nejede, ani mě to nevyhodí pryč...

Nahlásit jako SPAM
IP: 85.207.106.–
Counter0
Newbie
1. 6. 2013   #6
-
0
-

Vyřešil jsem to tak,že jsem vymazal or die a nahradil jsem to

 if($vysledek=mysql_query($dotaz)){

echo ("Nepodařilo se připojit");
}

A funguje :)

Nahlásit jako SPAM
IP: 85.207.106.–
null_while
~ Moderátor
+6
Věrný člen
1. 6. 2013   #7
-
0
-

Ten kód je strašně nebezpečný. Zkus použít: 
 

Důležité je, aby si přepsal tabulku account a 2 proměnné - password a login, protože se to předpokládám jmenuje jinak. Koukal jsem, že nepoužíváš ani základní hash, což nevím jestli je dobře a hlavně jestli je to dle zákona v pořádku, každopádně si kdyžtak stačí odmazat md5() funkci u hesla.

function login($email,$password)
      {
        if(!isset($email) || !isset($password)) {
	      $redirect = "/login.php";
	      header("location: $redirect");
        }

        $email = mysql_real_escape_string($email);
        $password = md5($password);

        $whois = $_SERVER['HTTP_USER_AGENT'] . ", " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . ", " . $_SERVER['REMOTE_ADDR'];

        $query = "SELECT * FROM account
                  WHERE account.email = '".$email."' AND account.password = '".$password."'";

        $result = mysql_query($query);
        while ($account = mysql_fetch_object($result))
        {
	      if(!isset($account->email) || $account->auth_type < 1) {
	          $redirect = "/login.php";
	          header("location: $redirect");
	      }

	      $_SESSION['online'] = 1; // is online
	      $_SESSION['account_id'] = $account->account_id;
	      $_SESSION['auth_type'] = $account->auth_type;

	      $redirect = "administrace.php";
	      header("location: $redirect");
	      exit;
        }
        $redirect = "/login.php";
        header("location: $redirect");
      }
Nahlásit jako SPAM
IP: 213.250.198.–
WEBNIA.cz - tvorba webových stránek
peter
~ Anonymní uživatel
4014 příspěvků
3. 6. 2013   #8
-
0
-

mas tam 3x stejny kod, 3x ho budes muset opravovat pri prejmenovani souboru
$redirect = "/login.php";
        header("location: $redirect");

Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 47 hostů

Podobná vlákna

Přihlášení uživatele — založil quest

C# necinnost uzivatele — založil double

Geolokace uživatele — založil richard.zavodny

Nečinost uživatele — založil sowared

Simulace uživatele — založil midnighter@centrum.cz

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý