Jump to content

[Résolu] Impossible de créer un nouveau compte client en F.O. et B.O.


Recommended Posts

Bonjour à tous,

 

Sur un prestashop 1.5.4.1 j'ai une erreur lorsque j'essaye de créer un compte client que ce soit en front office ou en back office. C'est un nouveau site qui n'a jamais reçu une seule commande et c'est juste avant de le présenter à un mon client que je me suis aperçu de ce problème.

 

Voici le site en question.

http://lapalmeraiedesdelices.fr

En front office j'ai le message:
Il y a 1 erreur
"Une erreur est survenue lors de la création de votre compte."

En back office office j'ai le message: 

Il y a 1 erreur
"Une erreur est survenue lors de la création de votre compte." customer()

 

Pour l'identification en front office il semblerait qu'il y ait un problème aussi. Ne pouvant créer un nouvel utilisateur, j'ai personnalisé le mot de passe du client par défaut John Doe en saisissant directement dans la base de donnée un mot de passe (brice1819) encrypté en MD5 via MySQL (je ne sais pas si sur prestashop cette methode de création de mot de passe via la base de données peut fonctionner mais je l'ai essayée car sur d'autres CMS elle fonctionne). Puis en essayant de m'identifier en front office j'obtiens l'erreur.

 

Il y a 1 erreur

Échec d'authentification

Êtes-vous en mesure de régler ce problème assez rapidement ? Évidement je vous rémunère.

 

En parcourant le web j'ai trouvé quelques suggestions mais rien n'y fait

- J'ai déjà lancé une optimisation de la base de donnée MySql

- J'ai vidé mes cookies

- J'ai vidé les enregistrements de la table ps_connection

- J'ai réinstallé les classes et les controller depuis une archive prestashop 1.5.4.1 neuve

 

Un autre problème qui ne me facilite pas la tâche c'est que je n'arrive pas à afficher les erreurs, j'ai pourtant  édité le fichier config.inc.php

 

en ajoutant ces deux paramètres initialement absents du fichier

@ini_set('display_errors', 'on');
define('_PS_DEBUG_SQL_',true);

 

Mais rien n'y fait, aucune erreur apparait, y a t-il une nouvelle façon d'afficher les erreurs sur cette version de prestashop ?

 

Merci à vous

 

Edited by tasch3027 (see edit history)
Link to comment
Share on other sites

Bonjour,

Un autre problème qui ne me facilite pas la tâche c'est que je n'arrive pas à afficher les erreurs, j'ai pourtant  édité le fichier config.inc.php

 

Il faut les enlever du fichier config.inc.php. Ces paramètres sont déjà dans le fichier defines.inc.php

/* Debug only */
define('_PS_MODE_DEV_', true);
if (_PS_MODE_DEV_)
{
    @ini_set('display_errors', 'on');
    @error_reporting(E_ALL | E_STRICT);
    define('_PS_DEBUG_SQL_', true);
    /* Compatibility warning */
    define('_PS_DISPLAY_COMPATIBILITY_WARNING_', true);
}
Edited by indesign (see edit history)
  • Like 1
Link to comment
Share on other sites

John Doe en saisissant directement dans la base de donnée un mot de passe (brice1819) encrypté en MD5 via MySQL (je ne sais pas si sur prestashop cette methode de création de mot de passe via la base de données peut fonctionner mais je l'ai essayée car sur d'autres CMS elle fonctionne).

Il faut utiliser la fonction encrypt. :)

Edited by indesign (see edit history)
  • Like 1
Link to comment
Share on other sites

Merci indesign,

 

c'est déjà une bonne chose,

 

voici les erreurs,

 

Unknown column 'id_lang' in 'field list'

INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')

at line 607 in file classes/db/Db.php

