Autor | Zpráva | ||
---|---|---|---|
DeeJay Profil * |
#1 · Zasláno: 17. 3. 2013, 10:59:16
čau, mám problém ohledně odhlašování vždycky když dám F5 odhlásí mě to z mého webu. Nevím vubec proč.
http://kfc-gaming.eu/testgame/ |
||
jenikkozak Profil |
#2 · Zasláno: 17. 3. 2013, 11:07:50
DeeJay:
Máme si příčinu jen tipovat, nebo nám poskytneš i nějaký skript na přihlašování a odhlašování? |
||
DeeJay Profil * |
#3 · Zasláno: 17. 3. 2013, 11:32:42
prihlaseni.php
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <meta http-equiv="Content-type" content="text/html" charset="windows-1250"> <meta http-equiv="Content-Style-Type" content="text/css"> <div style="display:none"><endora></div> <?php //Pokud uživatel nějaké políčko nevyplnil, sdělíme mu to if( isset($_SESSION['ERROR_ZPRAVA']) && is_array($_SESSION['ERROR_ZPRAVA']) && count($_SESSION['ERROR_ZPRAVA']) >0 ) { echo '<ul type="I">'; foreach($_SESSION['ERROR_ZPRAVA'] as $zpr) { echo '<li>',$zpr,'</li>'; } echo '</ul>'; unset($_SESSION['ERROR_ZPRAVA']); } //Registrace úspěšná a ostatní $zpr = array('registrace-uspesna' => 'Byl/a jsi úspěšně zaregisrován/a. Nyní se můžeš pihlásit.', 'prihlaseni-selhalo' => 'Přihlášení selhalo. Prosím, zkontroluj zadané údaje.', 'automaticke-odhlaseni' => 'Byl/a jsi neaktivní déle jak 30 minut. Byl/a jsi automaticky odhlášen/a.',); //Jestliže jseme dostali "z" tak řekneme obsah arraye if($_GET['z']){ echo "".$zpr[$_GET['z']].""; }else{ echo ""; } ?> <form action="zprihlaseni.php" method="post"> <table> <tr> <td>Nick: </td><td><input type="text" name="nick"></td> <td>Heslo: </td><td><input type="password" name="heslo"></td> <td> </td><td align="right"><input type="submit" name="Submit" value="Přihlásit se"></td> </tr> </table> </form> autentizace.php <?php //Nastartování session session_start(); //Jestliže není zadaný v session id hodí vás to na prihlaseni.php if(!isset($_SESSION['ID']) || (trim($_SESSION['ID']) == '')) { header("location: prihlaseni.php?z=automaticke-odhlaseni"); exit(); } ? jsemPrihlasen.php <!--ČEŠTINA--> <meta http-equiv="Content-type" content="text/html" charset="windows-1250"> <meta http-equiv="Content-Style-Type" content="text/css"> <!--ČEŠTINA--> <!--ADVERT OFF--> <div style="display:none"><endora></div> <!--ADVERT OFF--> <?require_once('autentizace.php'); //Velice důležité (kdyby to tu nebylo, mohl by sem nepřihlášený uživatel)?> <font color="#00ff00"><p><strong>Vítej </strong><b><?echo $_SESSION['NICK']?>.</b> <br><font color="#00ff00">Na kontě máš: </font><font color="red">0</font> <font color="#00ff00">Temné rudy</font></p></font> A tady dále pokračuje stránka.... <a href="odhlasit.php">Odhlásit</a> odhlasit.php <?php //Nastartování session session_start(); //Zničení (unsetnutí) všech dat co jsme uložili do session unset($_SESSION['ID']); unset($_SESSION['NICK']); unset($_SESSION['HESLO']); echo "Byl/a jsi úspěšně odhlášen/a"; ?> <a href="prihlaseni.php">příhlášení</a> | | | <a href="">hlavní stránka</a registrace.php <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <meta http-equiv="Content-type" content="text/html" charset="windows-1250"> <meta http-equiv="Content-Style-Type" content="text/css"> <div style="display:none"><endora></div> <?php //Pokud uživatel nějaké políčko nevyplnil, sdělíme mu to if( isset($_SESSION['ERROR_ZPRAVA']) && is_array($_SESSION['ERROR_ZPRAVA']) && count($_SESSION['ERROR_ZPRAVA']) >0 ) { echo '<ul type="I">'; foreach($_SESSION['ERROR_ZPRAVA'] as $zpr) { echo '<li>',$zpr,'</li>'; } echo '</ul>'; unset($_SESSION['ERROR_ZPRAVA']); } ?> <form action="zregistrace.php" method="post"> <table> <tr> <td>Nick: </td><td><input type="text" name="nick"></td> </tr> <tr> <td>Heslo: </td><td><input type="password" name="heslo"></td> </tr> <tr> <td>Heslo znovu: </td><td><input type="password" name="zheslo"></td> </tr> <tr> <td> </td><td align="right"><input type="submit" name="Submit" value="Registrovat"></td> </tr> </table> </form> zprihlaseni.php <?php //Nastartování session session_start(); //Vložení config.php require_once('config.php'); $error_zprava = array(); //Validace pro errory $error = false; //Připojení k mysql serveru $link = mysql_connect(SQL_HOST, SQL_UZIVATEL, SQL_HESLO); if(!$link) { die('Nelze se připojit: ' . mysql_error()); } //Zvolíme databázi $db = mysql_select_db(SQL_DATABAZE); if(!$db) { die("Databáze nenalezena"); } //Zabráníme sql injekci function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Vyčistíme přijaté hodnoty $nick = clean($_POST['nick']); $heslo = clean($_POST['heslo']); //Kontrolujeme, zda uživatel vyplnil všechna pole //Kontrola nicku if($nick == '') { $error_zprava[] = 'Vlož nick!'; $error = true; } //Kontrola hesla if($heslo == '') { $error_zprava[] = 'Vlož heslo!'; $error = true; } //Pokud je chyba v políčkách, vrátíme uživatele zpět a sdělíme co neměl vyplněno if($error) { $_SESSION['ERROR_ZPRAVA'] = $error_zprava; session_write_close(); header("location: prihlaseni.php?z=prihlaseni-selhalo"); exit(); } //Vytvoříme sql dotaz $dotaz="SELECT * FROM uzivatele WHERE nick='$nick' AND heslo='".md5($_POST['heslo'])."'"; mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_results=utf8"); //Provedeme sql dotaz $pdotaz=mysql_query($dotaz); //Pokud dosud bylo vše úspěšné, zapíšeme údaje do session if($pdotaz) { if(mysql_num_rows($pdotaz) == 1) { session_regenerate_id(); $uzivatel = mysql_fetch_assoc($pdotaz); //Zapisování údajů do session $_SESSION['ID'] = $uzivatel['id']; $_SESSION['NICK'] = $uzivatel['nick']; $_SESSION['HESLO'] = $uzivatel['heslo']; session_write_close(); header("location: ".WEB_START.""); exit(); }else { //Vše bylo neůspěšné. Přihlášení se nezdařilo header("location: prihlaseni.php?z=prihlaseni-selhalo"); exit(); } }else { die("Selhání dotazu"); } ?> zregistrace.php <?php //Nastartování session session_start(); //Vložení config.php require_once('config.php'); $error_zprava = array(); //Validace pro errory $error = false; //Připojení k mysql serveru $link = mysql_connect(SQL_HOST, SQL_UZIVATEL, SQL_HESLO); if(!$link) { die('Nelze se připojit: ' . mysql_error()); } //Zvolíme databázi $db = mysql_select_db(SQL_DATABAZE); if(!$db) { die("Databáze nenalezena"); } //Zabráníme sql injekci function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Vyčistíme přijaté hodnoty $nick = htmlspecialchars(clean($_POST['nick'])); $heslo = htmlspecialchars(clean($_POST['heslo'])); $zheslo = clean($_POST['zheslo']); $ip = $_SERVER["REMOTE_ADDR"]; //Kontrolujeme, zda uživatel vyplnil všechna pole //Kontrola nicku if($nick == '') { $error_zprava[] = 'Vyplň nick!'; $error = true; } //Kontrola hesla if($heslo == '') { $error_zprava[] = 'Vyplň heslo!'; $error = true; } //Kontrola zopakovaného hesla if($zheslo == '') { $error_zprava[] = 'Vyplň kontrolu hesla!'; $error = true; } //Porovnání zadatných hesel if( strcmp($heslo, $zheslo) != 0 ) { $error_zprava[] = 'Hesla nesouhlasí!'; $error = true; } //Zkontrolujeme, zda již někdo pod tímto nickem není zaregistrován if($nick != '') { $dotaz = "SELECT * FROM uzivatele WHERE nick='$nick'"; $pdotaz = mysql_query($dotaz); if($pdotaz) { if(mysql_num_rows($pdotaz) > 0) { $error_zprava[] = 'Nick je již zabrán!'; $error = true; } @mysql_free_result($pdotaz); } else { die("Selhání dotazu č1"); } } //Pokud je chyba v políčkách, vrátíme uživatele zpět a sdělíme co neměl vyplněno if($error) { $_SESSION['ERROR_ZPRAVA'] = $error_zprava; session_write_close(); header("location: registrace.php"); exit(); } //Vytvoříme sql dotaz $dotaz = "INSERT INTO uzivatele(nick, heslo, ip) VALUES('$nick','".md5($_POST['heslo'])."','$ip')"; mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_results=utf8"); //Provedeme sql dotaz $pdotaz = @mysql_query($dotaz); //Při úspěšné registraci hodíme uživatele na prihlaseni.php?z=registrace-uspesna if($pdotaz) { header("location: prihlaseni.php?z=registrace-uspesna"); exit(); }else { die("Selhání dotazu č2"); } ?> |
||
Časová prodleva: 11 let
|
0