Autor Zpráva
kharn
Profil *
Dobrý den,
prosil bych o radu mám přihlašování vid kod a potřebuju udělat opokud uživatel zadá adresu login.php, ale nebude přihlášen vypíše mu to, že se nepřihlásil. Možnosti, které jsem sám zkoušel mi vždy vypsali dvě chybové hlášky první, že nejsem přihlášen a druhou, že jsem zadal špatné přihlašovací údaje, ale potřebuji vypsat pouze error, že nejsem přihlášen. Děkuji

<?php
include "./config.php"; // připojení k databázi

if (isset($_COOKIE["jmeno"]) && isset($_COOKIE["heslo"])){
$login = $_COOKIE['jmeno'];
$heslo = $_COOKIE["heslo"]; 
$md5heslo = md5($heslo);  // MD5

$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
} else {
  $overeni = 0;
}
                             
if($overeni == 1) 
{
session_start();
session_regenerate_id();

                        if ($row["id"] == $id_admin) { 
                        $admin = '<a href="login.php?id=administrace">administrace</a>';
                        }
                        else {
                        $admin = "Uživatel";
                        }
    $_SESSION['login'] = $row["login"];           // Zapíše si login z MySQL
    $_SESSION['id'] = $row["id"];                 // Zapíše si id z MySQL
    $_SESSION['opravneni'] = $row['opravneni'];   // Zapíše si opravneni z MySQL

echo '<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="keywords" content="">
  <meta name="decription" content="">
</head>';

         if (isset($_GET['id'])) {
          $filename = $_GET['id'] . ".php";
        } else {
          $filename = "obsah.php";
        }
        $dir = "./content/";
        $dirfile = $dir . $filename;
         if (!file_exists($dirfile)):
          $dirfile = "warning/404.php"; //404 při zadání neplatné stránky                               
        endif;

echo '<link rel="stylesheet" href="styly/style.css">'; 
echo '<div class="stranka">';     
    include "./hpanel.php";
    include "./menu.php";
echo '<div class="obsah">';    
    include $dirfile;
echo '</div>';    
    include "./paticka.php";
echo '</div>';    

  die();
  
} 
else {

  echo "<div>Zadal jste špátné jméno nebo heslo! #$md5heslo</div>"; // Příkaz pro výpis, že uživatel zadal špatné heslo
  echo '<a href="index.php">Zpět</a>'; //odkaz na začátek loginu 
  }                          
}

	
?>

t4nn3r
Profil
Ja tady nidke nevidim kod, ktery vypisuje ze nejsem prihlasen ...
kharn
Profil *
smazal jsem ho jelikož mi nefungoval jak jsem již víše psal, tak jsem radši tu trapárnu, kterou jsem vymyslel smazal
t4nn3r
Profil
no tazke prihlasovani uzivatelu: popisu tu zakladni myslenku

Clovek vleze , nebo ho to presmeruje na login.php. Tady zjistime jestli je v session ulozeny uzivatel. Kdyz ano (muzeme uzivatele odhlasit atp..) kdyz ne, tak zkontrolujeme post jestli je odeslany formular (zkontrolujeme formular), kdyz neni post - vypiseme formular.
if (isset($_SESSION['jeprihlasen']))
{
// uzivatel je prihlasen
}
else
{
  if (isset($_POST['nick'])) // zkontrolujeme jestli je odeslany formular (kontrolovat vsechny pole)
  {
      $login = $_POST['nick'];
      // ziskani udaju z post, pridat nejake osetreni proti sql injection
      $dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
      $overeni = mysql_num_rows($dotaz);
      $row = mysql_fetch_array($dotaz);
      // ok mame udaje z db
      if ($overeni) //uzivatel existuje to same jako if ($overeni == 1)
        {
        
		//zpracovani uzivatele
        }    
      else
        {
        //vypsat formular
		formular();
        }
   }
   else
   {
   // vypsat formular
   formular();
   }
}

function formular()
{
// vypsani formulare
}


psal jsem to tu od boku, takze tam mozna bude nejaka chybka, ale ten princip je rekl bych dobry
kharn
Profil *
A pokud jsou přihlašovací údaje zadány nesprávně tak mě to přesměruje na login a nic nevipíše ne?
t4nn3r
Profil
pokud zadate spatne udaje, tak si tam pridejte nejakou hlasku...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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