Jump to content

Big bug in authentification page -> everyone should correct that!


Recommended Posts

Here is the problem:
- go to your website or on the Prestashop demo (front office).
- go to the registration page (authentification.php)
- type an email then click on the button 'Create an account'
- fill some parts of the form but leave some required part empty in purpose
- an error message appear in red as well as a '<
-> if you click on the back button you will be bring back to the first page where they ask for your email. Means all your information you might have entered (name, address, whatever) is gone.

This back button should be removed as it's totally useless. If a customer click on this button he or she have to restart the registration process from the beginning. That's a excellent way to loose customers.

You can remove this button by comment the following line in error.tpl (file located in your template):
Replace:


« {l s='Back'}


by

{*
« {l s='Back'}*}



My [spam-filter] found it out! I can't believe I didn't notice that!

Link to comment
Share on other sites

  • 2 months later...

Eh bien je voudrais que mon utilisateur puisse créer un compte rapido avec les champs.

- Prénom
- Nom
- Adresse e-mail
- Mot de passe
- Confirmer Mot de passe
- Adresse de livraison
- Infos complémentaires

Ainsi, sont processus d'achat n'est pas perturbé, et pour des informations complémentaires il pourra toujours les remplir par la suite.
En fait, je voudrai quelque chose comme tu as fais sur ton site Tokyo Smart.

En fait j'ai compris comment rajouter les champs "visuellement" mais je n'arrive pas à coordonner les liens d'erreurs et de création du compte et donc c'est le bordel :D

Merci

Link to comment
Share on other sites

Pour modifier l'ordre des cases ou l'apparence du formulaire il faut modifier le fichier authentication.tpl qui est situé dans ton thème.
De mon côté je n'ai pas de vérification du mdp mais une vérification d'email.
Pour avoir cette vérification j'ai ajouté le code suivant en dessous de l'input de l'email dans le fichier authentication.tpl :



{l s='E-mail verify'}
   <input type="text" class="text" id="email_verify" name="email_verify" value="{if isset($smarty.post.email_verify)}{$smarty.post.email_verify}{/if}" />
*
 


Ensuite dans le fichier authentication.php (à la racine du site) en dessous de :

if (!Validate::isEmail($email = Tools::getValue('email')))
$errors[] = Tools::displayError('e-mail not valid');


ajouter:

elseif (Tools::getValue('email') != Tools::getValue('email_verify'))
$errors[] = Tools::displayError('email addresses do not match'); 



Ne pas oublier d'aller traduire 'email addresses do not match' dans la partie traduction du back office.

Link to comment
Share on other sites

Très bien je vais regarder ça quand je serai plus "frais". Je te remercie en tout cas !

Par contre, comment fais-tu pour que le bouton "créer votre compte" ne te renvoi pas vers le formulaire formulaire mais qu'il créer bien le compte directement ?

Aussi, je travail sur une version beta qui n'est pas sur le serveur cible, j'imagine que je pourrai faire l'export sans perdre aucune donnée mais je n'ai pas vérifié, ai-je raison ?

Encore merci pour cette aide précieuse !

Cordialement.

Link to comment
Share on other sites

Je ne suis pas sur d'avoir compris la phrase suivante :

Par contre, comment fais-tu pour que le bouton “créer votre compte” ne te renvoi pas vers le formulaire formulaire mais qu’il créer bien le compte directement ?


Ce que j'ai fait pour avoir le formulaire de connection (pour les clients existants) dans la page de creation de compte...

1/ modifier authentication.tpl:

