Autor Zpráva
BouBelka
Profil *
Ahojte je tu zase jeden z řady problémů :/ Když chci aby se při přihlášení určilo jestli jste admin nebo obyč uživateltak ten skript prostě nejede ... :( zde je skript:
<?php if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1 and $_GET['prava']==0)
  { 
  echo '<h3>Uživatel: ".$_SESSION['login'] . "</h3>
  <a href="chat.php">Chatovací místnost</a></li><br>
  <a href="uprav_profil.php">Upravit profil</a></li><br>
  <a href="search.php">Vyhledávání</a></li>
  <a href="logout.php">Odhlášení</a></li>'; 
  }
  else{ 
  echo '<h3>Uživatel: HOST</h3>
  <a href="login.php">Přihlášení</a></li><br>
  <a href="registrace.php">Registrace</a></li><br>
  <a href="search.php">Vyhledávání</a></li>'; } ?>
  
  <?php if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1 and $_GET['prava']==1)
  { 
  echo '<h3>Administrátor: ".$_SESSION['login'] . "</h3>
  <a href="upravchat.php">Chatovací místnost</a></li><br>
  <a href="uprav_profil.php">Upravit profil</a></li><br>
  <a href="search.php">Vyhledávání</a></li>
  <a href="logout.php">Odhlášení</a></li>'; 
  }
  else{ 
  echo '<h3>Uživatel: HOST</h3>
  <a href="login.php">Přihlášení</a></li><br>
  <a href="registrace.php">Registrace</a></li><br>
  <a href="search.php">Vyhledávání</a></li>'; } ?>


tech odkazů si nevšímejte ... ještě jsem vubec nezačal s jejich možnostma .. :( prosím o pomoc a děkuji za každou odpověd..
ShiraNai7
Profil
Máš tam chyby v syntaxi.

ten skript prostě nejede ..

Tak to nevím kde to prostě vyvíjíš, když ti PHP nepíše chyby.

<?php if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1 and $_GET['prava']==0)
  { 
  echo '<h3>Uživatel: '.$_SESSION['login'] . '</h3>
  <a href="chat.php">Chatovací místnost</a></li><br>
  <a href="uprav_profil.php">Upravit profil</a></li><br>
  <a href="search.php">Vyhledávání</a></li>
  <a href="logout.php">Odhlášení</a></li>'; 
  }
  else{ 
  echo '<h3>Uživatel: HOST</h3>
  <a href="login.php">Přihlášení</a></li><br>
  <a href="registrace.php">Registrace</a></li><br>
  <a href="search.php">Vyhledávání</a></li>'; } ?>
  
  <?php if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1 and $_GET['prava']==1)
  { 
  echo '<h3>Administrátor: '.$_SESSION['login'] . '</h3>
  <a href="upravchat.php">Chatovací místnost</a></li><br>
  <a href="uprav_profil.php">Upravit profil</a></li><br>
  <a href="search.php">Vyhledávání</a></li>
  <a href="logout.php">Odhlášení</a></li>'; 
  }
  else{ 
  echo '<h3>Uživatel: HOST</h3>
  <a href="login.php">Přihlášení</a></li><br>
  <a href="registrace.php">Registrace</a></li><br>
  <a href="search.php">Vyhledávání</a></li>'; } ?>
Jozin
Profil
Zdravím,

nejede to protože máš podmínku, že pokud jsi uživatel vypíše to uživatele, pokud nejsi uživatel vypíše to hosta a dále pokud jsi admin vypíše to admina, takže hádám, že se ti vypisuje host a pod tím hned admin.

Dám ti sem ukázku, jak by se to dalo řešit:
<?php

if(isset($_SESSION['prihlasen') && $_SESSION['prihlasen'] == 1) {
  switch((int) $_GET['prava']) {
    0: echo "Uživatel";
         break;
    1: echo "Admin";
        break; //neřeším, když budou chybná práva
  }
} else echo "Host";

dále předávat práva pomocí $_GET je nebezpečné... přihlásím se jako běžný uživatel a v adresní řádce místo prava=0 přepíšu na prava=1 a stava se ze mě admin.
bubík
Profil *
Jozin:
kod mam zapsán takto a stejnak to nejede :(
<?php

if(isset($_SESSION['prihlasen') && $_SESSION['prihlasen'] == 1) {
  switch((int) $_GET['prava']) {
    0: echo "Uživatel";
         break;
    1: echo "Admin";
        break; //neřeším, když budou chybná práva
  }
} else echo "Host"; } ?>


a čím bych mohl nahradit GET aby to bylo bezpečnější ? :) a ještě poslední otázka jak zapnu v chromu výbis chybových hlášek abych věděl kde přesně je problém ?
Jozin
Profil
bubík:
1. na začátku scriptu musíš mít session_start(); //pokud nemáš zapnutý autostart
2. když používáš SESSION, tak práva mají být uložena tam
3. Prohlížeč nemá vliv na výpis chybových hlášení. Musíš to zapnout v php.ini (spíš nastavit, ale i zapnout)
4. Na začátku scriptu. Po zapnutí session dej var_dump($_SESSION); a co ti to vypíše dej sem. Možná tam máš naprosto jiné indexy, než používáš
bubík
Profil *
Jozin:
Já mám sessions start na začátku stránky. No nejspíš se tam ukládaj .... Aha já vubec php.ini nemám :/ vypíše mi to zase: Chyba protokolu HTTP 500 (Internal Server Error): Při pokusu o splnění požadavku došlo na serveru k neočekávané situaci. .. takhle sem to tam napsal :
<?php
var_dump($_SESSION);
if(isset($_SESSION['prihlasen') && $_SESSION['prihlasen'] == 1) {
  switch((int) $_GET['prava']) {
    0: echo "Uživatel";
         break;
    1: echo "Admin";
        break; //neřeším, když budou chybná práva
  }
} else echo "Host"; } ?>
Jozin
Profil
php.ini musíš mít, pokud php rozjíždíš na počítači a neupladuješ to někam na net. Funguje ti vůbec PHP?
bubík
Profil *
jojo funguje .. jenžejá to nahrávám na net ... :/ to vadí ? jinak ještě pro příště jak mam nastavit to php.ini ? nebo mužeš mi sem hodit nějakej manual na to ? myslim tim odkaz nějakej :)
Jozin
Profil
bubík:
Tak to je problém, protože, když něco vyvýjíš, tak je blbost to furt nahrávat na net. Pak na free hostinzích (co u tebe předpokládám) mají php.ini a vše přednastavené a uživatelem neměnné, ale přímo v PHP se dá zapnout výpis chyb.

Na jaký hosting to nahráváš?
A tady je to do PHP, aby to vypisovalo chyby:
<?php

error_reporting(E_ALL ^ E_NOTICE);
bubík
Profil *
no mám to na php5 ... jako je to blbost ale mě se seknul phpmyadmin takže si tam nemužu nahrát db ... hned ti napíšu co mi to píše :)
bubík
Profil *
Jozin:
no já nevim asi dělám něco špatně ale chyby mi to prostě ne a ne vypsat :(
Jozin
Profil
bubík:
Když si na php5.cz, tak proč se nekoukneš tam?! 11. rada je to, co potřebuješ vědět. Je tam napsané, jak zprovoznit výpis chyb, ale pokud ti můžu radit, tak si nainstaluj třeba EasyPHP a vyvýjej si hezky offline.
bubík
Profil *
jo tak píše mi to tohle Parse error: syntax error, unexpected ')', expecting ']' in /www/sites/5/site4835/public_html/index.php on line 16 zde je kod:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<head>
  <title>HTML, CSS, PHP, MySQL, JavaScript
  </title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
  
    <div id="leftcolumn">  
<?php
var_dump($_SESSION);
if(isset($_SESSION['prihlasen') && $_SESSION['prihlasen'] == 1) {
  switch((int) $_GET['prava']) {
    0: echo "Uživatel";
         break;
    1: echo "Admin";
        break; //neřeším, když budou chybná práva
  }
      } else echo "Host"; } ?><h3>Novinky na webu</h3> 
<?php
include("db.php");
$sql = mysql_query("SELECT * FROM tabulka ORDER BY id DESC LIMIT 3") or die(mysql_error());
while($vypis = mysql_fetch_array($sql))
{
echo "".$vypis["text"]."<br>";
}
      ?><h3>Statistiky webu</h3>
      <?php include ("pocitadlo.php"); ?> 
    </div>  
    <div id="rightcolumn"> Right Column 
    </div>  
    <div id="footer"></div> 
  </div>
</body>
</html>
bubík
Profil *
a hned jak to opravim tak to píše: Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in /www/sites/5/site4835/public_html/index.php on line 16
bubík
Profil *
Jozin
Pomůžeš mi s tím prosím ? :((
bubík
Profil *
Jozin
Pomůžeš mi s tím prosím ? :((
Tori
Profil
if(isset($_SESSION['prihlasen']) && $_SESSION['prihlasen'] == 1) {
A ta druhá složená závorka na ř.23 je tam myslím navíc.
bubík
Profil *
:P fakt vubec nechápu ted mi to píše: Parse error: syntax error, unexpected T_LNUMBER, expecting T_CASE or T_DEFAULT or '}' in /www/sites/5/site4835/public_html/index.php on line 18 .. :(
Tori
Profil
Špatná syntaxe switch.
Jozin
Profil
bubík:
ano omlouvám se, psal jsem to tak, že jsem koukal, před 0: a 1: musí být case. Teď jak na to koukám, tak si říkám, že sem asi myslel na něco jiného :-D
bubík
Profil *
Tori, Jozin:
děkuji vám moc !!! už to jede jak má .. :))

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