#1 2011-01-06 14:55:19

hanzman
Člen
Registrován: 2010-06-24
Příspěvky: 8

Re: Autorizace/prihlaseni

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

#2 2011-01-06 14:57:29

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Autorizace/prihlaseni

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 wink


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#3 2011-01-06 15:11:30

hanzman
Člen
Registrován: 2010-06-24
Příspěvky: 8

Re: Autorizace/prihlaseni

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

#4 2011-01-06 15:13:15

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Autorizace/prihlaseni

Bude pravdepodobne týmto:

$HTTP_POST_VAR

namiesto toho to nahradte $_POST - teraz by to malo fungovať


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#5 2011-01-06 15:29:59

hanzman
Člen
Registrován: 2010-06-24
Příspěvky: 8

Re: Autorizace/prihlaseni

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

#6 2011-01-06 15:33:06

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Autorizace/prihlaseni

Ž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 smile


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#7 2011-01-06 15:56:01

hanzman
Člen
Registrován: 2010-06-24
Příspěvky: 8

Re: Autorizace/prihlaseni

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

#8 2011-01-06 16:02:39

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Autorizace/prihlaseni

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

Zápatí

Založeno na FluxBB | CZ a SK