601. 			WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
602. 		}
603. 		else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
604. 		{
605. 			if ($sql)
606. 				throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
607. 			throw new PrestaShopDatabaseException($this->getMsgError());
608. 		}
609. 	}
610. 
611. 	/**

DbCore->displayError - [line 307 - classes/db/Db.php] - [1 Arguments]

Argument [0]
INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')

DbCore->query - [line 581 - classes/db/Db.php] - [1 Arguments]

Argument [0]
INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')

DbCore->q - [line 372 - classes/db/Db.php] - [2 Arguments]

Argument [0]
INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')
Argument [1]
1

DbCore->insert - [line 465 - classes/ObjectModel.php] - [3 Arguments]

Argument [0]
customer
Argument [1]
Array
(
    [secure_key] => 0e8a6fda76ebe4e520774c93a5666862
    [lastname] => Grelet
    [firstname] => Brice
    [email] => [email protected]
    [passwd] => 3e0c79681c0738f8b87aa8872ca2aecc
    [last_passwd_gen] => 2013-09-07 09:12:19
    [id_gender] => 1
    [birthday] => 1999-3-14
    [newsletter] => 0
    [newsletter_date_add] => 0000-00-00
    [ip_registration_newsletter] => 
    [optin] => 0
    [website] => 
    [company] => 
    [siret] => 
    [ape] => 
    [outstanding_allow_amount] => 0
    [show_public_prices] => 0
    [id_risk] => 0
    [max_payment_days] => 0
    [active] => 1
    [deleted] => 0
    [note] => 
    [is_guest] => 0
    [id_shop] => 1
    [id_shop_group] => 1
    [id_default_group] => 3
    [id_lang] => 5
    [date_add] => 2013-09-07 15:12:19
    [date_upd] => 2013-09-07 15:12:19
)

Argument [2]
1

ObjectModelCore->add - [line 225 - classes/Customer.php] - [2 Arguments]

Argument [0]
1
Argument [1]
1

CustomerCore->add - [line 547 - controllers/front/AuthController.php] - [0 Argument]

541. 					// New Guest customer
542. 					if (Tools::isSubmit('is_new_customer'))
543. 						$customer->is_guest = !Tools::getValue('is_new_customer', 1);
544. 					else
545. 						$customer->is_guest = 0;
546. 					if (!$customer->add())
547. 						$this->errors[] = Tools::displayError('An error occurred while creating your account..');
548. 					else
549. 					{
550. 						$address->id_customer = (int)$customer->id;
551. 						$this->errors = array_unique(array_merge($this->errors, $address->validateController()));

AuthControllerCore->processSubmitAccount - [line 263 - controllers/front/AuthController.php] - [0 Argument]

257. 	{
258. 		if (Tools::isSubmit('SubmitCreate'))
259. 			$this->processSubmitCreate();
260. 
261. 		if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount'))
262. 			$this->processSubmitAccount();
263. 
264. 		if (Tools::isSubmit('SubmitLogin'))
265. 			$this->processSubmitLogin();
266. 	}
267. 

AuthControllerCore->postProcess - [line 158 - classes/controller/Controller.php] - [0 Argument]

152. 			// setMedia MUST be called before postProcess
153. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
154. 				$this->setMedia();
155. 
156. 			// postProcess handles ajaxProcess
157. 			$this->postProcess();
158. 
159. 			if (!empty($this->redirect_after))
160. 				$this->redirect();
161. 
162. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))

ControllerCore->run - [line 349 - classes/Dispatcher.php] - [0 Argument]

343. 			// Execute hook dispatcher
344. 			if (isset($params_hook_action_dispatcher))
345. 				Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
346. 
347. 			// Running controller
348. 			$controller->run();
349. 		}
350. 		catch (PrestaShopException $e)
351. 		{
352. 			$e->displayMessage();
353. 		}

DispatcherCore->dispatch - [line 28 - index.php] - [0 Argument]

22. *  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
23. *  International Registered Trademark & Property of PrestaShop SA
24. */
25. 
26. require(dirname(__FILE__).'/config/config.inc.php');
27. Dispatcher::getInstance()->dispatch();
28. 
Link to comment
Share on other sites

La colonne id_lang n'est pas présente dans la table ps_customer

 

Ok mais ce que je ne comprends pas c'est que si je compare avec d'autre install de prestashops, je ne vois pas non plus cette table, est-elle censée etre une colonne par défaut ?

 

Que dois-je faire ?

Link to comment
Share on other sites

Normalement oui

post-459329-0-61596000-1378561080_thumb.png


INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')

il cherche la id_lang = 5

id_lang 5 est elle présente dans la table ps_lang ?

Normalement, le Français est en id 1

Edited by indesign (see edit history)
  • Like 1
Link to comment
Share on other sites

John Doe en saisissant directement dans la base de donnée un mot de passe (brice1819) encrypté en MD5 via MySQL (je ne sais pas si sur prestashop cette methode de création de mot de passe via la base de données peut fonctionner mais je l'ai essayée car sur d'autres CMS elle fonctionne).

 

