wdrożenia PrestaShop

kilka kont, ten sam email

  • 12 Odpowiedzi
  • 4284 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
kilka kont, ten sam email
« dnia: Marzec 19, 2010, 11:41:53 pm »
Chcę aby w moim sklepie można było założyć kilka kont na ten sam adres email. Zmieniłem w funkcji customerExists w pliku classes/Customer.php warunek where na taki, który nigdy nie zostanie spełniony, ale przy próbie utworzenia konta otrzymuję bląd: "wystąpił błąd podczas tworzenia twojego konta". Czy ktoś może mi pomóc?
static public function customerExists($email, $return_id = false)
{
if (!Validate::isEmail($email))
die (Tools::displayError());

$result = Db::getInstance()->getRow('
SELECT `id_customer`
FROM `'._DB_PREFIX_.'customer`
       WHERE `email`= 1');

if ($return_id)
return intval($result['id_customer']);
else
return isset($result['id_customer']);
}


*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #1 dnia: Marzec 21, 2010, 04:15:49 pm »
Znalazłem rozwiązanie problemu, w tabeli ps_customer jest indeks na kolumnie email, który trzeba usunąć.

*

Offline sabcio516

  • Nowy
  • *
  • 2
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #2 dnia: Marzec 29, 2010, 10:24:45 pm »
Witam.
Czy mógłbyś napisać, co dokładnie trzeba w PHPMyAdmin zrobić, żeby usunąć ten index?
Dzięki wielkie za pomoc. Pozdrawiam.

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #3 dnia: Marzec 29, 2010, 10:50:59 pm »
Indeks można usunąć na dwa sposoby:
1. Zapytaniem SQL
ALTER TABLE `ps_customer` DROP INDEX `email`
2. Wybieramy tabelę ps_customer, przechodzimy do zakładki struktura, na dole rozwijamy szczegóły i klikamy usuń

*

Offline sabcio516

  • Nowy
  • *
  • 2
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #4 dnia: Marzec 30, 2010, 08:00:35 pm »
Kolego dzięki wielkie za pomoc, oczywiście wszystko zagrało.
Dla osób niewiedzących do czego może się to przydać, to napiszę, że dzięki temu można spokojnie korzystać z dodatku PWA pozwalającego robić zakupy bez rejestracji- normalnie jeśli ktoś poda swój email przy zakupach bez rejestracji, to zostaje on w bazie danych i jeśli w przyszłości ten sam klient spróbuje zrobić zakupy bez rejestracji na ten sam email, to wywali błąd, że nie udało się utworzyć konta (związane jest to z istnieniem takiego maila w bazie i nie może on drugi raz się tu pojawić). Po takiej modyfikacji można robić nieskończenie wiele razy zakupy przez PWA na ten sam email.

Pozdrawiam

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #5 dnia: Marzec 30, 2010, 08:14:14 pm »
Widzę, że nie tylko ja wpadłem na ten pomysł :)

*

Offline monraker

  • Nowy
  • *
  • 2
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #6 dnia: Marzec 31, 2010, 02:31:21 pm »
Witam, możecie powiedzieć czy mam coś jeszcze zmienić, ponieważ usunięcie indexu e-mail nic nie dało.

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #7 dnia: Marzec 31, 2010, 05:52:29 pm »
W pliku authentication.php trzeba usunąć lub skomentować, ten fragment, pojawia się dwa razy w pliku
elseif (Customer::customerExists($email))
$errors[] = Tools::displayError('someone has already registered with this e-mail address');

*

Offline monraker

  • Nowy
  • *
  • 2
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #8 dnia: Kwiecień 01, 2010, 10:48:52 am »
Bardzo dziękuje. Pomogło  :)

*

Offline scholl

  • Wdrożenia PrestaShop
  • Mieszkaniec
  • *****
  • 511
  • 0
  • Płeć: Mężczyzna
Odp: kilka kont, ten sam email
« Odpowiedź #9 dnia: Czerwiec 29, 2010, 05:24:51 pm »
Witam,
Wyskakuje mi komunikat:
"Unknown column 'email' in 'where clause'


      SELECT `id_customer`
      FROM `ps_customer`
      WHERE `email` = email@mail.com' "

Wiecie może w czym roblem, w bazie email został usunięty ?

*

Offline arni

  • Nowy
  • *
  • 9
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #10 dnia: Maj 12, 2012, 02:40:18 pm »
A ja wysłałem takie zapytanie, przez uruchom zapytanie sql i otrzymałem odpowiedź:

#1046 - No database selected

Co poszło nie tak. Albo inaczej co robię nie tak?

Dodam że wybrałem ten sposób gdyż w mojej bazie nie znalazłem linku "szczegóły" o którym mowa powyżej

...musicie mi jakoś wybaczyć ale nie zawsze jestem tak do końca rozgarnięty... Myślałem że należy kliknąć "szczegóły"... a tu po prostu należy usunąć z indeksów pole email.

...biorę pejcz i zaczynam się biczować, kara musi być...
Pozdrawiam
« Ostatnia zmiana: Maj 12, 2012, 02:57:50 pm wysłana przez arni »

*

Offline mario

  • Mieszkaniec
  • *****
  • 640
  • 0
  • Płeć: Mężczyzna
Odp: kilka kont, ten sam email
« Odpowiedź #11 dnia: Maj 12, 2012, 02:57:27 pm »
nie wybrales bazy na ktorej chcesz wykonac zapytanie, na poczatku zapytania dodaj:
USE nazwa_bazy;

za nazwa_bazy podstaw wlasciwa nazwe bazy danych
Integracja wf-mag presta
freelancer

*

Offline arni

  • Nowy
  • *
  • 9
  • 0
Odp: kilka kont, ten sam email
« Odpowiedź #12 dnia: Maj 12, 2012, 03:09:15 pm »
Więc ostatecznie wywaliłem z bazy danych index email

teraz już go tam na dole nie ma

index presta.jpg

oraz zastosowałem się do tych poleceń:

W pliku authentication.php trzeba usunąć lub skomentować, ten fragment, pojawia się dwa razy w pliku
Kod:
   elseif (Customer::customerExists($email))
      $errors[] = Tools::displayError('someone has already registered with this e-mail address');   

W efekcie dalej mam komunikat o tym że adres email już istnieje w bazie,
błąd.jpg

Co jeszcze mogę zrobić?

Wiem co należy zrobić.... Myśleć a z tym dziś u mnie nie najlepiej....

Nie zastosowałem oczywiście zmiany w pliku  classes/Customer.php z samego początku tego posta...

Na dziś to chyba już koniec kombinowania bo coś bardzo słabo wypadam...
Pozdrawiam raz jeszcze.
« Ostatnia zmiana: Maj 12, 2012, 03:42:21 pm wysłana przez arni »