| 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: 17 let
|
|||
0