Oups ! en effet, c'est la bonne méthode. ;)

Encrypté en MD5 en utilisant la clé contenue dans le fichier settings.inc.php, dans le dossier config.

define('_COOKIE_KEY_', '           ');
  • Like 1
Link to comment
Share on other sites

Normalement oui

attachicon.gifCapture d’écran 2013-09-07 à 15.37.31.png


INSERT INTO `ps_customer` (`secure_key`, `lastname`, `firstname`, `email`, `passwd`, `last_passwd_gen`, `id_gender`, `birthday`, `newsletter`, `newsletter_date_add`, `ip_registration_newsletter`, `optin`, `website`, `company`, `siret`, `ape`, `outstanding_allow_amount`, `show_public_prices`, `id_risk`, `max_payment_days`, `active`, `deleted`, `note`, `is_guest`, `id_shop`, `id_shop_group`, `id_default_group`, `id_lang`, `date_add`, `date_upd`) VALUES ('0e8a6fda76ebe4e520774c93a5666862', 'Grelet', 'Brice', '[email protected]', '3e0c79681c0738f8b87aa8872ca2aecc', '2013-09-07 09:12:19', '1', '1999-3-14', '0', '0000-00-00', NULL, '0', NULL, NULL, NULL, NULL, '0', '0', '0', '0', '1', '0', NULL, '0', '1', '1', '3', '5', '2013-09-07 15:12:19', '2013-09-07 15:12:19')

il cherche la id_lang = 5

id_lang 5 est elle présente dans la table ps_lang ?

Normalement, le Français est en id 1

 

La id_lang 5 est bien présente et j'ai ajouté manuellement le champ id_lang dans la table ps_custommer en me basant sur ce post

http://www.prestashop.com/forums/topic/247485-solved-authentication-unknown-column-id-lang-in-field-list/

 

Donc cette erreur a été remplacée par une nouvelle erreur du même type,

Unknown column 'mobile_theme' in 'field list'

 

Que j'ai résolu de la même façon que la précédente en me basant sur les réglages du champs 'windows_media'

 

Et tout vient de rentrer dans l'ordre, merci pour ton aide !

 

Brice

  • Like 1
Link to comment
Share on other sites

 

Oups ! en effet, c'est la bonne méthode. ;)

Encrypté en MD5 en utilisant la clé contenue dans le fichier settings.inc.php, dans le dossier config.

define('_COOKIE_KEY_', '           ');

Ok ça roule merci !

par contre comment fait-on dans mysql pour suggérer cette clé ?

Link to comment
Share on other sites

par contre comment fait-on dans mysql pour suggérer cette clé ?

 

@ manouille

 

Dans le fichier settings.inc.php que tu trouveras sur ton serveur (là ou sont tes fichers) dans le dossier config, il y a une ligne cookie key avec plein de caractère.

 

Tu copies ces caracteres dans un encypteur md5 (par exemple ici : http://www.cryptage-md5.com/) puis tu y ajoutes le mot de passe a la suite que tu veux.

 

Apres tu cryptes cette chaine de caractere en cliquant sur le bouton du site.

 

Cela va générer une autre chaine de caractères (qui sont donc maintenant cryptés) qui est le nouveau mot de passe.

 

Tu vas dans ta base de donné (phpmyadmin) dans la table ps_employee et tu remplace le mot de passe par celui que tu viens de générer et le tour est joué.

 

 

 

****

 

Pour des raisons de sécurité tu auras compris qu'il y a 2 données indépendantes mises ensemble (la cookiekey et le mot de passe) qui sont encryptés pour servir in-fine de mot de passe que seul la machine comprend.

 

Je sais pas si je suis plus clair ;)  @ manouille

  • Like 1
Link to comment
Share on other sites

Êtes-vous en mesure de régler ce problème assez rapidement ? Évidement je vous rémunère.

 

On n'en demande pas tant... mais un "like this" pour le temps passé, les idées, les solutions...

Un click, c'est rapide, c'est gratuit, et en plus ça fait plaisir. ;)

 

Si le problème est réglé, mettre le post en [Résolu]   


Ça ferra plaisir aux modérateurs, et aux bénévoles qui lisent le()s post(s).

 ;)

 

Procédure à suivre :
 Edit le premier post > Use Full Editor et rajouter devant le titre [Résolu]

Edited by indesign (see edit history)
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...