Na registraciu potrebujes PHP, to pomocou HTML nespravis.
Prihlasovanie v php
Toto je jednoduchý systém prihlasovania užívateľov na stránku.
Cely princíp je v tom, že heslo je uložene iba v databáze a v url je nahradene kódom, ktorý sa mení pri prihlásení.
Ak nezvládate použitie session alebo cookies alebo by to bolo príliš zložité použitie tak myslím že toto je celkom vhodné.
Najprv vytvorenie jednoduchej tabuľky užívateľov:
Kód:
CREATE TABLE `users` (
`id` int(5) NOT NULL auto_increment,
`login` varchar(20) NOT NULL default '',
`heslo` varchar(300) NOT NULL default '',
`code` int(10) NOT NULL default '0',
`email` varchar(100) NOT NULL default '',
`lastlog` datetime NOT NULL default '00:00:00 00-00-0000',
`regcas` datetime NOT NULL default '00:00:00 00-00-0000',
`ip` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1250 AUTO_INCREMENT=1 ;
Súbor so spojením na db:Kód:
<?php
$link = mysql_pconnect ( "localhost" , "root", "password") or die ("Nepodarilo sa spojiť zo serverom");
$db = mysql_select_db("moja_db", $link) or die ("Spojenie z databázov nefunguje");
// nastavenie znakovej sady
@mysql_query ("SET NAMES CP1250");
?>
Ďalej stránku z registráciou:Kód:
<?php
if (isset($_POST['login']) && isset($_POST['heslo']) && isset($_POST['hesloover'])){
// skontroluje �~Mi su všetky poli�~Mka vyplnené
if ($_POST['login'] == "" || $_POST['heslo'] == "" || $_POST['email'] == "" || $_POST['hesloover']== ""){
die("Nie�~Mo si vynechal!");
}
// skontroluje �~Mi je heslo a overenie hesla rovnake
if ($_POST['heslo'] != $_POST['hesloover']){
die("Hesla musia byť rovnake!");
}
// kontrola �~Mi už neexistuje rovnaký login
include "subor_so_spojenim_na_db.php";
$query = "SELECT * FROM users WHERE login=\"".$_POST['login']."\"";
$result = mysql_query($query, $link) or die ("Chyba!");
$num = mysql_num_rows($result);
if ($num != 0){
echo "Niekto už používa rovnaký login!<br>";
die();
}
// koniec kontrola
// ošetrenie html tagov
$_POST['login'] = HTMLSpecialChars($_POST['login']);
$_POST['email'] = HTMLSpecialChars($_POST['email']);
$_POST['heslo'] = HTMLSpecialChars($_POST['heslo']);
$regcas = date("Y-m-d H:i:s", time());
$ip = $_SERVER["REMOTE_ADDR"];
$heslo = md5($_POST['heslo']);
$oprava = "INSERT INTO users (login,heslo,code,email,regcas,ip )VALUES ('".$_POST['login']."','".$heslo."','123456','".$_POST['email']."','".$regcas."','".$ip."')";$dooprava = mysql_query($oprava, $link) or die ("Registracia sa nepodarila.");
$hlaska = "<b>Registrácia bola úspešna!</ b>";
echo $hlaska;
}
?>
Registračný formulár:Kód:
<div align="center"><br>
<br><br>
<br><br>
<table border="0" cellspacing="0" cellpadding="0">
<form action="registracia.php" method="post">
<tr>
<td><sup>* </sup> <b>Login:</b></td>
<td><input type="text" name="login" size="25" maxlength="150"></td>
</tr>
<tr>
<td><sup>* </sup> <b>E-Mail: </b></td>
<td><input type="text" name="email" size="25" maxlength="150"></td>
</tr>
<tr>
<td><sup>* </sup> <b>Heslo:</b></td>
<td><input type="password" name="heslo" size="25" maxlength="150"></td>
</tr>
<tr>
<td><sup>* </sup> <b>Potvr�~O heslo: </b></td>
<td><input type="password" name="hesloover" size="25" maxlength="150"></td>
</tr>
</table>
<input type="submit" value="Registruj"><input type="reset" value="Vymazať">
</form><a href="/index.php"><input type="button" value="Prihlasenie"></a>
<br><div align="left">
<sup>*</sup> - tieto polí�~Mka musia byť vyplnené!<br>
</div></div>
A hlavná stránka index.php:Kód:
<?php
// hlasenie v java scripte
function hlaska($text){
// nepodarilo sa mi to sem natrepať
}
if (isset($_GET['hlaska'])){
hlaska($_GET['hlaska']);
}
// prihlasenie
if (isset($_POST['login']) && isset($_POST['heslo'])){
include "subor_so_spojenim_na_db.php";
@$query = "SELECT * FROM users WHERE login=\"".$_POST['login']."\"";
if (!$query) {
echo "Spojenie z databázou sa nepodarilo";
}
@$result = mysql_query($query, $link);
if (!$query) {
echo "Vyber z databázi sa nepodaril";
}
$cosi = mysql_fetch_array($result);
if ($cosi['heslo'] == md5($_POST['heslo'])){
$code = rand(100000,999999);
$time = date("Y-m-d H:i:s", time());
$oprava = "UPDATE users SET code=\"".$code."\", lastlog=\"".$time."\" WHERE login=\"".$_POST['login']."\"";
$dooprava = mysql_query($oprava, $link) or die ("Chyba!");
header("Location: main.php?login=".$_POST['login']."&code=".$code."");
}
}
?>
Formulár pre prihlásenie:Kód:
<div align="center">
<form action="index.php?prihlas=1" method="post">
Login: <input type="text" name="login" size="20" maxlength="64"><br>
Heslo: <input type="password" name="heslo" size="20" maxlength="64"><br>
<input type="submit" value="Prihlás ma">
</form>
<a href="/registracia.php"><input type="button" value="Registracia"></a>
</div>
Stránka pre prihlásených užívateľov main.php:Kód:
<?php
include "script_so_zabespecenim.php";
include "subor_so_spojenim_na_db.php";
$query = "SELECT * FROM users WHERE login=\"".$_GET['login']."\"" ;
$result = mysql_query($query, $link) or die ("Da�~Mo je blbé!");
$cosi = mysql_fetch_array($result);
echo "Vitaj uživateľ <b>".$_GET['login'] ."</b>, zaregistrovaný". $cosi ['regcas']."<br>Posledné prihlasenie: ". $cosi ['regcas']."<br><br>" ;
?>
Kód:
<a href="/<?php echo "main.php?login=".$_GET['login']."&code=".$_GET['code']."&do=spev"; ?>">Zaspievaj </a>
<br>
<a href="/<?php echo "main.php?login=".$_GET['login']."&code=".$_GET['code']."&do=tanec"; ?>">Zatancuj </a>
<br>
<a href="/<?php echo "main.php?login=".$_GET['login']."&code=000000"; ?>">Odhlas sa </a>
<br>
Kód:
<?php
if (isset($_GET['do'])){
if ($_GET['do'] == "spev"){
echo "<br>Spievam!";
} elseif ($_GET['do'] == "tanec"){
echo "<br>Tancujem!";
}
}
?>
A nakoniec súbor zo zabezpečením:Kód:
<?php
// kontrola spravnosti url
if (!isset($_GET['login']) || !isset($_GET['code'])) {
header("Location: index.php?hlaska=Chyba login, alebo code!");
}
// skontroluej ci existuje subor so spojenim
if (file_exists("subor_so_spojenim_na_db.php")){
}else {
// ak neexistuje spojenie zastavi na�~Mitanie stranky
include "daky_flip.php";
echo "<b>Mimo prevadzky...</b>";
die();
}
include "subor_so_spojenim_na_db.php";
$query = "SELECT * FROM users WHERE login=\"".$_GET['login']."\"" ;
$result = mysql_query($query, $link) or die ("Da�~Mo je blbé!");
$cosi = mysql_fetch_array($result);
$num = mysql_num_rows($result);
// kontrola ci dany user existuje
if ($num != 1) {
header("Location: index.php?hlaska=Neexistujuci uživateľ!");
}
// kontrola kodu
if ($_GET['code'] != $cosi['code']) {
$newcode = rand(100000, 999999);
$oprava = "UPDATE users SET code=\"".$newcode."\" WHERE login=\"".$_GET['login']."\"";
$dooprava = mysql_query($oprava, $link) or die ( "SQL dotaz secure sa nepodaril" );
header("Location: index.php?hlaska=Boli ste odhláseny");
die();
}
?>
Zdroj:
http://blackhole.sk/node/531