- commenter partie etape choix 'deja un compte?'/'creer un compte'
{*
   {if !isset($email_create)}
       <form action="{$base_dir_ssl}authentication.php" method="post" id="create-account_form" class="std">

{l s='Your personal information'}
{l s='Enter your e-mail address to create your account'}.


{l s='E-mail address'}
<input type="text" id="email_create" name="email_create" value="{if isset($smarty.post.email_create)}{$smarty.post.email_create|escape:'htmlall'|stripslashes}{/if}" class="account_input" /></span>



               {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
                   <input type="submit" id="SubmitCreate" name="SubmitCreate" class="button_large" value="{l s='Create your account'}" />
                   <input type="hidden" class="hidden" name="SubmitCreate" value="{l s='Create your account'}" />


       </form>
       <form action="{$base_dir_ssl}authentication.php" method="post" id="login_form" class="std">

{l s='Already registered ?'}


{l s='E-mail address'}
<input type="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|escape:'htmlall'|stripslashes}{/if}" class="account_input" /></span>



{l s='Password'}
<input type="password" id="passwd" name="passwd" value="{if isset($smarty.post.passwd)}{$smarty.post.passwd|escape:'htmlall'|stripslashes}{/if}" class="account_input" /></span>



                   {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'htmlall':'UTF-8'}" />{/if}
                   <input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Log in'}" />


{l s='Forgot your password?'}

       </form>
   {else}
*}



- copier le code du formulaire de connection (vers lignes 52 a 69) et le placer au dessus formulaire creation compte (autour des lignes 73 a 90)

- assembler les deux parties du formulaire creation comptes en modifiant les tables (ligne 78 environ)

2/ modifier authentication.php: (sans la modif suivante apres avoir cliqué sur suivant sur la page du panier tous se passe bien sauf la liste des pays qui ne s'affiche pas)

-> remplacer:

if (Tools::getValue('create_account'))
     {
       $create_account = 1;
     $smarty->assign('email_create', 1);
     }


par:

//if (Tools::getValue('create_account'))
     //{
       $create_account = 1;
     //$smarty->assign('email_create', 1);
     //}



- Faire differentes adaptations avec feuille de style

Apres il peut y avoir des differences en fonction de la version de Prestashop que tu utilise.

Link to comment
Share on other sites

Merci beaucoup, je vais regarder ça ce soir.
Ce que je veux dire par : Par contre, comment fais-tu pour que le bouton “créer votre compte” ne te renvoi pas vers le formulaire mais qu’il créer bien le compte directement ?

C'est que lorsque sur cette page je clique sur "Créer compte" : http://cfocket.free.fr/authentication.php?back=my-account.php'>http://cfocket.free.fr/authentication.php?back=my-account.php
Cela ne me renvoi pas vers : http://cfocket.free.fr/authentication.php

Et donc que le processus d'achat ne soit pas cassé.

Merci encore pour cette aide précieuse.

Link to comment
Share on other sites

  • 6 months later...

Hi - I tried to add the method for email verify to the one page guest checkout - and got the following errors - can this be made to work in v1.4.4 using the one page checkout? errors:

 

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/var/www/vhosts/thermometer.co.uk/httpdocs/testpshop/themes/prestashop/./order-opc-new-account.tpl" on line 137 "<input type="text" class="text" id=" guest_email _verify" name=" guest_email _verify" value="{if isset($smarty.post. guest_email _verify)}{$smarty.post. guest_email _verify}{/if}" />" - Unexpected " ", expected one of: "{" , "$" , "identifier" , INTEGER' in /var/www/vhosts/thermometer.co.uk/httpdocs/testpshop/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php:431 Stack trace: #0 /var/www/vhosts/thermometer.co.uk/httpdocs/testpshop/tools/smarty/sysplugins/smarty_internal_templateparser.php(2855): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 /var/www/vhosts/thermometer.co.uk/httpdocs/testpshop/tools/smarty/sysplugins/smarty_internal_templateparser.php(2920): Smarty_Internal_Templateparser->yy_syntax_error(22, ' ') #2 /var/www in /var/www/vhosts/thermometer.co.uk/httpdocs/testpshop/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 431

 

Thanks

 

Baz

Link to comment
Share on other sites

  • 2 weeks later...

Hi Cactusman - I've managed to add a verify email address to the 5 page checkouts in version 1.4.4, but can't seem to get it to work on the one page checkout :-( Have you managed to do that? If so can you post example code? Thanks, Baz

 

Pour modifier l'ordre des cases ou l'apparence du formulaire il faut modifier le fichier authentication.tpl qui est situé dans ton thème.<br/>De mon côté je n'ai pas de vérification du mdp mais une vérification d'email.<br/>Pour avoir cette vérification j'ai ajouté le code suivant en dessous de l'input de l'email dans le fichier authentication.tpl :<br/>

<br/><p class="required text"><br/>    <label for="email_verify">{l s='E-mail verify'}</label><br/>    <input type="text" class="text" id="email_verify" name="email_verify" value="{if isset($smarty.post.email_verify)}{$smarty.post.email_verify}{/if}" /><br/>    <sup>*</sup><br/>    </p> <br/>

<br/>Ensuite dans le fichier authentication.php (à la racine du site) en dessous de : <br/>

<br/>if (!Validate::isEmail($email = Tools::getValue('email')))<br/>$errors[] = Tools::displayError('e-mail not valid');<br/>

<br/>ajouter:<br/>

<br/>elseif (Tools::getValue('email') != Tools::getValue('email_verify'))<br/>$errors[] = Tools::displayError('email addresses do not match'); <br/>

<br/><br/>Ne pas oublier d'aller traduire 'email addresses do not match' dans la partie traduction du back office.

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...