Autor Zpráva
cont
Profil *
Dobrý den, mam

v overeni.php

<?
function iduzivatele ($prezdivka, $heslo, $link)
{
$vysledek=mysql_query("select id from uzivatele where prezdivka='".$prezdivka."' and heslo='".$heslo."'", $link);
if (mysql_num_rows($vysledek)==0)
return false;
else {
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}
// tělo skriptu - nejprve si vytvoříme odkaz na databázi
$link=mysql_connect("xxx", "x", "xx");
mysql_select_db("x");

$BudemeZobrazovat=true;
if (!empty($_POST)) // už se odeslalo
{
$id =iduzivatele($_POST["prezdivka"], $_POST["heslo"], $link);
if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí";
else
{
$BudemeZobrazovat=false;
$_SESSION["id"]= $id;
}
}
?>
<html> kod ...........(link na odhlaseni.php).......... </html>



a v odhlaseni.php

<?php
session_start();
session_destroy();
header("location: /");
exit;
?>


.. kdyz se odhlasim tak me to hodi na index.php ale když z5 zadam do url overeni.php tak sem přihlášenej.. v čem ej chyba ?

cont
Acci
Profil
Podívej se na session_destroy.
bukaj
Profil
1) v oveření.php uděláš session tak, že:

session_start();
session_register("id");
$_SESSION["id"]=$id;


2) v odhlášení musíš použít session_unset, pokud chceš odstranit obsah session.
cont
Profil *
aha dik..
session_destroy — Destroys all data registered to a session .. to presne chci.

takže do overeni.php jen přidam

session_start();
session_register("id");
$_SESSION["id"]=$id;

ok dik du to zkusit.. prozmenu mi ted ale nak blbne ftp :/
bukaj
Profil
v overeni.php to chce změnit:

...
$_SESSION["id"]=$id;
...

za:

...
session_start();
session_register("id");
$_SESSION["id"]=$id;
...


a k té session_destroy:
session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. v překladu (tučné): Neodnastaví globální proměnné asociované se session.
cont
Profil *
v tom overeni sem upravil to session... do odhlasit.php sem pridal unset()
--------------
<?php
session_start();
session_destroy();
unset()
header("location: /");
exit;
?>
--------------

a kdyz kliknu na odhlasit tak to vypise

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in /.../odhlasit.php on line 4

ale pořád když zadam do url adresu na overeni.php tak me to pusti at sem nebo nejsem prihlasenej : (

v login.php mam

<form name="form1" method="post" action="overeni.php">
<table>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Jméno:</font></td>
<td><INPUT type="text" class="ramecek" value="<?echo $_POST["prezdivka"]?>" size="20"<br /></td>
</tr>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Heslo:</font></td>
<td><INPUT type="password" class="ramecek" value="<?echo $_POST["heslo"]?>" size="20"<br /></td>
</tr>
<tr>
<td colspan="2"><input type="Submit" class="tlacitko" value="přihlásit se"></td>
</tr>
</table>

cont
</form>
cont
Profil *
v overeni.php tedy mam:

<?
function iduzivatele ($prezdivka, $heslo, $link)
{
$vysledek=mysql_query("select id from uzivatele where prezdivka='".$prezdivka."' and heslo='".$heslo."'", $link);
if (mysql_num_rows($vysledek)==0)
return false;
else {
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}
// tělo skriptu - nejprve si vytvoříme odkaz na databázi
$link=mysql_connect("mysql.webzdarma.cz", "swingerportal", "spower");
mysql_select_db("swingerportal");

$BudemeZobrazovat=true;
if (!empty($_POST)) // už se odeslalo
{
$id =iduzivatele($_POST["prezdivka"], $_POST["heslo"], $link);
if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí";
else
{
$BudemeZobrazovat=false;
session_start();

session_register("id");

$_SESSION["id"]=$id;
}
}
?>

<html>.....(link na odhlasit)....</html>
bukaj
Profil
1) doufám, že jméno a heslo, které jsi sem napsal není pravdivé
2) v odhlaseni.php by mělo asi být:

<?php
session_start();
session_unset();
header("Location: /");
exit;
?>
cont
Profil *
jo dekuju to odhlasit uz funguje ale neoveruje se mi spravnost hesla a mena.. at napisu v login.php cokoliv tak me to pusti : (
bukaj
Profil
možná trochu pozměnit toto:

...
if (!$id) echo "Uživatelské jméno a/nebo heslo nesouhlasí";
else
{
...

na toto:

if(!$id){
echo "Uživatelské jméno a/nebo heslo nesouhlasí";
exit;
}else{
...


a navíc u toho formuláře:

<form name="form1" method="post" action="overeni.php">
<table>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Jméno:</font></td>
<td><INPUT type="text" name="prezdivka" class="ramecek" value="<?echo $_POST["prezdivka"]?>" size="20"<br /></td>
</tr>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Heslo:</font></td>
<td><INPUT type="password" name="heslo" class="ramecek" value="<?echo $_POST["heslo"]?>" size="20"<br /></td>
</tr>
<tr>
<td colspan="2"><input type="Submit" class="tlacitko" value="přihlásit se"></td>
</tr>
</table>

cont
</form>
cont
Profil *
A jo :) to je ono diky moc :) ja sem to pred tim delal pres cookies a to name sem tam mel ale ted sem ho smazal s tim ze neni potreba a neuvedomil sem si to :) fakt diky moc du to skusit!
cont
Profil *
aha tak furt stejný :P asi to udelam celý znovu ./
cont
Profil *
zkusil sem to udelat podle "PHP prihlaseni, odhlaseni" jak je tady v diskuzi a v overeni.php mam

<?php

$spojení = mysql_connect("1", "2", "3");
mysql_select_db("4");

session_start();

if((!empty( $_POST['prezdivka']))and (!empty($_POST['heslo']))

{

if(($_POST['prezdivka']==='prezdivka')and($_POST['heslo']==='heslo))

{


//souhlasí, nastavíme session, může jich být více a můžeš v nich přenášet třeba jméno přihlášeného...

$_SESSION['prihlasen']=1;

//a znovunačteme stránku (předpokládám že je to index v kořeni webu

header("location: /");

exit;

}

else

{

//nesouhlasí

$sprava='<p>Litujeme, přihlašovací údaje nejsou platné.</p>';

}

}

if((!empty($_SESSION['prihlasen']))and($_SESSION['prihlasen']===1))

{

echo '<p>Jste přihlášen. <a href="index.php?odhlasit">Odhlásit se</a></p>';

}

?>


---------
login.php zustal stejne a pise mi to vzdy parse error

uz sem z toho totalne zmatenej :P
ss732
Profil
if(($_POST['prezdivka']==='prezdivka')and($_POST['heslo']==='heslo)) tu neni apostrof
cont
Profil *
dík .) ale pořád to nefunguje :) parse error..
Toto téma je uzamčeno. Odpověď nelze zaslat.

0