| 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: 13 let
|
|||
0