Nelamurit la inregistrare si adminsitrare cont

Discutiile referitoare la conferinta de web development

Moderatori: ExcalIbvr, dragon tech, Moderatori

Nsilviu
Average Member
Mesaje: 136
Membru din: Dum Dec 21, 2008 10:18 pm
Contact:

Nelamurit la inregistrare si adminsitrare cont

Mesajde Nsilviu » Dum Iun 03, 2012 12:17 am

Salut de curand mam apucat sa realizez un site de vanzari auto.
Totul bun pana aici...
La inregistrare unui anunt mam gandit sa nu se realizeze pe baza de cont, adica sa nusi faca omul cont si deabea dupaia sa inregistreze anutul de vanzare.
Si am pus campurile... Email, parola, repeta parola, nume, prenume, etc..
Primele doua sunt mai importante pentru realizarea administrari anuntului ulterior...
1.Daca omul vine si inscrie un anunt isi scrie mail si o parola, deci in timp poate sal administreze..
2.Daca acelasi om vine si inscrie un alt anunt isi scire acelasi mail si alta parola, deci si asa e bine poate sa le administreze pe alemandoua folosid parola pentru fiecare.
3.Daca acelasi om vine si inscrie un alt anunt cu acelasi mail si cu aceiasi parola pe care din cele 2,3..n anunturi le adiminstreaza, avand in vedere ca in mysql se insereaza cate 1 rand nou pentru fiecare anunt, cu datele lui si ale masini..
Vreo idee cum as putea sa fac, alta inafara de al pune sasi aleaga mereu alta parola.


ALT + F2
Scrii " Free the fish "
Apesi Enter.
Sistem de operare: Linux

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

Mesajde Birkoff » Dum Iun 03, 2012 1:46 am

la fiecare anunt salvezi email si parola... asa pentru fiecare anunt isi poate seta acelasi emai si aceeasi parola sau diferite...
cand faci selectul, daca iti returneaza 3 anunturi i le afisezi pe toate intr-o lista si il pui sa selecteze pe care vrea sa il modifice (selecteaza si iti trimite id-ul anuntului) tu preiei id-ul mai verifici odata ca email si parola introduse prima oara sunt ok (poti sa le memorezi in sesiune) si ii afisezi formularul de modificare pentru acel anunt...
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.

Nsilviu
Average Member
Mesaje: 136
Membru din: Dum Dec 21, 2008 10:18 pm
Contact:

Mesajde Nsilviu » Dum Iun 03, 2012 7:47 am

Ma refer daca ar fi 2 randur (inregistrari) cu acelasi email si parola, cand o sa se faca logarea nu o sa dea erroare ?
Ma gandeam sa faca 2 tabele in mysql...si cand adauga anunt sa se creeze un cod radom acel cod sa faca legatura intre tabelul 'users' si tabelul 'anunt' iar daca adaca un al doile anunt acelasi email cu aceiasi parola sa ii fac update decat la tabelul 'anunt' cu codul deja existent de la prima inregistrare din tabelul 'users'
ALT + F2

Scrii " Free the fish "

Apesi Enter.

Sistem de operare: Linux

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

Mesajde Birkoff » Dum Iun 03, 2012 8:25 am

nu, pentru ca tu verifici strict acel email si acea parola, daca nu exista in bd alocat la nici un anunt inseamna ca nu sa inregistrat, daca exista la 1 sau mai multe anunturi atunci e user valid si il loghezi si ii afisezi doar acele anunturi la care ii corespund acel email si acea parola (chiar daca el mai are si altele, alea nu te intereseaza ca nu sunt pe aceleasi email/parola)

PS. nu vei avea un tabel de user cu user/parola/email pentru ca nu trebuie, la logare te iei strict de email/parola de la anunturi. Daca totusi ai nevoie si de alte date ale userului atunci structura de tabele ar trebui sa fie similara cu asta:

tabel anunturi
id | titlu | descriere | email | parola | status (0 inactiv, 1 activ) | alte campuri

tabel user
id | nume | alte campuri

tabel user_anunturi -> face legatura intre user si anunturile lui
id | id_user | id_anunt

ca sa verifici daca exista email/parola faci ceva de genu
SELECT a.email, a.parola, u.nume. u.alte_capuri
FROM anunturi a
LEFT JOIN user_anunturi ua
ON ua.id_anunt = a.id
LEFT JOIN user u
ON u.id = ua.id_user
WHERE a.email = '{$email}'
AND a.parola = '{$parola}'
LIMIT 1

asta iti va returna datele de logare pe care le poti baga in sesiune

ca sa preiei lista de anunturi ale userului faci ceva de genu
SELECT a.*
FROM anunturi a
WHERE a.email = '{$email}'
AND a.parola = '{$parola}'

dupa cum observi, in varianta propusa de tine email si parola sunt in tabela de anunturi nu in tabela de user.

la adaugarea unui anunt nou, daca e deja logat ai email si parola in sesiune si le iei de acolo si le bagi in formularul de adaugare anunt si le salvezi in bd odata cu anuntul. Eventual ii afisezi un mesaj ca daca schimba email sau parola pentru a modifica anuntul trebuie sa se logheze pe noile date (email/parola) si eventual il intrebi daca doreste sa modifice email/parola la toate cele deja existente... si atunci faci update...
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.

Nsilviu
Average Member
Mesaje: 136
Membru din: Dum Dec 21, 2008 10:18 pm
Contact:

Mesajde Nsilviu » Dum Iun 03, 2012 11:15 pm

Pana la urma am reusit, si am facut in felul urmator.
Am 2 tabele in mysql
'users' si 'anunt'

Cod: Selectaţi tot

$verif_mysql = mysql_query("SELECT email,pass FROM users WHERE email='$email' AND pass='$pass'")or die(mysql_error());
                          $rezultatul_verificari = mysql_num_rows($verif_mysql);
                          if($rezultatul_verificari == '0'){
                          //Daca rezultatul este 0 adica nu se afla nici o inregistrare
                          $adaugarea_userului = mysql_query("INSERT INTO users VALUES('','$email','$pass','$cod_nou','$data')")
                                                or die(mysql_error());   
                          $adaugarea_anuntului = mysql_query("INSERT INTO anunt VALUES('','$cod_nou','$nume','$prenume','$judet',
                                                                     '$localitate','$tel','$tel2','$tel3','$yahoo','$skype')")
                                                             or die(mysql_error());
                          echo '<meta HTTP-EQUIV="REFRESH" content="0; url=ad_post2.php?p='.$cod_nou.'">';                     
                          }else{
                          //Daca rezultatul este 1 adica daca se afla o inregistrare
                          $preiau_codul_existent = mysql_query("SELECT email,pass,cod FROM users WHERE email='$email' AND pass='$pass'")
                                                               or die(mysql_error());   
                          while($row = mysql_fetch_array($preiau_codul_existent)){
                          //extrage codul deja existent in tabelul users
                            $cod_preloat = $row['cod'];
                            //adaugarea anutului cu codul deja existent
                            $adaugarea_anuntului = mysql_query("INSERT INTO anunt VALUES('','$cod_preloat','$nume','$prenume','$judet',
                                                                       '$localitate','$tel','$tel2','$tel3','$yahoo','$skype')")
                                                      or die(mysql_error());   
                           echo '<meta HTTP-EQUIV="REFRESH" content="0; url=ad_post2.php?p='.$cod_preloat.'">';   
                          }                                     

Va multumesc mult tuturor.
ALT + F2

Scrii " Free the fish "

Apesi Enter.

Sistem de operare: Linux


Înapoi la “Conferinta de web development”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator