<?
function idzPrezdivkyNeboEmailu ($udaj, $link)
{
/* ověří, zda zaslaný údaj může být existující přezdívka nebo existující e-mail
v tabulce uživatelů. Vrátí false, pokud se nic nenašlo, v opačném případě
vrátí ID uživatele s daným mailem nebo přezdívkou
*/
if (strpos($udaj,"@")===false) //začneme prohledávat přezdívky
{
$vysledek=mysql_query("select id from uzivatele where registracedokoncena=1 and prezdivka='".$udaj."'", $link);
if (mysql_num_rows($vysledek)==0)
return false;
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}
else //je tam zavináč, začneme prohledávat e-mailové adresy
{
$vysledek=mysql_query("select id from uzivatele where registracedokoncena=1 and email='".$udaj."'", $link);
if (mysql_num_rows($vysledek)==0)
{
// nevzdáme to. Konec konců, zavináč může být i v přezdívce
$vysledek=mysql_query("select id from uzivatele where registracedokoncena=1 and prezdivka='".$udaj."'", $link);
if (mysql_num_rows($vysledek)==0)
return false;
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}
else
{
$radek = mysql_fetch_array($vysledek);
return $radek["id"];
}
}
}
function emailzid ($id, $link)
{
$vysledek=mysql_query("select email from uzivatele where id=".$id, $link);
$radek = mysql_fetch_array($vysledek);
return $radek["email"];
}
function heslozid ($id, $link)
{
$vysledek=mysql_query("select heslo from uzivatele where id=".$id, $link);
$radek = mysql_fetch_array($vysledek);
return $radek["heslo"];
}
function pripomenutozid ($id, $link)
{
$vysledek=mysql_query("select unix_timestamp(now()) - unix_timestamp(pripomenuto) from uzivatele where id=".$id, $link);
$radek = mysql_fetch_array($vysledek);
return $radek[0];
}
// tělo skriptu - nejprve si vytvoříme odkaz na databázi
$link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);
mysql_query("SET NAMES 'utf8'");
$BudemeZobrazovat=true;
if (!empty($_POST)) // už se odeslalo
{
//údaj pro připomenutí nesmí být prázdný
if ((strlen ($_POST["udaj"])>50) | strlen ($_POST["udaj"])<3)echo "Údaj musí mít 3-50 znaků";
else
{
// kontolou jsme prošli
$BudemeZobrazovat=false;
$id=idzPrezdivkyNeboEmailu($_POST["udaj"],$link);
if (!$id) echo "Bohužel, takový e-mail ani přezdívka neexistují";
else
{
// zjistíme si e-mail
$email = emailzid($id,$link);
$pripomenuto = pripomenutozid($id, $link);
if (is_null($pripomenuto) | ($pripomenuto/60/60/24>1))
{
echo "Na adresu vyplněnou při registraci bylo zasláno přístupové heslo.";
// uložíme do databáze čas připomenutí
mysql_query ("update uzivatele set pripomenuto = now() where id=".$id, $link);
// a sestavíme e-mail se zapomenutým heslem
$telo = "Pozadovane pristupove heslo na testovaci hudebni portal je \n".heslozid($id, $link)."\n".
"Vas [nazev hudebniho portalu] team.";
$hlavicky="From: mail@linuxsoft.cz\nReply-To: mail@linuxsoft.cz\nReturn-Path: mail@linuxsoft.cz";
@mail ($email, "Zaslani hesla", $telo, $hlavicky);
}
else
{
echo "Nedávno jsme Vám již zaslali zapomenuté heslo. Zkontrolujte svou schránku.";
}
}
}
}
if ($BudemeZobrazovat):?>
<form method="post" action="index.php?clanek=zapomenuteheslo">
<table>
<tr>
<td colspan="2">Zadejte svou přezdívku nebo e-mail:</td>
</tr>
<tr>
<td>Přezdívka nebo e-mail:</td>
<td><input name="udaj" value="<?echo $_POST["udaj"]?>"></td>
</tr>
<tr>
<td colspan="2"><input type="Submit" name="odesli" value="Poslat heslo"></td>
</tr>
</table>
</form>
<?endif;?>