V tomto seriále si vytvoříme scripty pro registraci a přihlášení uživatelů pomocí databáze MySQL, knihu návštěv a anketu. V prvním díle si vytvoříme registraci uživatelů.
Locahost web server
Pokud si vytvořené scripty budete chtít vyzkoušet na vlasním počítači, budete potřebovat localhost server. Dobré zkušenosti mám s freewarovým produktem Complex Web Server, který obsahuje hlavně Apache web server, MySQL databázi a PHP5 parser. Nainstalujte si jej na svůj počítač, spusťte Apache a databázi a otevřete internetový prohlížeč. Do adresního řádku zadejte localhost nebo 127.0.0.1 – otevře se Vám výpis souborů uložených na lokálním web serveru. Tyto soubory jsou uložené ve složce http_docs v adresáři nainstalovaného web serveru.
Poznámka: Localhost server může být přístupný pod Vaší IP adresou z jiných počítačů v internetu, pokud jste to při instalaci povolili.
Registrační formulář
Nejdříve bude nutné si vytvořit registrační forumlář, ve kterém uživatel vyplní přihlašovací jméno (login), heslo a třeba svůj e-mail. Jednoduchou úpravou si pak sami jistě dokážete přidat další položky. Pro samotný jednoduchý formulář nepotřebujete nic jiného, než obyčejné HTML, případně CSS pro vylepšéní vzhledu. Formulář si uložím jako formular.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Můj web - Registrace</title>
</head>
<body>
<?php
if(isset($_GET["ok"])) { echo "Operace proběhla úspěšně"; }
if(isset($_GET["err"])) { echo "Někde se stala chyba"; }
?>
<form action="registrace.php" method="post">
<table>
<tr>
<td>Login:</td><td><input type="text" name="login"></td>
</tr>
<tr>
<td>Heslo:</td><td><input type="password" name="pass1"></td>
</tr>
<tr>
<td>Heslo znova:</td><td><input type="password" name="pass2"></td>
</tr>
<tr>
<td>E-mail:</td><td><input type="text" name="mail"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Registrovat"></td>
</tr>
</table>
</form>
</body>
</html>
Data z inputů se odešlou metodou POST registračnímu scriptu registrace.php, ve kterém budeme data zpracovávat. Data se uloží do proměnných s názvy podle atributů name u inputů.
Vytvoření databáze
Nyní bude potřeba vytvořit databázi, do které si budeme ukládat
uživatelská jména, hesla a e-maily. Pro správu databáze doporučuji
aplikaci phpMyAdmin,
který máte pravděpodobně zde, pokud jste si
nainstalovali Complex Web Server.
Vytvořte si novou databázi – ja si ji pojmenuju tutorialy a
v ní novou tabulku uzivatele. To lze udělat dvěma způsoby:
1.) Použitím SQL dotazu:
CREATE TABLE `uzivatele` (
`id` TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`login` VARCHAR( 40 ) NOT NULL ,
`pass` VARCHAR( 40 ) NOT NULL ,
`mail` VARCHAR( 50 ) NOT NULL
) ENGINE = innodb;
2.) Vyplněním formuláře – to je pro začátečníky nejlepší způsob. Aplikace phpMyAdmin vytvoří SQL dotaz sama. Po vytvoření databáze se Vám v phpMyAdmin otevřela stránka s polem „Vytvořit novou tabulku v databázi tutorialy“. Do ní napište název tabulky (uzivatele) a počet sloupců – my budeme potřebovat 4. Na následující stránce:
Registrační script
Databázi a registrační formulář máme připravený, takže přistoupíme k programování registračního scriptu. Nejprve vytvoříme spojení s databází, potom ověříme, jestli se shodují oba zadané hesla, jedno z nich zašifrujeme a všechna tato data uložíme do databáze. Nejprve si ale vytvoříme script nastaveni.php, do kterého uložíme přihlašovací údaje k databázi, protože je budeme často používat.
nastaveni.php
<?php
$DB_HOST = "localhost"; //databazovy server
$DB_USER = "root"; //prihlasovaci jmeno k databazi
$DB_PASS = ""; //heslo k databazi
$DB_NAME = "tutorialy"; //nazev pouzivane databaze
?>
registrace.php
<?php
require_once "nastaveni.php";
if(!(MySQL_Connect("$DB_HOST","$DB_USER","$DB_PASS"))) {
die("Nepodařilo se připojit k databázi");
}
if(!(MySQL_Select_DB($DB_NAME))) {
die("Databáze nebyla nalezena");
}
// overeni, jestli uzivatel zadal vsechny udaje
if(isset($_POST["login"]) && isset($_POST["pass1"])
&& isset($_POST["mail"]))
{
$login = $_POST["login"];
$mail = $_POST["mail"];
//overeni shody obou hesel a zasifrovani
if(($_POST["pass1"] == $_POST["pass2"]) && $_POST["pass2"] != "") {
$pass = sha1($_POST["pass1"]);
} else {
header("Location:formular.php?err");
}
//overeni, jestli uzivatel nebo mail uz v databazi neni
$zaznamy = MySQL_Num_Rows(MySQL_Query("SELECT id FROM `uzivatele`
WHERE login = '$login' OR mail = '$mail'"));
if($zaznamy > "0") {
header("Location:formular.php?err");
die();
}
//ulozeni uzivatele do databaze
MySQL_Query("INSERT INTO `uzivatele` (login,pass,mail)
VALUES ('$login','$pass','$mail')");
header("Location:formular.php?ok");
} else {
header("Location:formular.php?err");
}
?>
To je z dnešního dílu vše, přihlášení uživatelů a návštěvní knihu si ukážeme v příštím díle.
Hodnocení tutoriálu: 1.8 (hodnotilo 71 uživatelů)