PHP prihlasovani, session, mysql...

4 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. ... takhle mam udelany prihlasovani. mam tam sekce chat, kniha hostu atd.... casem neco pribude. ale mam jeden problem :( kdyz sem na hlavni strance a kliknu na jakykoliv odkaz krome kniha hostu tak je to v poradku.... ale jakmile kliknu na knihu hostu a pak na jiny odkaz, tak me to samo vyhodi na prihlasovaci formular a to je teda fakt nechci. jenom se skuste podivat: www.mihax.com/osobni usr: aaa pass: aaa a kliknete na knihu hostu a pak na jiny odkaz a taky vas to vyhodi... tady je ten php skript login.php?page=kniha : <? include "db.php"; ?> <div align="center"><br> <form method="post" action="posli.php" name="novy_vzkaz" onsubmit="return kontrola(this)"> <table width="300" border="0"> <tr> <td width="85"><div align="right">Jméno:</div></td> <td width="205"><div align="center"> <input name="jmeno" type="text" class="form1"> </div></td> </tr> <tr> <td><div align="right">eMail: </div></td> <td><div align="center"> <input type="text" name="email" class="form1"> </div></td> </tr> <tr> <td valign="top"><div align="right">Text: </div></td> <td><div align="center"> <textarea name="vzkaz" rows="3" class="form1"></textarea> </div></td> </tr> <tr> <td><div align="center"></div></td> <td><div align="center"> <input type="submit" value="Odešli >> ">    <input type="reset" value="Vymazat"> </div></td> </tr> </table> <input type="hidden" name="datum" value="<? echo Date("d.m.Y v H:i"); ?>"> </form> <div id="pole"> <? $dotaz = MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC"); if(!$dotaz): echo "Chyba pri nacítání vzkazu z databáze..."; else: while($zaznam = MySQL_Fetch_Array($dotaz)): $vzkaz = NL2BR($zaznam["vzkaz"]); ?> <table width="450" border="0" align="center"> <tr> <td bgcolor="#9F9DBC"><p>Od: <? echo $zaznam["jmeno"]; ?><br> eMail: <a href="mailto: <? echo $zaznam["email"]; ?>"><? echo $zaznam["email"]; ?></a><br> Datum: <? echo $zaznam["datum"]; ?></p> </td> </tr> <tr> <td bgcolor="#B88027"> <p><strong>Vzkaz:</strong><br> <? echo $vzkaz; ?> </p> </td> </tr> </table> <br> <? endwhile; endif; ?> </div> </div> a tady je login.php: <?php // vytvooení session session_start(); if (!$_SESSION['user'] || !$_SESSION['pass']) { // když není poihlášen poešmirování na login.php header('Location: index.php'); } else { // když session prominné existují zkontrolujeme je $db = mysql_connect('c151lm.psisco.com', 'to vam nereknu', 'to vam nereknu'); mysql_select_db('a to vam taky nereknu... ale muzu vas ujistit ze to je spravne'); $result = mysql_query("SELECT count(id) FROM users WHERE pass='$_SESSION[pass]' AND name='$_SESSION[user]'"); $num = mysql_result($result, 0); if (!$num) { // jestli udáje nesedí přesmirování na formuláo header('Location: index.php'); } } // to co je pod otaznik> se zobrazi uspesne prihlasenemu. ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <meta name="description" content="Mihax.com - Oficialni stranky Michala Kosa alias HackerXXX"> <meta name="keywords" content="Mihax.com, HackerXXX, Michal, Kos, Tvorba, webu, stranek, kontakt, odkazy"> <meta name="robots" content="all"> <meta name="author" content="Michal Kos alias HackerXXX, webmaster@mihax.com"> <meta name="copyright" content="(c) Michal Kos"> <link href="../style.css" rel="stylesheet" type="text/css"> <? if ($page=="kniha"): echo "<script src=\"kontrola.js\"></script>"; endif; ?> <title>Mihax.com</title> </head> <body> <table width="761" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="208" rowspan="3" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="199" colspan="2" valign="top" style="background:url(../images/index_01.gif);"></td> </tr> <tr> <td width="53" rowspan="2" valign="top" style="background:url(../images/index_12.gif);"></td> <td width="155" height="358" valign="top" style="background:url(../images/index_13.gif);"><table width="125" border="0" align="center"> <tr> <td><div align="center"><a href="login.php">Hlavní stránka </a></div></td> </tr> <tr> <td><div align="center"><a href="login.php?page=kniha">Kniha hostů </a> </div></td> </tr> <tr> <td><div align="center"><a href="login.php?page=chat">Chat</a></div></td> </tr> <tr> <td><div align="center"></div></td> </tr> <tr> <td><div align="center"><a href="login.php?page=reg">Registrovat uživ.</a> </div></td> </tr> <tr> <td><div align="center"><a href="odhlasit.php">Odhlásit</a></div></td> </tr> </table></td> </tr> <tr> <td height="28" valign="top" style="background:url(../images/index_14.gif);"></td> </tr> </table></td> <td width="553" height="56" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="553" height="56" style="background:url(../images/index_02.gif);"></td> </tr> </table></td> </tr> <tr> <td height="25" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="54" height="25" valign="top" style="background:url(../images/index_03.gif);"></td> <td width="47" valign="top"><a href="../index.html"><img src="../images/index_04.gif" alt="Home" width="47" height="25" border="0"></a></td> <td width="104" valign="top"><a href="../www/"><img src="../images/index_05.gif" alt="Tvorba www" width="104" height="25" border="0"></a></td> <td width="110" valign="top"><img src="../images/index_06.gif" alt="Osobní sekce - Jen s heslem!" width="110" height="25" border="0"></td> <td width="67" valign="top"><a href="../odkazy.html"><img src="../images/index_07.gif" alt="Odkazy" width="67" height="25" border="0"></a></td> <td width="71" valign="top"><a href="../kontakt.html"><img src="../images/index_08.gif" alt="Kontakt" width="71" height="25" border="0"></a></td> <td width="100" valign="top" style="background:url(../images/index_09.gif);"></td> </tr> </table></td> </tr> <tr> <td height="504" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="543" height="476" valign="top" style="background:url(../images/index_10.gif);"> <? $num_users = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM users")); if (!$page): echo "<div align=\"center\"> <p> </p> <p>Zdar človíčku $_SESSION[user]!</p> <p> </p> <p>Kolik lidí je online: "; include "whosonline.php"; echo " :uf <br> Kolik lidí je zde zaregistrováno? Odpověď zní: $num_users[0] </p> </div>"; else: include "./$page."."php"; endif; ?> </td> <td width="10" valign="top" style="background:url(../images/index_11.gif);"></td> </tr> <tr> <td height="28" colspan="2" valign="top" style="background:url(../images/index_15.gif);"></td> </tr> </table></td> </tr> </table> <div align="center" class="w3c"> <a href="http://validator.w3.org/check?uri=referer" target="_blank" title="Validní HTML 4.01"><strong> W3C </strong> HTML 4.01 </a> <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.mihax.com/style.css" target="_blank" title="Validní CSS"><strong> W3C </strong> CSS </a> <a href="http://www.czilla.cz/" target="_blank" title="100% v Mozille"><strong> 100% </strong> v Mozille </a> <a href="http://www.microsoft.com" target="_blank" title="100% v MS IE 6"><strong> 100% </strong> v MS IE 6 </a> <a href="http://www.adobe.com/" target="_blank" title="Design v Adobe Photoshop 7.0 CE"><strong> Adobe </strong> Photoshop 7 </a> <a href="http://www.macromedia.com/" target="_blank" title="HTML v Macromedia Dreamweaver MX 2004"><strong> Macromedia </strong> Dreamweaver </a> </div> <div class="copy" align="center">© 2004 - Michal "HackerXXX" Kos    Design & Created: Michal "HackerXXX" Kos </div> </body>
  2. Tak do tohohle se mi fakt moc čučet nechce, ale myslím si, že ti jako dojde k automatickýmu odhlášení nebo tak nějak. Chce to IMHO porovnat s ostatníma souborama (hlavně sessions a všechno okolo nich).
  3. no ja to napisu bez tech zvastu :)... takze tohle je jeden z mala php skriptu v knize: <? $dotaz = MySQL_Query("SELECT * FROM guestbook ORDER BY id DESC"); if(!$dotaz): echo "Chyba pri nacítání vzkazu z databáze..."; else: while($zaznam = MySQL_Fetch_Array($dotaz)): $vzkaz = NL2BR($zaznam["vzkaz"]); ?> <table width="450" border="0" align="center"> <tr> <td bgcolor="#9F9DBC"><p>Od: <? echo $zaznam["jmeno"]; ?><br> eMail: <a href="mailto: <? echo $zaznam["email"]; ?>"><? echo $zaznam["email"]; ?></a><br> Datum: <? echo $zaznam["datum"]; ?></p> </td> </tr> <tr> <td bgcolor="#B88027"> <p><strong>Vzkaz:</strong><br> <? echo $vzkaz; ?> </p> </td> </tr> </table> <br> <? endwhile; endif; ?> a tady je zacatek login.php: <?php // vytvooení session session_start(); if (!$_SESSION['user'] || !$_SESSION['pass']) { // když není poihlášen poešmirování na login.php header('Location: index.php'); } else { // když session prominné existují zkontrolujeme je $db = mysql_connect('c151lm.psisco.com', 'to vam nereknu', 'to vam nereknu'); mysql_select_db('a to vam taky nereknu... ale muzu vas ujistit ze to je spravne'); $result = mysql_query("SELECT count(id) FROM users WHERE pass='$_SESSION[pass]' AND name='$_SESSION[user]'"); $num = mysql_result($result, 0); if (!$num) { // jestli udáje nesedí přesmirování na formuláo header('Location: index.php'); } } // to co je pod otaznik> se zobrazi uspesne prihlasenemu. ?> to patri do head: <? if ($page=="kniha"): echo "<script src=\"kontrola.js\"></script>"; endif; ?> a tohle je uprostred: <? $num_users = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM users")); if (!$page): echo "<div align=\"center\"> <p> </p> <p>Zdar človíčku $_SESSION[user]!</p> <p> </p> <p>Kolik lidí je online: "; include "whosonline.php"; echo " :uf <br> Kolik lidí je zde zaregistrováno? Odpověď zní: $num_users[0] </p> </div>"; else: include "./$page."."php"; endif; ?> a to sou vsechny (skoro vsechny) php skripty ktery jsou v tech dvou souborech.... a tady je jeste prihlasovaci formular: <?php $db = mysql_connect('c151lm.psisco.com', 'to vam nereknu', 'to vam nereknu'); mysql_select_db('a to vam taky nereknu... ale muzu vas ujistit ze to je spravne'); $_POST['user'] = addslashes($_POST['user']); $_POST['pass'] = $_POST['pass']; $result = mysql_query("SELECT count(id) FROM users WHERE pass='$_POST[pass]' AND name='$_POST[user]'"); $num = mysql_result($result, 0); if (!$num) { // Kdyľ dotaz nic nevrátí, zobrazíme formulář ?> <br> <br><h3 align="center">Přihláąení do osobní sekce</h3> <form action="<? $PHP_SELF ?>" method="post"> <table width="250" border="0" align="center"> <tr> <td width="95" bgcolor="#9F9DBC"><div align="right">Jméno: </div></td> <td width="145" bgcolor="#B88027"><input name="user" type="text" style="width: 143px;"></td> </tr> <tr> <td bgcolor="#9F9DBC"><div align="right">Heslo: </div></td> <td bgcolor="#B88027"><input type="password" name="pass" style="width: 143px;"></td> </tr> <tr> <td bgcolor="#9F9DBC"><div align="center"> <input type="reset" value=" Delete "> </div></td> <td bgcolor="#B88027"><div align="center"> <input type="submit" value=" Login >> "> </div></td> </tr> </table> </form> <?php } else { // vytvooení session session_start(); // uloľení prominných $_SESSION['user'] = $_POST['user']; $_SESSION['pass'] = $_POST['pass']; // Po úspiąném poihláąení jsem poesmirován header("location: login.php"); } ?>
  4. vite co? ja se na to vyseru a udelam to pres http autentifikaci v php pres mysql.

← Zpět na všechna témata