Autor Zpráva
walkerman
Profil
Dobrý den, píše mi to chybu: Fatal error: Call to undefined function session_is_registered() in /home/users/walkermanek/boxing.4fan.cz/web/Admin/login.php on line 4 nevím co stím..

<?php 
require_once dirname(__FILE__)."/config.php";

if (!session_is_registered("jmeno"))
    session_register("jmeno");

if (!session_is_registered("heslo"))
    session_register("heslo");
    
if (!session_is_registered("prava"))
    session_register("prava");

if (isset($_POST['submit'])) {

    $select = mysql_query("SELECT `jmeno`,`heslo`,`prava` FROM `admin` WHERE `jmeno`='".addslashes($_POST['jmeno'])."' AND `heslo`='".md5(trim($_POST['heslo']))."'") or die (mysql_error());
    $udaje = mysql_fetch_assoc($select);

    if (mysql_num_rows($select)==1) { # pokud je zadano platne jmeno a heslo
        session_regenerate_id(); # osetreni session stealing
        $_SESSION['jmeno'] = $_POST['jmeno']; # nastavime sessiony
        $_SESSION['heslo'] = md5($_POST['heslo']);
        $_SESSION['prava'] = $udaje['prava'];
        header("Location: ./admin/index.php");
    } else { # pokud je neco spatne, zasleme chybovy kod
        header("Location: ./login.php?code=401", 401);
    } 
    
}

if (isset($_GET['logout'])) { # odhlasime se
    unset($_SESSION['jmeno']);
    unset($_SESSION['heslo']);
    unset($_SESSION['prava']);
    session_destroy();
}

isset($_GET['code']) && $_GET['code']=="401" ? # pouze titulek
   $title = "Zadali jste špatně jméno nebo heslo." :
   $title = "";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
    <title>Formulář</title>  
<link href="prihlaseni.css" rel="stylesheet" type="text/css" />    
 
</head>
<body>
<center>
  <p>
    <form action="#" method="POST">  
      <table>
           <div> Zadejte své přihlašovací údaje:</div>
           <br>
        <tr><td>Nick:</td><td><input type="text" name="jmeno" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
    <center>    <tr><td></td><td><input name="submit" type="submit" class="submit" tabindex="3" value=" přihlásit &raquo; " /></td></tr>
               
    </form>
     <form action="register.php" method="POST"> 
        
           <font color="red"> <?php echo $title ?> </font>
           <?php if (isset($_GET['logout'])) { ?> 
  
  <p>Byli jste odhlášeni ze systému.</p>
  
<?php } ?>
             </form>
             </table>
  </p>    
  </center>

  
</body>
</html>
fandaa
Profil
walkerman:
Zřejmě máš novější verzi PHP. Stačí otevřít manuál a zjistíš, že funkce byla od verze PHP 5.4 odstraněna.

Úprava: stejně tak i funkce session_register.
Joker
Profil
walkerman:
Doplním, že místo session_register se používá $_SESSION… už asi 12 let, takže je nejvyšší čas to aktualizovat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0