Autor Zpráva
Alastor_Kopal
Profil *
Mám problém při tomto php k´du mi to vyhodí hlášku že mám ban 1.stupně jenomže přímo v databázi sem se díval že mám ban 0

<?php
session_start(); // Startujeme session
?>
<html>
<head>

        <meta http-equiv="content-type" content="text/html; charset=windows-1250" />
		<META NAME="author" CONTENT="Alastor Kopál">	
</head>
<body>
<?php
$ban = $_SESSION['ban'];


				if($_SESSION['ban']==0){
					echo "HTML které by se mi mělo zobrazit jenomže se mi nezobrazí";
}elseif($ban == 1){
  echo "Jsi ban stupně 1";
}elseif($ban == 2){
  echo "Jsi ban";
}elseif($ban == 3){
  echo "Jsi ban";
}else{
echo "HTML když nejsi přihlášen";
}
?>	
</body>
</html>
Alphard
Profil
Že máte něco v databázi je pěkné, ale tady porovnáváte jenom session.
Alastor_Kopal
Profil *
jo jenomže v přihlášení do session načítám obsah databáze

(už jsem to zkoušel zaměnit
}elseif($ban == 2){
  echo "Jsi ban stupně 1";
}elseif($ban == 1){
  echo "Jsi ban";

a stejně mi to vyhledalo 1 takže si asi session myslí že můj $_session['ban'] = 1
keeehi
Profil
Alastor_Kopal
V těch kódech, co jste poslal, jsem chybu nenašel (která by omezobvala funkčnost). Takže by bylo dobré tady ukázat, jak při přihlášení načítáte obsah databáze do session.
Alastor_Kopal
Profil *
Toto je kód přihlášení

<?php 
ob_start();

session_start();  //Nahodíme session
if(isset($_POST['jmeno'])){ //Zkontrolujeme jmeno
	require ("db.php"); //Pripojime se do dtb.
	    $dbjmeno = $_POST['jmeno']; //Do proměnné dbjmeno dáme jméno z formulaře
	    $dbheslo = ($_POST['heslo']); //Do proměnné dbheslo dáme heslo z formulaře
//Připojíme se do databáze a vytáhneme zní ověření zda jmeno a heslo souhlasí.
		$pripoj = MySQL_Query("SELECT * FROM `dobro` WHERE `jmeno` = '$dbjmeno' and `heslo` = '$dbheslo'") or die (mysql_error());
			$zaznam = mysql_fetch_array($pripoj); 

				if($zaznam['jmeno']){ 
				
					$_SESSION['jmeno'] = $zaznam['jmeno']; //Uložíme si do session jmeno
					$_SESSION['id'] = $zaznam['id'];  //Uložíme si do session pořadí uživatele
					$_SESSION['heslo'] = $zaznam['heslo'];  //Uložíme si do session heslo
					$_SESSION['penize'] = $zaznam['penize'];
(je tu ještě pár věcí ale ty nemusím zobrazovat neměly by omezovat funkčnost)

					$presmeruj="index.php";  //Přesměrujeme uživatele pokud vyplnil vše dobře
					header("location: $presmeruj"); 
				}else{
					echo" <p><font color=\"#f00\" size=\"2\"><strong><em><u>Buď jste zadali špatné údaje nebo jste na straně zla opakujte prosím přihlášení.</u></em></strong></font></p> "; //Chyba připojení s databází
				}
		mysql_free_result($pripoj);
}
ob_end_flush();
?>
<?php
echo "
<style>
input, textarea, select {background-color: #000; color: white; border: 1px solid red}
input.tlacitko {background-color: navy; color: #000; font-weight: bold; cursor: hand}
</style>
<div class=\"popsany\">
<center><form action=\"prihlaseni.php\" method=\"post\">
<div style=\"text-align: center;\"><table width=\"200\" cellspacing=\"1\" cellpadding=\"1\" border=\"0\" align=\"center\" summary=\"\">
    <tbody>
        <tr>
            <td style=\"text-align: center;\"><font color=\"Red\">Jméno:</td>
            <td style=\"text-align: center;\"><input type=\"text\" name=\"jmeno\" maxlength=\"32\"/></font></td>
        </tr>
        <tr>
            <td style=\"text-align: center;\"><font color=\"Red\">Heslo:</td>
            <td style=\"text-align: center;\"><input type=\"password\" name=\"heslo\" maxlength=\"32\"/></font></td>
        </tr>
        <tr align=\"center\">
            <td style=\"vertical-align: top;\" colspan=\"2\"><input type=\"submit\" name=\"odeslat\" value=\"Přihlásit\"/>
</form></center><br /></td>
        </tr>
    </tbody>
</table>
<br /></div>
 ";
?>

keeehi
Profil
řádek 19: Když jste tam těch pár věcí smazal, mazal jste i $zaznam['ban']?
Alastor_Kopal
Profil *
Promiňte ano

					$_SESSION['jmeno'] = $zaznam['jmeno']; //Uložíme si do session jmeno
					$_SESSION['id'] = $zaznam['id'];  //Uložíme si do session pořadí uživatele
					$_SESSION['heslo'] = $zaznam['heslo'];  //Uložíme si do session heslo
					$_SESSION['penize'] = $zaznam['penize'];
					$_SESSION['misto'] = $zaznam['misto'];
					$_SESSION['status'] = $zaznam['status'];
					$_SESSION['zdravi'] = $zaznam['zdravi'];
					$_SESSION['maxzdravi'] = $zaznam['maxzdravi'];
					$_SESSION['mail'] = $zaznam['mail'];  //Uložíme si do session mail
					$_SESSION['rasa'] = $zaznam['rasa'];  //Uložíme si do session rasu
					$_SESSION['ban'] = $zaznam['ban'];  //Uložíme si do session ban
Alastor_Kopal
Profil *
v tomto případu hrají roli 3 stránky

prihlaseni.php
index.php
strankakterablbne.php

je zajimavy že index.php na který jsem hne poté co se přihlásím přesměrován tak tam mi to ban nehlásí nevim fakt
Alastor_Kopal
Profil *
tak jinak všechno funguje přejdu přes přihlášení a
index.php - funguje když dám F5 (aktualizaci) vpořádku
strankakterablbne.php - funguje když dám F5 už si podmínky nesedí
Mezerník
Profil *
a co takhle
session_register('jmeno');
$_SESSION['jmeno'] = $zaznam['jmeno'];
nightfish
Profil
Mezerník
session_register byla zavržena v PHP 5.3.0

Alastor_Kopal
nejsou zapnuté register_globals a nepřepisuješ si proměnnou $ban nebo $_SESSION['ban'] někde?
keeehi
Profil
je na stránce strankakterablbne.php session_start();?

nightfish
a jak víš, kterou verzi Alastor_Kopal má?
Alastor_Kopal
Profil *
Promiňte že jsem vás otravoval už jsem našel chybu díki moc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0