Nejste přihlášeni
Stránky 1
Chtel bych vytvorit subdomenu s prihlasenim pres session. At delam co delam stale se na pozadovanou stranku nemohu prihlasit. Stranka se pouze refreshne a nikam to neprihlasi.
Zkousel jsem to na jinych hostinzich a vsechno je v poradku, takze skriptem to nebude.
Zkkousel jsem to udela i bez databaze pres cookies a stale stejny vysledek.
Muzete prosim poradit?
Offline
Tú subdoménu máte namysli, napr. login.xxx.sk ? Ak áno, skúste si skontrolovať, či máte session_start(); ak ak máte, tak napíšte obsah daného súboru sem (prihlasovací). Chyba sa už potom nájde
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Tak jsem zkusil jen hloupy skript na heslo s presmerovanim na stranku, stale nic.
je to na: http://report.hanzman.net/login.php
<?
If ($HTTP_POST_VARS["heslo"]=="Heslo"):
session_start();
session_register("user_register");
$user_register = "ANO";
header("location:private.php");
else:
if (isset($HTTP_POST_VARS["heslo"])) echo "Prihlášení se nepodarilo" ;
endif;
?>
<FORM ACTION="login.php" METHOD="post">
zadej heslo:
<INPUT TYPE="password" NAME="heslo" value="">
<INPUT TYPE="submit" NAME="odoslat" VALUE="GO!">
</form>
</body>
</html>
na http://hanzman.wz.cz/login.php mi to normalne funguje.
A tak to je s jakymkoliv prihlasovacim formularem.
Offline
Diky tohle funguje. Ale treba prihlaseni pres Cookies ne:
Soubor login.php
<HTML>
<TITLE>Login Page</TITLE>
<BODY>
<FONT FACE="arial, helvetica" SIZE=2>
<FORM METHOD=post ACTION="<? echo $PHP_SELF ?>?action=login">
<B>Uživatelské jméno:</B><BR>
<INPUT TYPE=text SIZE=30 NAME=loginname><BR>
<B>Heslo:</B><BR>
<INPUT TYPE=password SIZE=30 NAME=password><BR>
<? if (substr($PHP_SELF,-9) == "login.php") { echo "<P>Nelze zobrazit soubor, soubor je chráněný heslem!</P>"; } else { echo "<INPUT TYPE=submit VALUE=\"Login!\">"; } ?>
</FORM>
<em>pro test je uz. jmeno: "Jan" a heslo: "Novak"</em>
</BODY>
</HTML>
je to na:
http://report.hanzman.net
Diky.
Offline
Žiaľ musíte si pozrieť zmeny PHP 4 -> PHP 5. Direktivita register_globals je defaultne nastavená na hodnotu OFF preto server vyhodnotí premennú $PHP_SELF ako prázdnu (null) a musíte ju nahradiť $_SERVER["PHP_SELF"]
BTW: Nevidím tam nič s cookies
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Nahazu sem tedy vsechny soubory:
Protaction.php
<?
$user_passwords = array (
// sem mùžete zadat uživatele a heslo
"Jan" => "Novak",
"user2" => "password2",
"user3" => "password3",
"user4" => "password4"
);
$logout_page = "logout.php";
$login_page = "login.php";
$invalidlogin_page = "invalidlogin.php";
if ($action == "logout")
{
Setcookie("logincookie[pwd]","",time() -86400);
Setcookie("logincookie[user]","",time() - 86400);
include($logout_page);
exit;
}
else if ($action == "login")
{
if (($loginname == "") || ($password == ""))
{
include($invalidlogin_page);
exit;
}
else if (strcmp($user_passwords[$loginname],$password) == 0)
{
Setcookie("logincookie[pwd]",$password,time() + 86400);
Setcookie("logincookie[user]",$loginname,time() + 86400);
}
else
{
include($invalidlogin_page);
exit;
}
}
else
{
if (($logincookie[pwd] == "") || ($logincookie[user] == ""))
{
include($login_page);
exit;
}
else if (strcmp($user_passwords[$logincookie[user]],$logincookie[pwd]) == 0)
{
Setcookie("logincookie[pwd]",$logincookie[pwd],time() + 86400);
Setcookie("logincookie[user]",$logincookie[user],time() + 86400);
}
else
{
include($invalidlogin_page);
exit;
}
}
?>
login.php
<HTML>
<TITLE>Login Page</TITLE>
<BODY>
<FONT FACE="arial, helvetica" SIZE=2>
<FORM METHOD=post ACTION="<? echo $PHP_SELF ?>?action=login">
<B>Uživatelské jméno:</B><BR>
<INPUT TYPE=text SIZE=30 NAME=loginname><BR>
<B>Heslo:</B><BR>
<INPUT TYPE=password SIZE=30 NAME=password><BR>
<? if (substr($PHP_SELF,-9) == "login.php") { echo "<P>Nelze zobrazit soubor, soubor je chránìný heslem!</P>"; } else { echo "<INPUT TYPE=submit VALUE=\"Login!\">"; } ?>
</FORM>
<em>pro test je uz. jmeno: "Jan" a heslo: "Novak"</em>
</BODY>
</HTML>
invalidlogin.php
<HTML>
<TITLE>Login Page</TITLE>
<BODY>
<FONT FACE="arial, helvetica" SIZE=2>
<P><FONT COLOR="red"><B>Špatné už. jméno, nebo heslo!</B><BR>Prosím zkuste znovu.</FONT></P>
<FORM METHOD=post ACTION="<? echo $PHP_SELF ?>?action=login">
<B>Uživatelské jméno:</B><BR>
<INPUT TYPE=text SIZE=30 NAME=loginname><BR>
<B>heslo:</B><BR>
<INPUT TYPE=password SIZE=30 NAME=password><BR>
<INPUT TYPE=submit VALUE="Login!">
</FORM>
</BODY>
</HTML>
logout.php
<HTML>
<TITLE></TITLE>
<BODY>
<FONT FACE="arial, helvetica" SIZE=2>Díky za tvou návštìvu!<P>
Kliknìte <A HREF="<? echo $PHP_SELF ?>">zde</A> pro nové pøihlášení.<P>
</BODY>
</HTML>
Diky
Offline
Príčina neúspechu skriptu: REGISTER_GLOBALS = OFF
Metódy opravy:
1) v .htaccess pridať nasledujúci riadok:
php_value register_globals "on"
2) DOPORUČUJEM Opraviť premenné $password, $loginname, $logincookie premenením na superglobálne premenné:
$password -> $_POST["password"]
$loginname -> $_POST["loginname"]
$logincookie -> $_COOKIE["logincookie"] (na logincookie[user] následovne : $_COOKIE["logincookie"][user])
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Stránky 1