Dobrý den,
Chtěl bych se zeptat na jeden malý dotázek. Jak udělám z tohoto scriptu:
<?php
ob_start(); // cachujeme vystup
if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto
$jmeno=trim($_POST['jmeno']);
$heslo1=$_POST['heslo'];
$heslo2=$_POST['heslo_znovu'];
$mail=trim($_POST['mail']);
$web=trim($_POST['web']);
if($jmeno=="" or $heslo1=="" or $mail==""){ // pokud nebylo vyplněno něco z toho, co je povinné, dáme vědět a skript ukončíme
echo "Nebyly vyplněny všechny povinné údaje!";
}else{ // povinné udaje vyplněny vsechny
require "db.php"; // pripojime se k databazi
$PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `jmeno`='$jmeno' OR `mail`='$mail'"),0);
if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo...
echo "Zadané jméno nebo email je již používán někým jiným!!!";
}elseif($heslo1 != $heslo2){ // pokud se hesla nerovnají
echo "Zadané hesla se neshodují!!!";
}else{ // hesla se shoduji, vlozime tedy data do databaze
$heslo=md5($heslo1); // zahashujeme heslo
if($web=="http://" or $web==""){ //pokud nezadal web tak dame promennou web prazdnou
$web="";
}
$VlozData=mysql_query(" INSERT INTO uzivatele (`jmeno`,`heslo`,`mail`,`web`,`prava`)
VALUES
('$jmeno', '$heslo', '$mail', '$web', '0') ") or die (mysql_error());
// Jako posledni hodnota je "0", to jsou ty prava uzivatele.
if($VlozData){
echo "Data byla uložena";
}
}
}
}else{
echo "Nebyl odeslán formulář";
}
// pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO
echo "<a href='index.php'>index</a>";
// samozrejme zde muze byt presmerovani na jinou stranku pomoci
// header ("Location: index.php");
ob_end_flush();
?>
ten samý script, jen s tou změnou, že by mi, jako adminovi, došel e-mail o registraci a já ji buď potvrdím, nebo odmítnu.Tabulku v DB mám:
CREATE TABLE `uzivatele` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`jmeno` VARCHAR( 32 ) NOT NULL ,
`heslo` VARCHAR( 32 ) NOT NULL ,
`mail` VARCHAR( 64 ) NOT NULL ,
`web` VARCHAR( 128 ) NOT NULL ,
`prava` TINYINT NOT NULL ,
UNIQUE (`jmeno` , `mail` )
) ENGINE = innodb CHARACTER SET utf8 COLLATE utf8_czech_ci;
a llogin_zpracuj.php mám:
<?php
ob_start();
/*
* Tetno soubor zjisti zda se takovy uzivatel s takovym heslem v databazi nachazi.
* Pokud ano, do sessions o tom ulozime informaci.
* Jinak se samozrejme presmerujeme zpet a dame uzivateli vedet, ze zadal spatne udaje
*/
session_start(); // Budeme pracovat se session, musĂme je nastartovat.
if(isset($_POST['jmeno'])){
require 'db.php';
$name = $_POST['jmeno'];
$pass = md5($_POST['heslo']);
$query = MySQL_Query("SELECT * FROM `uzivatele` WHERE `jmeno` = '$name' and `heslo` = '$pass'") or die (mysql_error());
// Vybereme uživatele se zadaným jménem a heslem
$Vysledek = mysql_fetch_array($query);
$Vysledek['jmeno'];
if($Vysledek['jmeno']){ // pokud tato proměnná obsahuje data, bylo zadané správné jméno a heslo
// Do sessions si uloĹľĂme pár informacĂ o pĹ™ihlášenĂ©m
$_SESSION['prihlasen'] = 1;
$_SESSION['login'] = $Vysledek['jmeno'];
$_SESSION['UserId'] = $Vysledek['id'];
$_SESSION['UserWeb'] = $Vysledek['web'];
$_SESSION['UserMail'] = $Vysledek['mail'];
$_SESSION['Prava'] = $Vysledek['prava'];
$bl="index.php";
header("location: $bl"); // přesměrujeme na index
}else{
$bl="index.php?Alert=6";
header("location: $bl"); // špatně zadané údaje
// echo "Zadal jsi špatné údaje";
}
mysql_free_result($query);
}else{
echo "Zde nic nenĂ;-)";
}
ob_end_flush();
?>
Mockrát děkuji za Vaši odpověď