Praktické programování v PHP, část první


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 „-W3CDTD HTML 4.01 Transiti­onalEN“>
<html>

<head>
<meta http-equiv=„Content-Type“ content=„text/html; charset=UTF-8“>
<title>Můj web – Registrace</ti­tle>
</head>

<body>
<?php
if(isset($_GET[„o­k“])) { echo „Operace proběhla úspěšně“; }
if(isset($_GET[„e­rr“])) { echo „Někde se stala chyba“; }
?>
<form action=„regis­trace.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“><in­put type=„submit“ value=„Registro­vat“></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 <a href=„http:www.tutorialy.com/…cne-programy“>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_Con­nect($DB_HOS­T,$DB_USER,$DB_PAS­S))) {
die(„Nepodařilo se připojit k databázi“);
}

if(!(MySQL_Se­lect_DB($DB_NA­ME))) {
die(„Databáze nebyla nalezena“);
}

// overeni, jestli uzivatel zadal vsechny udaje
if(isset($_POS­T[„login“]) && isset($_POST[„pas­s1“])
&& isset($_POST[„ma­il“]))
{
$login = $_POST[„login“];
$mail = $_POST[„mail“];
overeni shody obou hesel a zasifrovani
if(($_POST[„pas­s1“] == $_POST[„pass2“]) && $_POST[„pass2“] != "") {
$pass = sha1($_POST[„pas­s1“]);
} else {
header(„Locati­on:formular.php?e­rr“);
}
overeni, jestli uzivatel nebo mail uz v databazi neni
$zaznamy = MySQL_Num_Row­s(MySQL_Query(„SE­LECT id FROM uzivatele
WHERE login = ‚
$login‘ OR mail = ‚$mail‘“));
if($zaznamy > „0“) {
header(„Locati­on:formular.php?e­rr“);
die();
}
//ulozeni uzivatele do databaze
MySQL_Query(„IN­SERT INTO uzivatele (login,pass,mail)
VALUES (‚
$login‘,‚$pas­s‘,‚$mail‘)“);

header(„Locati­on:formular.php?ok“);
} else {
header(„Locati­on:formular.php?e­rr“);
}
?>

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.



© 2005-2008 Copyright www.tutorialy.com