Activare email...

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

HelloWorld
PHPRomania Supporter
Mesaje: 17
Membru din: Joi Noi 20, 2014 12:38 am

Activare email...

Mesajde HelloWorld » Mar Ian 27, 2015 11:39 pm

Salut, stiu ca o sa vi sa para ca va pierdeti vremea cu mine si chiar asa este. Dar poate cineva o sa fie interesat de asta intr-o zi..:)).Cum as putea face sa se trimita email cu link de activare. Din cate am vazut sa dau o variabila unde destinatarul este 'email'. Apoi subiectul... Si dupa continutul. Dar cum fac faza cu activarea? adica... nu pot sa inteleg ce cod as introduce.. ok ar fi in tabel o parte (activare) cu 0 si 1 . 0 pt activat sa fie 1 iar 0 pt dezactivat. As putea face cu functia update..dar nu stiu sa pun cap la cap.



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Re: Activare email...

Mesajde Birkoff » Mie Ian 28, 2015 10:50 am

scrisesem mai de mult un algoritm cu ce ar trebui sa contina un script de autentificare vezi daca te ajuta
http://www.tutorialeonline.net/ro/artic ... care-login

legat de ce vrei tu e simplu la inregistrarea userului bagi in tabel ceva de forma
id, user, parola, email, stare (unde 0 = neaprobat, 1 aprobat, 2 banat), data inregistrarii, cod_activare, alte coloane...

dupa aia ii trimiti mail cu datele de autentificare si link de activare de genu
<a href="www.site.ro/activare.php?id=id-ul userului&cod=codul de activare">click aici pentru activarea contului</a>

cand da click il va duce pe pagina activare.php unde tu preiei id si cod, le verifici in bd si daca corespund atunci faci update la coloana "stare" = 1 si ii afisezi mesaj ca e aprobat si se poate loga.
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

Avatar utilizator
ispas
Senior Member
Mesaje: 655
Membru din: Mar Sep 14, 2010 1:35 pm
Localitate: Craiova
Contact:

Re: Activare email...

Mesajde ispas » Joi Ian 29, 2015 8:34 am

La inregistrare faci asa :

Cod: Selectaţi tot

$cod =  substr(sha1(time()),0,10); //generam un cod de 10 caractere
$expire = time()+3600*24*30;  //expirare dupa 30 de zile
$res = mysql_query("INSERT INTO _asteptare_confirmare set uid='".$uid."', cod='".$cod."', `expire`='".$expire."'");
if($res)
{
email($email,"subject","<a href=\"validare.php?cod={$cod}\">validare cont</a>";);
echo "Un email cu codul de activare  a fost trimis !";
}


Bun ... acum va trebui sa faci un tabel in baza de date cu numele `_asteptare_confirmare ` , campurile: ID(int,autoincrement,primary), uid (int), cod(varchar,20), expire(int 15);

Acum in logare.php, sau cum ai tu....Sunt de parere ca nu trebuie adaugat niciun camp in tabelul cu users, deoarece acel camp va folosi o singura data, asa ca nu avem nevoie. Modalitatea mea e simpla, in pagina cu logare faci un COUNT(*) cu id-ul utilizatorului din `_asteptare_confirmare` , si daca exista , opresti intrarea.


Cod: Selectaţi tot

logare.php
$id = preiei id-ul dupa trimiterea numelui si a parolei

$count = mysql_fetch_array(mysql_query("select count(*) from _asteptare_confirmare where uid='".$id."'"));
if($count[0]>0)
{
echo "Contul tau nu a fost activat inca";
}



Acum facem si pagina cu validare a contului :


Cod: Selectaţi tot

validare.php
if(!isset($_GET['code']))$_GET['code'] = 0;
$code = mysql_real_escape_string($_GET['code']);

$count = mysql_fetch_array(mysql_query("select count(*) from _asteptare_confirmare where cod='".$code."'"));
if($count[0]==0)die("cod nerecunoscut");

$uid = mysql_fetch_array(mysql_query("select * from _asteptare_confirmare where cod='".$code."'"));

//am scos uid-ul, din care poti lua din users : email , nume si altele ...

//acum stergem codul si putem face trecerea utilizatorului de restrictia din logare.php
mysql_query("delete from _asteptare_confirmare where cod='".$code."'");
echo "contul a fost activat";


Mentionez ca am scris codul aici, fara sa-l testez. Mai mult este ca sa intelegi cum trebuie sa functioneze acest sistem. Bafta !

HelloWorld
PHPRomania Supporter
Mesaje: 17
Membru din: Joi Noi 20, 2014 12:38 am

Re: Activare email...

Mesajde HelloWorld » Joi Ian 29, 2015 2:23 pm

Multumesc, o sa incerc in seara asta.

FeNoMeNaLu
New Member
Mesaje: 1
Membru din: Dum Apr 10, 2016 2:42 pm

Re: Activare email...

Mesajde FeNoMeNaLu » Dum Apr 10, 2016 2:52 pm

Interesantă funcția!


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 61 vizitatori