Shopping Voucher

PEAR, Smarty, ADOdb, OOP, PHP 5, XML, UML, Şabloane de proiectare, PHP-GTK.

Moderatori: coditza, Emil, Moderatori

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Shopping Voucher

Mesajde Quber » Mie Apr 20, 2011 9:46 pm



A man who dares to waste one hour of time has not discovered the value of life.

Avatar utilizator
Grig2007
Average Member
Mesaje: 154
Membru din: Vin Feb 02, 2007 12:05 pm
Localitate: LocalHost

Mesajde Grig2007 » Mie Apr 20, 2011 10:36 pm

Salut,

$num="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$random_nr=substr(md5($num),0,4); //creaza numarul random

$cod_valid=il ei din tabel de mysql cum ai tu facut,

if(empty($cod_valid)){
$msg_errP['cod']="Codul promotional nu exista in baza de date.";
}

Ceva de genu, dezvolta si tu.

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Mie Apr 20, 2011 10:41 pm

Aici ai dat doar o generare de cod dar e prea simplu, ma gindesc la o sistema mai complexa!
A man who dares to waste one hour of time has not discovered the value of life.

alexandru_24
Senior Member
Mesaje: 261
Membru din: Mar Iul 11, 2006 11:27 am
Localitate: Bucuresti
Contact:

Mesajde alexandru_24 » Joi Apr 21, 2011 9:18 am

am un magazin online de baterii laptop www.baterii-laptop.com.ro si unul de gadgeturi, accesorii telefoane mobile, etc... www.abshop.ro

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Joi Apr 21, 2011 9:34 am

A man who dares to waste one hour of time has not discovered the value of life.

cipcip
Senior Member
Mesaje: 201
Membru din: Dum Feb 22, 2009 1:26 pm

Mesajde cipcip » Joi Apr 21, 2011 10:17 am


Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Joi Apr 21, 2011 10:52 am

Nu... Trebuie sa ai asociat un cod per user - ca banuiesc ca se dau codurile unor useri sau unor adrese de mail, nu la intamplare. Cand se creeaza userul faci ceva de genul
[php]<?php
$cod = crc32(md5( [mail] . [session_id] . microtime() ));
$cod = substr($cod,0,1) == '-' ? '1'.substr($cod,1) : $cod ;
?>[/php]
Daca exista deja useri in baza de date, mai faci un camp [cod_v] si-i dai
valoarea generata astfel. Ideea nu este de a genera un numar random, ci
aceea de a genera un numar random care sa nu se repete pentru fiecare cont
1. cand introduce codul il verifici carei adrese de mail ii apartine
2. dupa ce a introdus codul acesta se sterge din baza de date, astfel ca nu mai
poate beneficia de reducere a doua oara

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Joi Apr 21, 2011 11:15 am

Problema e ca la mine lucreza un pic alt fel systema, e un magazin virtual si cineva poate cumpara un cod Voucher, acuma dupa ce el cumpara codul dat ii vine pe email CODUL, acuma el codul acesta il poate da oricarui persoane si deja persoana care primeste codul poate cumpara ceva cu codul dat. Uite ca asta e ideiea, cine imi da vre-o ideie cum sa fac asta functionabil?

Mam gindit sa fac o tabela in baza de date cu coduri voucher, acuma acolo sa introduc codul, suma totala, suma ramasa, data cumpararii codului, lastupdated si poate alte chestii... si cind cineva cumpara ceva cu codul dat sai scada din suma... dar problema e alta, nu cumva cineva sa afle codul dat...
A man who dares to waste one hour of time has not discovered the value of life.

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Joi Apr 21, 2011 11:37 am

Pe langa faptul ca scrii oribil, mai si intelegi oribil.
Eu ti-am zis cum se poate genera codul si o varianta de utilizare. Nu stiu eu ce plan ai tu in cap (sunt sute de scenarii).

Oricum, trebuie sa faci asocierea cod-mail... ceea ce te duce la generarea codului de mai sus pe baza adresei de mail, asta e important.

Apoi, poti face multe... poti face 2 tabel2 cu
1. cod, valoare, user (poti avea mai multe coduri la acelasi user)
2. produs cumparat, pret, user
ca sa faci apoi calcului cate produse au fost cumparate de acelasi user
(la final ii scazi valoarea voucherului)

sau, poti asocia DOAR codul cu mailul (cum ti-am zis prima data) si tii evidenta cumparaturilor in alta tabela. (aici poti avea un singur cod per user)

PS: invata sa scrii cat de cat OK in romana, ca e o adevarata provocare sa citesti un astfel de post
PS2: Se pot pune oricate restrictionari... atat timp cat codul depinde de user si userul trebuie sa fie logat (sa nu incerce mai mult de 5 coduri, sa nu foloseasca codul de mai mult de X ori etc etc).
PS3: Poti sa renunti la ideea de cod si doar sa bifezi in baza de date cum ca userul are reducere... nu trebuie sa stie codul de fiecare data.

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Joi Apr 21, 2011 11:59 am

Cred ca din cauza ca scriu oribil nu ai inteles ce am vrut sa zic.

De un cod se poate folosi oricine! El nu este generat doar pentru un sigur utilizator!
A man who dares to waste one hour of time has not discovered the value of life.

Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Joi Apr 21, 2011 3:11 pm

voucher:
id
cod
expirare
maxim_utilizari
valoare (valorica sau procentuala)

voucher_istoric:
id
id_voucher
id_comanda
data
valoare_scazuta (de siguranta)

eu am generator de X vouchere
coduri unice

cand baga voucher-ul verific nr. maxim de utilizari si de cate ori a fost folosit si ii dau voie sau nu

in programare sky is the limit dar cea mai clasica folosire e asta de mai sus

bineinteles poti sa-l legi de un client/email sau poti sa faci sa fie valabil doar in anumite zile/ore/daca-i cald afara ... gandeste-te ce ai tu nevoie si vino cu informatii exacte[/b]

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Joi Apr 21, 2011 5:29 pm


Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Joi Apr 21, 2011 8:44 pm

A man who dares to waste one hour of time has not discovered the value of life.

cipcip
Senior Member
Mesaje: 201
Membru din: Dum Feb 22, 2009 1:26 pm

Mesajde cipcip » Joi Apr 21, 2011 9:15 pm

Daca generezi un string de 15 cifre cu A-Z, a-z, 0-9 si alte caractere e imposibil sa ti-l ghiceasca.

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Vin Apr 22, 2011 9:04 am



Înapoi la “PHP Avansat”

Cine este conectat

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