|
 | | |
| Autor | Správa |
kruzin99
 Užívateľ
 Založený: 30.07.2008 Príspevky: 40 Bydlisko: Zlaté Moravce :)
 | Zaslal: Ut 25.10.11 10:21 |   |
Takze tu je prihlasovaci formular v subore index.php
| kód: | <form method="post" action="/prihlasovanie.php">
<p>Užívateĺské meno:<input type="text" name="meno" /></p>
<p>Užívateľské heslo:<input type="password" name="heslo" /></p>
<input type="checkbox">Zapamätať
<input type="submit" value="Prihlásiť" />
</form> |
Dalej subor na spracovanie prihlasovanie v subore: prihlasovanie.php
| kód: |
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<?php
include 'spojenia/db.php';
session_start();
$meno = $_POST['meno'];
$_SESSION['meno'] = $_POST['meno'];
$heslo = $_POST['heslo'];
$result = mysql_query("SELECT heslo FROM uzivatelia WHERE nick='$meno'");
$row = mysql_fetch_row($result); /
if($heslo == $row[0])
{
$_SESSION['prihlaseny'] = 'ano';
header("Location: profil.php?$meno");
}
else
{
echo "Zadali ste neplatné meno alebo heslo!";
header("Location: index.php?chyba");
}
?> |
Teraz stranka po prihlaseni v nazvom: profil.php
| kód: | <?php
session_start();
if($_SESSION['prihlaseny'] != 'ano')
die("Nepovolený vstup! Najprv sa prihláste.");
include 'spojenia/db.php';
$meno = $_SESSION['meno'];
$id=$_SESSION['id'];
$ip = $_SERVER['REMOTE_ADDR'];
$kodik = rand(1111111,99999999);
$cas = date("d.m.Y H:i:s");
$oprava = "UPDATE uzivatelia SET kod='$kodik',ip='$ip',prihlasenie='teraz',stav='online' WHERE nick='$meno'";
$dooprava = mysql_query($oprava) or die ("Chyba!");
mysql_query("INSERT INTO prihlasenia(nick,cas) VALUES('$meno','$cas' )")
or die ("Chyba pri zapise do db.");
$result = mysql_query("SELECT prava FROM uzivatelia, zablokovani WHERE nick='$meno'");
while($row = mysql_fetch_array($result))
{
$prava = $row['prava'];
}
$result = mysql_query("SELECT udaj FROM zablokovani WHERE nick='$meno'");
while($row = mysql_fetch_array($result))
{
$udaj = $row['udaj'];
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Profil</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<a href='odhlasit.php'>Odhlásiť</a>
<?
if($udaj == '1')
echo '<script> window.location.href="index.php?zablokovani"; </script>';
if($prava == 'admin')
echo '<a href="/admin/index.php">Adminitrácia</a>';
?> |
A na odhlasovanie: odhlasit.php
| kód: | <?php
include 'spojenia/db.php';
session_start();
$meno = $_SESSION['meno'];
$cas = date("d.m.Y H:i:s");
$oprava = "UPDATE uzivatelia SET kod='0000' ,prihlasenie='$cas',stav='offline' WHERE nick='$meno'";
$dooprava = mysql_query($oprava) or die ("Chyba!");
unset($_SESSION['prihlaseny']);
unset($_SESSION['meno']);
session_destroy();
header("Location: index.php?odhlaseny");
?> |
A moj problem spociva v tom ze aj ked zadam spravne meno a heslo ma neprihlasi ale ked nezadam nic tak ma prihlasi ale ako ziadneho uzivatela ale na stranku profil.php presmeruje a zostane v stave profil.php? . Tipujem ze cely problem bude len niakou chybo z nepozornosti pri session ale stava sa mi to pri kazdom scripte ktory robim s prihlasovanim a uz som zufaly... dakujem za kazdu radu.
P.S rozmyslal som ze ci tam netreba dat kod na overovanie ci bolo zadane meno a heslo ale podla mna to vyriesi overovanie spravnosti hesla a porovnavanie mena |
| |
  |
 |
SpiritPHP
 Užívateľ
 Založený: 31.10.2011 Príspevky: 3
 | Zaslal: Pi 04.11.11 23:06 |   |
zmeň
| kód: | | if($_SESSION['prihlaseny'] != 'ano') |
na
| kód: | | if($_SESSION['prihlaseny'] !== 'ano') |
i keď neviem či je to tá chyba ktorú hľadáš  |
| |
  |
 |
shaggy
 Moderátor
 Založený: 21.02.2006 Príspevky: 4617 Bydlisko: Bratislava
 | Zaslal: Pi 04.11.11 23:20 |   |
Nie, SpiritPHP, to nie je tá chyba, toto bol len taký zúfalý výkrik do tmy. |
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. | |
    |
 |
kruzin99
 Užívateľ
 Založený: 30.07.2008 Príspevky: 40 Bydlisko: Zlaté Moravce :)
 |
nie a spravne je to zadane. Ale dakujem aspon nieco...
Uvidime ci niekdo pride s niecim este ale ja uz neviem
Spravil som nieco taketo: | kód: | $meno = $_POST['meno'];
$heslo = $_POST['heslo'];
if (!isset($meno))
{
header("Location: index.php?nebolo zadane meno alebo heslo!");
} |
ale tiez to nepomohlo
Vyriesil som to takto: | kód: | <form method="post" action="/prihlasovanie.php">
<p><input type="text" value="Meno" name="meno"
onfocus="if(this.value=='Meno'){this.value='';}"></p>
<p><input type="password" value="heslo" name="heslo"
onfocus="if(this.value=='heslo'){this.value='';}"></p>
<input type="checkbox">Zapamätať
<input type="submit" value="Prihlásiť" />
</form>
</table>
<a href="/registracia.php">Registrácia</a> |
lebo teraz ukazuje ze bolo zle zadane meno a heslo takze vyhodi chybu no ak by niekdo prisiel na riesenie toho problemu bude super zatial takto teda  |
| |
  |
 |
peco.voki
 Užívateľ
 Založený: 05.03.2011 Príspevky: 3
 | Zaslal: So 26.11.11 23:02 |   |
Ahoj,
z toho co popisujes mas problem zrejme tu :
| kód: | $result = mysql_query("SELECT heslo FROM uzivatelia WHERE nick='$meno'");
$row = mysql_fetch_row($result); /
if($heslo == $row[0]) |
Ti to vracia prazdnu hodnotu.preto ide prihlasenie bez hesla. skus si nechat vypisat $row predtym ako ho porovnas v podmienke, alebo pouzi klasicku(aspon pre mna ) metodu
| kód: |
$result = mysql_query("SELECT heslo FROM uzivatelia WHERE nick='$meno' limit 1");
if(mysql_num_rows($result)!=NULL)
{
$row = mysql_fetch_array($result);
if($heslo == $row["heslo"])
{
}
}
|
predpokladam ze niekde mas osetrene aby sa do $meno nedostalo to co nemas, a tiez to ze $meno je jedinecne v tabulke uzivatelia. |
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
| |