Autor Zpráva
repporello
Profil *
PRECO NEZAPISE NIC DO DATABAZY KED PRISTUPOVE UDAJE K NEJ SU V PORIADKU A ODOSLE AJ EMAIL AJ VYPISE SPRAVU O USPESNEJ REGISTRACII... NECHAPEM...
---------------------------------------------------------------------- --------------


function JeEmail ($cislo)
{
return ereg("^.+@.+..+$",$cislo);
}

function emailvdb ($email, $link)
{
$vysledok=mysql_query("select * from uzivatelia where email='".$email."'", $link);
return (boolean) mysql_num_rows($vysledok);
}

function nickvdb ($nick, $link)
{
$vysledok=mysql_query("select * from uzivatelia where nick='".$nick."'", $link);
return (boolean) mysql_num_rows($vysledok);
}

require_once ('config.php');

$BudemeZobrazovat=true;
if (!empty($_POST)) // už sa odoslalo
{

/*
budeme kontrolovat nasledujuce veci:
1) e-mailovou adresu
2) ci uz e-mail neexistuje
3) ci uz nick neexistuje
4) ci je nick medzi 5 az 50 znakmi
5) ci je e-mail medzi 5 az 50 znakmi
*/

if (!JeEmail($_POST["email"])) echo "Nie je zadaný platný e-mail";
elseif (emailvdb($_POST["email"], $link)) echo "Uvedený e-mail je už registovaný";
elseif (nickvdb ($_POST["nick"], $link)) echo "Uvedený nick je už registovaný";
elseif ((strlen ($_POST["nick"])>50) | strlen ($_POST["nick"])<5)echo "Nick musí mať 5-50 znakov";
elseif ((strlen ($_POST["heslo"])>50) | strlen ($_POST["heslo"])<5) echo "Heslo musí mať 5-50 znakov";
else
{

// kontrolou sme prešli
$BudemeZobrazovat=false;

// poďakujeme užívatelovi
echo "Ďakujeme za registráciu. Na vašu adresu ".$_POST["email"]." boli zaslané informácie pre jej dokončenie.";

// uložíme to do databázi
$heslo = md5($_POST["heslo"]);
mysql_query ("insert into uzivatelia (email, nick, heslo) values ('".$_POST["email"]."', '".$_POST["nick"]."', '".$heslo."');", $link);
$lastid=mysql_insert_id();

// a zostavíme e-mail s inštrukciami, ako registráciu dokončiť

$path="http://".$_SERVER["SERVER_NAME"]."/registraciadokoncena.php?id= ".$lastid."&amp;email=".$_POST["email"];
$telo = "Dakujeme Vam za registraciu na nasom hip-hop portale Minicity. Pre dokoncenie ".
"registracie kliknite na nasledujuci odkaz ".
"<a href="$path">$path</a> ".
"Ak ste sa na nasom portale nechceli zaregistrovat, povazujte tento e-mail za bezpredmetny. ".
"Vas Minicity team.";

$hlavicky="From: ".$_POST["email"]." Return-Path:".$_POST["email"];
@mail ($_POST["email"], "Registracia na portale", $telo, $hlavicky, "-f ".$_POST["email"]);
}
}
if ($BudemeZobrazovat):?>
<form method="post" action="registracia.php">
<table>
<tr>
<td>Nick:</td>
<td><input name="nick" value="<?echo $_POST["nick"]?>"></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name="email" value="<?echo $_POST["email"]?>"></td>
</tr>
<tr>
<td>Heslo:</td>
<td><input name="heslo" type = "password" ></td>
</tr>
<tr>
<td colspan="2"><input type="Submit" name="odosli" value="Registrovať"></td>
</tr>
</table>
</form>
<?endif;?>
temistokles
Profil
mysql_query ("insert into uzivatelia (email, nick, heslo) values ('".$_POST["email"]."', '".$_POST["nick"]."', '".$heslo."');", $link) or die(mysql_error());
repporello
Profil *
nevypisalo ziadnu chybu iba ukoncilo beh skriptu hned po vypisani spravy o uspesnej registracii ...Tu je ten skript
repporello
Profil *
teda tu v tom prvom je zly odkaz
fikus
Profil *
Neměl by si tohle: $_POST["email"] uvnitř mysql_query odescapovat: $_POST["email"]? Mimochodem by si měl ta data také předem ověřit, třeba pomocí regulárních výrazů a ne je rovnou přebírat.
A co ten středník: ...$heslo."');"...
repporello
Profil *
s tym strednikom nepomohlo... a co je zle na tej premennej $_POST["email"] ??
repporello
Profil *
pomoooc :-) up
repporello
Profil *
aaaaaa up
temistokles
Profil
repporello
No mne to prešlo
reppo
Profil
uz som to vyriesil... ale radsej ani nejdem vravet kde bola chyba lebo by som sa musel hanbit :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: