Autor | Zpráva | ||
---|---|---|---|
gygabyte Profil * |
#1 · Zasláno: 10. 4. 2009, 19:42:29
Mám problém skoušel jsem si vytvořit registraci a přihlášní uživatelů
tady je kód přihlášení : <?php session_start(); ?> <?php include "funkce.php"; ?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="css.css" type="text/css"> <title>DISTURBED!</title> </head> <body> <?php $login = $_POST['login']; $nick = $_POST['nick']; $heslo = $_POST['heslo']; $heslo = md5($heslo); if(isset($login)) { db_connect(); $sql = "SELECT nick FROM users WHERE nick='$nick' and heslo='$heslo'"; $vysledek = mysql_query($sql); $pocet = mysql_num_rows($vysledek); if($pocet == 1) { $login = "ok"; session_register("login"); } else echo "Špatný jméno nebo heslo"; } ?> <div class="login"> <form action="<?php echo "$PHP_SELF"; ?>" method="post"> Nick <input type="text" name="nick"><br> Heslo <input type="password" name="heslo"><br> <input type="submit" value="LOGIN" name="login"> </form> <h4><a href="registrace.php">Registrace</a></h4> </div> <?php $s = $_SESSION[login]; echo "přihlášení je $s"; ?> </body> </html> a registrace: <?php session_start(); ?> <?php include "funkce.php"; ?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="css.css" type="text/css"> <title>DISTURBED!</title> </head> <body> <?php $reg = $_POST['reg']; $nick = $_POST['nick']; $heslo = $_POST['heslo']; $heslo2 = $_POST['heslo2']; if(isset($reg)) { if($heslo == $heslo2) { db_connect(); $sql = "SELECT nick FROM users WHERE nick='$nick'"; $vysledek = mysql_query($sql); $pocet = mysql_num_rows($vysledek); if($pocet != 1) { db_connect(); $heslo = md5($heslo); $dotaz = "INSERT INTO users (nick, heslo) VALUES ('$nick', '$heslo')"; $res = mysql_query($dotaz); if($res) echo "Registrace byla úspěšná nyní se můžete <a href='index.php'>přihlásit</a>"; } else echo "Jméno už je obsazeno"; } } ?> <div class="login"> <form action="<?php echo "$PHP_SELF"; ?>" method="post"> Nick <input type="text" name="nick"><br> Heslo <input type="password" name="heslo"><br> Heslo podruhé <input type="password" name="heslo2"><br> <input type="submit" value="Zaregistrovat" name="reg"> </form> <h4><a href="index.php">Index</a></h4> </div> <?php $s = $_SESSION[login]; echo "přihlášení je $s"; ?> </body> </html> a problém mám že když se přihlásím pak jdu na registraci tak jsem pořád přihlášen, ale když se pak zase vrátím zpět na index tak už nejsem. Kde je chyba? |
||
Watchick Profil |
#2 · Zasláno: 10. 4. 2009, 19:56:55
$_SESSION['login'] |
||
gygabyte Profil * |
#3 · Zasláno: 10. 4. 2009, 20:29:06
To mi nepomohlo, viz. odkaz
login i heslo je test, nebo se můžete regnout. Jak chcete. Nějaký jiný nápad? |
||
Mastodont Profil |
#4 · Zasláno: 10. 4. 2009, 20:33:59 · Upravil/a: Mastodont
session_register("login"); .... $s = $_SESSION[login]; If you are using $_SESSION, do not use session_register(), session_is_registered(), and session_unregister(). http://cz2.php.net/manual/en/function.session-register.php Mícháš něco, co se míchat nemá. |
||
AM_ Profil |
#5 · Zasláno: 10. 4. 2009, 20:35:55
„$login = $_POST['login'];
$nick = $_POST['nick']; $heslo = $_POST['heslo']; $heslo = md5($heslo); if(isset($login)) {“ Tautologie. Tady bude isset($login) vždycky, vždyť ho o 4 řádky nadřím nastavuješ. lepší by bylo spíš if isset($_POST['login']) ještě dřív, než s tím vším pracuješ. Jinak session_register je pravěk, s polem _SESSION pracuj jako s proměnnou, takže $_SESSION['klic']='nova hodnota'; |
||
gygabyte Profil * |
#6 · Zasláno: 11. 4. 2009, 09:27:29
Dobrá, to funguje, ale jak se teď odhlásit když nemůžu použít session_unregister?
|
||
AM_ Profil |
#7 · Zasláno: 11. 4. 2009, 11:17:20
unset |
||
Werewolf Profil |
#8 · Zasláno: 12. 4. 2009, 13:11:26
AM_
„if isset($_POST['login'])“ To spíš if(!empty($login))... |
||
AM_ Profil |
#9 · Zasláno: 12. 4. 2009, 13:39:32
Werewolf
nejlépe před to celé if (!empty($_POST['login'])) :) Tak se totiž vyvaruje tří notice , že POST nemá daný index. Ale máš pravdu, že konstrukt empty je vhodnější. |
||
Časová prodleva: 15 let
|
0