prihlasenie

10 příspěvků

Archiv diskusního fóra

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

  1. takze vyskytol sa dalsi (podla mna nepochopitelny) problem :) prihlasenie mi fungovalo bez problemov a v kode som menil iba malickosti... a zrazu nefunguje.... <?php session_name('IDUzivatela'); ini_set("session.use_cookies", 0); session_start(); if (isset($_POST['odoslat'])) { require_once ('mysql_spojit.php'); function opravit_chyby ($data) { global $dbc; if (ini_get('magic_quotes_gpc')) { $data = stripslashes($data); } return mysql_real_escape_string($data, $dbc); } $sprava = NULL; if (empty($_POST['nick'])) { $nick = FALSE; $sprava .= '<p>Nebol zadaný nick!</p>'; } else { $nick = opravit_chyby($_POST['nick']); } if (empty($_POST['heslo'])) { $heslo = FALSE; $sprava .= '<p>Nebolo zadané heslo!</p>'; } else { $heslo = opravit_chyby($_POST['heslo']); $heslo_md = md5("$heslo"); } if ($nick && $heslo) { $prikaz = "SELECT * FROM registracia WHERE nick='$nick' AND heslo='$heslo_md'"; $vysledok = @mysql_query ($prikaz); $riadok = @mysql_fetch_array ($vysledok, MYSQL_NUM); if ($riadok) { header ("Location: http://". $_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']). "prihlaseny.php?". SID); $_SESSION['nick'] = $riadok[1]; $_SESSION['id'] = $riadok[0]; exit(); } else { $sprava = '<p>Zadali ste zlý nick alebo heslo!</p>'; } mysql_close(); } else { $sprava .= '<p>Skúste to znovu!</p>'; } } $titul = 'Prihlásenie'; include ('sablony/head.inc'); include ('sablony/menu.inc'); if (isset($sprava)) { echo '<font color="red">', $sprava, '</font>'; } ?> <div align="center"><h1>Prihlásenie</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table border="0" width="150"> <tr> <td bgcolor="#C8C8C8" width="50"><b>Nick:</b></td><td width="100" bgcolor="#000000"> <div align="center"><input type="text" name="nick" size="15" maxlenght="20" value="<?php if (isset($_POST['nick'])) echo $_POST['nick']; ?>" /></div></td></tr><tr> <td bgcolor="#C8C8C8" width="50"><b>Heslo:</b></td><td width="100" bgcolor="#000000"> <div align="center"><input type="password" name="heslo" size="15" maxlength="20" /> </div></td></tr> <tr> <td bgcolor="#c8c8c8" colspan="2" width="150"><div align="center"><input type="submit" name="odoslat" value="Prihlásiť" /></div></td></tr></table></form> </div> <?php include ('sablony/bottom.inc'); ?> ------------------------------------------------------------------- skript prihlasenia ------------------------------------------------------------------- <?php session_name('IDUzivatela'); session_start(); if (!isset($riadok['nick'])) { $titul = 'Úspešné prihlásenie!'; include ('sablony/head.inc'); include ('sablony/menu.inc'); echo '<p><div align="center"><b>Sorry, menší výpadok, skús to neskôr!</b></div></p>'; include ('sablony/bottom.inc'); exit(); } $titul = 'Úspešné prihlásenie!'; include ('sablony/head.inc'); include ('sablony/menu.inc'); echo "<div align=center><p><b>Úspešne prihlásený užívateľ {$_SESSION['nick']}!</b></p></div>"; include ('sablony/bottom.inc'); ?> --------------------------------------------------------------------- prihlaseny.php ---------------------------------------------------------------------- stale vyhadzuje tu vetu:Sorry, menší výpadok, skús to neskôr -------------------ale preco kua?
  2. 1) to, že je tu ten thread 2x považujme za nehodu 2) !isset($riadok['nick']) - vždyť to tak musí být, nikde $riadok nenastavuješ pokud si to posíláš krze GET nebo POST, tak musíš volat $_GET['riadok']['nick']
  3. vsak tu premennu nastavujem tu $riadok = @mysql_fetch_array ($vysledok, MYSQL_NUM); if ($riadok) { header ("Location: http://". $_SERVER['HTTP_HOST']. dirname($_SERVER['PHP_SELF']). "prihlaseny.php?". SID); $_SESSION['nick'] = $riadok[1]; $_SESSION['id'] = $riadok[0]; ....... a pred tým to fungovalo bez problemov.. ako som pisal... skoro nic som tam nemenil
  4. Reppo: sorry, ale mas v tom hroznej bordel. Projdi si ten kod a premejslej, co to ma delat...
  5. no vsak premyslam... ale aj tak nechapem preco to nejde ... :((((((( kuaaaaaaaaaa
  6. nemoze byt problem v trom ze mi nemaze sessions alebo co... vsak najskor ich v adrestari tmp bolo cca5 a teraz ich je tam okolo 40 ked som kukal
  7. session_name('IDUzivatela'); nechapu logiku zadani jako session name "IDUzivatela"...
  8. ja zase nechapem co natom nechapes.. .vsak to je pomenovanie pre session
  9. no tak ale přiřadím to jako $_SESSION['IDUzivatela'] = 35678987512558; mimochodem, používáš to před session_start();
  10. Reppo: sorry, zrovna cumim do manualu a popletl jsem si session_name() a session_id(). 1) Kazdopadne Jirka ma pravdu v tom, ze bys to session_name mel psat az za session_start, a 2) jestli to chces mit na WZ, tak na ini_set() zapomen, protoze je tu zakazana. 3) Pokud chces zjistovat magic_quotes, tak radsi pouzij fci get_magic_quotes_gpc(), misto ini_get(). Jinak... asi bude nejlepsi, kdyz zacnes s tim skriptem od zacatku, protoze alespon pro me je ten kod naprosto neprehledny. Napr. kontrola zadaneho nicku a hesla mi prijde zbytecna, atd. Mozna bych to zestrucnil takto (povolene cookies nutne, samozrejme, ze by to chtelo jeste nejak zabezpecit; pripadne chyby oprav): <?php // login.php nebo tak nejak session_start(); session_name('IDUzivatela'); require_once ('mysql_spojit.php'); if (isset($_POST['odoslat'])) { $nick =& $_POST['nick']; $heslo =& $_POST['heslo']; $nick = mysql_real_escape_string($nick); $heslo = md5($heslo); $query = "SELECT * FROM registracia WHERE nick='$nick' AND heslo='$heslo' LIMIT 1"; $result = mysql_query($query); $prihlasenie_ok = @mysql_num_rows($result); // vraci true, kdyz je nalezen odpovidajici zaznam $riadok = @mysql_fetch_array ($vysledok, MYSQL_NUM); if ($riadok) { $_SESSION['nick'] = $riadok[1]; $_SESSION['id'] = $riadok[0]; header ("Location: prihlaseny.php"); exit(); } else { $sprava = '<p>Zadali ste zlý nick alebo heslo!</p>'; } } $titul = 'Prihlásenie'; include ('sablony/head.inc'); include ('sablony/menu.inc'); if (isset($sprava)) echo '<font color="red">'.$sprava.'</font>'; ?> <div align="center"><h1>Prihlásenie</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table border="0" width="150"> <tr> <td bgcolor="#C8C8C8" width="50"><b>Nick:</b></td><td width="100" bgcolor="#000000"> <div align="center"><input type="text" name="nick" size="15" maxlenght="20" value="<?php if (isset($_POST['nick'])) echo $_POST['nick']; ?>" /></div></td></tr><tr> <td bgcolor="#C8C8C8" width="50"><b>Heslo:</b></td><td width="100" bgcolor="#000000"> <div align="center"><input type="password" name="heslo" size="15" maxlength="20" /> </div></td> </tr> <tr> <td bgcolor="#c8c8c8" colspan="2" width="150"><div align="center"><input type="submit" name="odoslat" value="Prihlásiť" /></div></td> </tr> </table> </form> </div> <?php include ('sablony/bottom.inc'); ?> ----------------------------------------------------------------------------------------------- <?php //prihlaseny.php if (!isset($_SESSION['nick']) || !isset($_SESSION['id'])) die ("Nejsi prihlaseny!"); session_start(); session_name('IDUzivatela'); $titul = 'Úspešné prihlásenie!'; include ('sablony/head.inc'); include ('sablony/menu.inc'); echo "<div align=center><p><b>Úspešne prihlásený užívateľ $_SESSION[nick]!</b></p></div>"; include ('sablony/bottom.inc'); ?>

← Zpět na všechna témata