Polskie wsparcie PrestaShop

PrestaShop => Konfiguracja => Wątek zaczęty przez: motorider w Marzec 19, 2010, 11:41:53 pm

Tytuł: kilka kont, ten sam email
Wiadomość wysłana przez: motorider w 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']);
}

Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: motorider w 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ąć.
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: sabcio516 w 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.
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: motorider w 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ń
(http://img337.imageshack.us/img337/5104/beztytuuhm.jpg)
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: sabcio516 w 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
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: motorider w Marzec 30, 2010, 08:14:14 pm
Widzę, że nie tylko ja wpadłem na ten pomysł :)
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: monraker w 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.
(http://img31.imageshack.us/img31/7171/clipboard01wim.jpg)
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: motorider w 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');
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: monraker w Kwiecień 01, 2010, 10:48:52 am
Bardzo dziękuje. Pomogło  :)
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: scholl w 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 ?
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: arni w 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
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: mario w 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
Tytuł: Odp: kilka kont, ten sam email
Wiadomość wysłana przez: arni w 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 (http://zapodaj.net/ee35951453887.jpg.html)

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 (http://zapodaj.net/a2e4c677a6d7f.jpg.html)

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.