Autor Zpráva
ondrej16556
Profil
Poradili by ste mi ako obmedziť vstup neregistrovanému užívateľovi do danej časti?
Som len začiatočník
Hľadal som aj v googli.
WertriK
Profil
Český google je asi lepší nebo co ...
SwimX
Profil
ondrej16556:
Registraci a myslím i přihlašování máme zde v Nejčastější potíže s PHP

používají se sessions, takže na začátku každé stránky bude podmínka, pokud sessiona['neco'] neexistuje vypíšu: Nemáš práva, jinak zbytek stránky.
ondrej16556
Profil
WertriK:
skúšal som

SwimX:
Ďakujem za radu, pomohla mi a ešte s niečim by som potreboval pomôcť.
Skúšal som to session ale nefunguje mi, poradili by ste mi kde je chyba?

Kód súboru login.php:
<html>
<head>
<title>Storočná vojna > Registrácia</title>
</head>
<body bgcolor="#980000">
<?php
	session_start();
	if($_POST) {
		require_once 'db.php';
		$username = $_POST['username'];
		$password = $_POST['password'];
		$conn = mysql_connect($dbhost,$dbuser,$dbpass)
			or die ('Error connecting to mysql');
		mysql_select_db($dbname);
		$query = sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",
			mysql_real_escape_string($username),
			mysql_real_escape_string(md5($password)));
		$result = mysql_query($query);
		list($count) = mysql_fetch_row($result);
		if($count == 1) {
			$_SESSION['authenticated'] = true;
			$_SESSION['username'] = $username;
			$query = sprintf("UPDATE users SET last_login = NOW() WHERE UPPER(username) = UPPER('%s') AND password = '%s'",
				mysql_real_escape_string($username),
				mysql_real_escape_string(md5($password)));
			mysql_query($query);
			$query = sprintf("SELECT is_admin FROM users WHERE UPPER(username) = UPPER('%s') AND password='%s'",
				mysql_real_escape_string($username),
				mysql_real_escape_string(md5($password)));
			$result = mysql_query($query);
			list($is_admin) = mysql_fetch_row($result);
			if($is_admin == 1) {
				$_SESSION['vstup'] = 'prihlaseny';	
				header('Location:admin/index.php');			
			} else {
				$_SESSION['vstup'] = 'prihlaseny';	
				header('Location:uzivatel/index.php');				
			}
		} else {	?>
<div class="text">Toto užívateľské meno a hoslo nezodpovedá databáze!</div>
<?php	}
	}
?>
</table>
<div align="center" style="color:#888; font-size:12px;">Copyright © <a href="index.html" class="odkaz">rannystredovek.euweb.cz</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optimalizované pre IE 1440x900</div>
</html>


Kód súboru pre obmedzenie vstupu:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=Windows-1250">
</head>
<body>
<? if(isset($_SESSION['premenna']))
session_start();
echo'existuje session';
else echo'neexistuje session'; ?>
</html>


Stále mi vypisuje: neexistuje session a to aj po prihlásení. Pomohli by ste mi prosím?
SwimX
Profil
ondrej16556:
login.php
<?php     session_start(); ?>
<html>
<head>
<title>Storočná vojna > Registrácia</title>
</head>
<body bgcolor="#980000">
<?php

session start musí být na začátku, dříve než se něco vypíše. (totéž ten druhý soubor.)

Zbytek jsem nezkoumal, předpokládám že je to z FAQu a funkční. :)
ondrej16556
Profil
Ďakujem, už mi to ide ale z FAQ to nie je :)
Toto téma je uzamčeno. Odpověď nelze zaslat.