Autor Zpráva
faabdal
Profil *
<?
  function JeEmail ($cislo)
  {
    return ereg("^.+@.+\..+$",$cislo);
  }

  function emailvdb ($email)
  {
    $vysledek=mysql_query("select * from uzivatele where email='".$email."'",  $GLOBALS["link"]);
    return (boolean) mysql_num_rows($vysledek);
  }  

  function prezdivkavdb ($prezdivka)
  {
    $vysledek=mysql_query("select * from uzivatele where prezdivka='".$prezdivka."'", $GLOBALS["link"]);
    return (boolean) mysql_num_rows($vysledek);
  }  
  // tělo skriptu - nejprve si vytvoříme odkaz na databázi



  $BudemeZobrazovat=true;
  if (!empty($_POST)) // už se odeslalo
  {
    /*
    budeme kontrolovat následující věci:
    1) e-mailovou adresu
    2) zda tam již e-mail není
    3) zda tam již přezdívka není
    4) zda je přezdívka mezi 3 a 50 znaky délky
    5) zda je heslo 3 až 50 znaků dlouhé
    */
    if (!JeEmail($_POST["email"])) echo "Není zadán platný e-mail";
    elseif (emailvdb($_POST["email"])) echo "Uvedený e-mail je již registrován";
    elseif (prezdivkavdb ($_POST["prezdivka"])) echo "Uvedená přezdívka je již registrována";
    elseif ((strlen ($_POST["prezdivka"])>50) | strlen ($_POST["prezdivka"])<3)echo "Přezdívka musí mít 3-50 znaků";
    elseif ((strlen ($_POST["heslo"])>50) | strlen ($_POST["heslo"])<3) echo "Heslo musí mít 3-50 znaků";
    else
    {
      // kontolou jsme prošli
      $BudemeZobrazovat=false;
      // poděkujeme uživateli
      echo "Děkujeme za registraci. Na vaši adresu ".$_POST["email"]." byly zaslány informace pro její dokončení.";
      // uložíme to do databáze
      mysql_query ("insert into uzivatele (email, prezdivka, heslo) values ('".$_POST["email"]."', '".$_POST["prezdivka"]."', '".$_POST["heslo"]."');", $GLOBALS["link"]);
      $lastid=mysql_insert_id();
      // a sestavíme e-mail s instrukcemi, jak registraci dokončí
      $path="http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["SCRIPT_NAME"]."?clanek=registracedokoncena&ampersand;id=".$lastid."&amp;email=".$_POST["email"];
      $telo = "Dekujeme Vam za registraci na nasem portale [nazev hudebniho portalu]. Pro dokonceni ".
      "registrace klepnete na nasledujici odkaz\n".
      "<a href=\"$path\">$path</a>\n".
      "Pokud jste se na nasem portale nechteli zaregistrovat, povazujte tento e-mail za bezpredmetny.\n".
      "Vas [nazev hudebniho portalu] team.";
      @mail ($_POST["email"], "Registrace na portalu", $telo);
    }
  }

if ($BudemeZobrazovat):?>
  <form method="post" action="index.php?clanek=registrace">
  <table>
    <tr>
      <td>Přezdívka:</td>
      <td><input name="prezdivka" value="<?echo $_POST["prezdivka"]?>"></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" value="<?echo $_POST["heslo"]?>"></td>
    </tr>
    <tr>
      <td colspan="2"><input type="Submit" name="odesli" value="Zaregistrovat"></td>
    </tr>
  </table>
  </form>
<?endif;?>



Potřeboval bych vědět co je špatně v té tučné části, email se sice odešle ale když poté kliknu na odkaz v emailu tak se mi nezmění hodnota v databazi podle tohoto scriptu:

mysql_query("update uzivatele set registracedokoncena=1 where id=".$_GET["id"]." and email='".$_GET["email"]."';",$GLOBALS["link"]);
 echo "Vaše registrace byla dokoncena.";


Mohl by mi někdo poradit děkuji
fajzen
Profil
$path="http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["SCRIPT_NAME"]."?clanek=registracedokoncena&ampersand;id=".$lastid."&amp;email=".$_POST["email"];

možno tam vadí ten &ampersand;
faabdal
Profil *
jj to byl muj překlep a za ten se omlouvám, ale v tom to není... Jde o to že když kliknu na odkaz v mailu tak mi to nezmění hodnotu ale když ten odkaz překopiruju jako adresu tak už běhá bez problému...
Alphard
Profil
faabdal:
Jde o to že když kliknu na odkaz v mailu tak mi to nezmění hodnotu ale když ten odkaz překopiruju jako adresu tak už běhá bez problému...
Tohle je ta podstatná informace, ta měla být hned v prvním příspěvku.

Jak vypadá vygenerovaný email? Můžete sem dát ukázku?
Problém vidím v tom, že nikde nenastavujete, že jde o html email, takže se to pošle jako text. Emailový klient najednou uvidí <a href="... a nikdo neví, co udělá. Zkuste to smazat a vložit tam jednoduše jenom tu adresu, většina emailových klientů ji najde podle http:// a udělá z ní klikatelný odkaz.
faabdal
Profil *
Vygeneruje to neco takoveho:

Dekujeme Vam za registraci na nasem portale. Pro dokonceni registrace kliknete na nasledujici odkaz:
http://faabdalos.borec.cz:80/index.php?clanek=registracedokoncena&id=24&email=feekoun@seznam.cz
Pokud jste se na nasem portale nechteli zaregistrovat, povazujte tento e-mail za bezpredmetny.
faabdal
Profil *
Jen s tím rozdílem, že když jsem na to kliknul až poté co jsem to odeslal sem, tak se registrace v pohode dokoncila, ale když se to pokusím otevřít přímo v emailu tak mi to vyhodí chybu...
fajzen
Profil
akú chybu?

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:

0