Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1197 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin d'aide pour résoudre un message d'erreur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Besoin d'aide pour résoudre un message d'erreur

n°2276502
Ciwiel
Posté le 28-02-2016 à 14:01:31  profilanswer
 

Bonjour, donc voilà hier j'ai voulut sécurisé mon inscription pour mon forum et là je reçois un message d'erreur donc j'ai corrigé ce que j'ai trouvé de faux, mais après je suis perdue, je continue a avoir une erreur .
 
Voici l'erreur : (!) Parse error: syntax error, unexpected '}' in C:\Apache24\htdocs\NextGeek\site\Forum\inscription\inscription.php on line 14
 
Voici mon code PHP :

Citation :

<?php
   if(!empty($_POST)){
   
  $errors = array();
   
  if(empty($_POST['identifiant']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['identifiant'])){
   $errors['identifiant'] = "Votre identifiant n\'est pas valide (Alphanumérique)";
     }else {
   $req = $pdo->prepare('SELECT id FROM user WHERE identifiant = ?');
   $req->execute([$_POST['identifiant']]);
   $user = $req->fetch();
   if($user){
    $errors['identifiant'] = 'Cette identifiant est déjà pris'
   }
  }
  if(empty($_POST['mail']) || filter_var($_POST['mail'], !FILTER_VALIDATE_EMAIL)){
   $errors['mail'] = "Votre E-mail n\'est pas valide"
  }else {
   $req = $pdo->prepare('SELECT id FROM user WHERE mail = ?');
   $req->execute([$_POST['mail']]);
   $user = $req->fetch();
   if($user){
    $errors['mail'] = 'Cette E-mail est déjà utilisé'
  }
   
  if(empty($_POST['motdepasse']) $_POST['motdepasse'] != $_POST['motdepasse_confirmation']){
   $errors['motdepasse'] = "Vous devez rentrer un mot de passe valide";
  }
  if(empty($errors)){
   require_once 'BD.php'
   $req = $pdo->prepare"INSERT INTO user SET identifiant = ?, motdepasse = ?, mail = ?, confirmation_token = ?" );
   $motdepasse = password_hash($_POST['motdepasse'], PASSWORD_BCRYPT);
   $token = str_random(60);
   $user_id = $pdo->lastInsertId();
   $req->execute([$_POST['identifiant'], $motdepasse, $_POST['mail']])
   mail($_POST['mail'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nlocalhost/NextGeek/site/Forum/inscription/Rinscription.php?id=$user_id&token=$token" )
   header('Location: ../connexion/connexion.php')
   die('Votre compte a bien été crée')
  }
   
  debug($errors);
   
   }
   }


 
Merci d'avance .

mood
Publicité
Posté le 28-02-2016 à 14:01:31  profilanswer
 

n°2276506
Buldozerbe​n
Shizofan !
Posté le 28-02-2016 à 14:42:40  profilanswer
 

Salut
unexpected '}' c'est que tu aw une } en trop.  
 
Vérifie ;)


---------------
Topic Ach/Vds/Ech jeux vidéo
n°2276507
Ciwiel
Posté le 28-02-2016 à 15:20:35  profilanswer
 

D'accord je vais regarder ça :)

n°2276509
Ciwiel
Posté le 28-02-2016 à 16:31:40  profilanswer
 

Donc j'ai enlever l'accolade ligne 14 et ligne 15 comme il me la demander, mais ensuite c'est un problème avec la ligne de 16 :  
Parse error: syntax error, unexpected 'if' (T_IF) in C:\Apache24\htdocs\NextGeek\site\Forum\inscription\inscription.php on line 16

n°2276511
Buldozerbe​n
Shizofan !
Posté le 28-02-2016 à 17:02:12  profilanswer
 

Code :
  1. <?php
  2.    if(!empty($_POST)){
  3.    $errors = array();
  4.  
  5.    if(empty($_POST['identifiant']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['identifiant'])){
  6.     $errors['identifiant'] = "Votre identifiant n\'est pas valide (Alphanumérique)";
  7.     }else {
  8.      $req = $pdo->prepare('SELECT id FROM user WHERE identifiant = ?');
  9.      $req->execute([$_POST['identifiant']]);
  10.      $user = $req->fetch();
  11.      if($user){
  12.       $errors['identifiant'] = 'Cette identifiant est déjà pris';
  13.    }
  14.   }
  15.   if(empty($_POST['mail']) || filter_var($_POST['mail'], !FILTER_VALIDATE_EMAIL)) {
  16.    $errors['mail'] = "Votre E-mail n\'est pas valide";
  17.    }else {
  18.     $req = $pdo->prepare('SELECT id FROM user WHERE mail = ?');
  19.     $req->execute([$_POST['mail']]);
  20.     $user = $req->fetch();
  21.     if($user){
  22.      $errors['mail'] = 'Cette E-mail est déjà utilisé';
  23.     }
  24.    if(empty($_POST['motdepasse']) $_POST['motdepasse'] != $_POST['motdepasse_confirmation']) {
  25.      $errors['motdepasse'] = "Vous devez rentrer un mot de passe valide";
  26.    }
  27.    if(empty($errors)) {
  28.     require_once 'BD.php';
  29.     $req = $pdo->prepare("INSERT INTO user SET identifiant = ?, motdepasse = ?, mail = ?, confirmation_token = ?" );
  30.     $motdepasse = password_hash($_POST['motdepasse'], PASSWORD_BCRYPT);
  31.     $token = str_random(60);
  32.     $user_id = $pdo->lastInsertId();
  33.     $req->execute([$_POST['identifiant'], $motdepasse, $_POST['mail']]);
  34.     mail($_POST['mail'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nlocalhost/NextGeek/site/Forum/inscription/Rinscription.php?id=$user_id&token=$token" );
  35.     header('Location: ../connexion/connexion.php');
  36.     die('Votre compte a bien été crée');
  37.    }
  38.  debug($errors);
  39.  }
  40.    }
  41. ?>
 

Edit : je n'ai fait qu'indenter ton code ... et rajouter des ; là où tu n'en avais pas !


Message édité par Buldozerben le 29-02-2016 à 10:31:26

---------------
Topic Ach/Vds/Ech jeux vidéo
n°2276552
rufo
Pas me confondre avec Lycos!
Posté le 29-02-2016 à 10:05:40  profilanswer
 

Clair : y'a de nombreuses lignes où il manque un ; à la fin :/
L12, 16, 22, ...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2276558
Buldozerbe​n
Shizofan !
Posté le 29-02-2016 à 10:31:43  profilanswer
 

:o fatigue :lol:


---------------
Topic Ach/Vds/Ech jeux vidéo
n°2276583
Ciwiel
Posté le 29-02-2016 à 15:52:39  profilanswer
 

Merci de votre aide :)

n°2276694
TotalRecal​l
Posté le 01-03-2016 à 19:52:45  profilanswer
 

Bonjour,  
Tu développes avec quel outil ?
Tes questions me font penser que tu utilises un bête bloc note, je ne connais pas les IDE PHP mais je suis sûr qu'il y en a de très bien qui permettent d'identifier et corriger très rapidement les problèmes d'équilibrage d'accolade et te faciliter la lecture de ton code.
Le plus connu en gratuit est Netbeans mais il y en a d'autres, et des plus légers.  
Des traitements de texte évolués comme Sublime text doivent également comporter des fonctions bien pratiques.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2276696
Ciwiel
Posté le 01-03-2016 à 20:03:45  profilanswer
 

Je développe avec Sublime text, mais je débute dans le PHP donc je fais souvent des erreurs stupide :/

mood
Publicité
Posté le 01-03-2016 à 20:03:45  profilanswer
 

n°2276697
Ciwiel
Posté le 01-03-2016 à 20:07:56  profilanswer
 

Par contre grâce a votre aide j'ai pu par la suite corrigé de nombreuses erreur et là il m'en remet une que je ne comprend pas, pouvez vous m'aider s'ils vous plaît ?

 

Cette fois-ci c'est par rapport au token de validation par e-mail :

 

Parse error: syntax error, unexpected '$user_id' (T_VARIABLE) in C:\wamp\www\NextGeek\site\Forum\inscription\Rinscription.php on line 3

 

Le code de Rinscription.php :

 
Citation :

<?php

 

        $user_id = $_GET['id'];
  $token = $_GET['token'];

 

 require_once 'BD.php'
  $req = $pdo->prepare('SELECT confirmation_token FROM user WHERE id = ?');
  $req->execute ([$user_id]);
  $user = $req->fetch();
 
  if($user && $user->confirmation_token == $token){
   session_start();
   $pdo->prepare('UPDATE user SET confirmation_token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
   $_session['auth'] = $user;
   header('Location: ../connexion/connexion.php');
  }else{
   die('Le token n\'est pas valide');
 
  }


Message édité par Ciwiel le 01-03-2016 à 20:15:19
n°2276698
Ciwiel
Posté le 01-03-2016 à 20:09:58  profilanswer
 

Problème résolue encore des oublies.. le require ('BD.php') sans ; désolé du dérangement :p

n°2276703
TotalRecal​l
Posté le 01-03-2016 à 20:32:02  profilanswer
 

Je renouvelle mon conseil de passer par un IDE.
 
Ainsi qu'un outil qui permet de comparer un fichier avant et après modification, comme ça si tu casses quelque chose d'une version à l'autre tu peux rapidement trouver quoi (à condition d'avoir gardé une copie de la version originale bien sûr).  
Si tu es sous windows il y a le vieillissant mais toujours vaillant Winmerge par exemple !


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2276707
Ciwiel
Posté le 01-03-2016 à 21:12:45  profilanswer
 

TotalRecall a écrit :

Je renouvelle mon conseil de passer par un IDE.
 
Ainsi qu'un outil qui permet de comparer un fichier avant et après modification, comme ça si tu casses quelque chose d'une version à l'autre tu peux rapidement trouver quoi (à condition d'avoir gardé une copie de la version originale bien sûr).  
Si tu es sous windows il y a le vieillissant mais toujours vaillant Winmerge par exemple !


 
Je vais aller regarder ça tout de suite :)

n°2277464
vodkadream
Posté le 11-03-2016 à 09:10:08  profilanswer
 

T'as oublié le point virgule ligne 13

n°2277618
antac
..
Posté le 14-03-2016 à 23:00:02  profilanswer
 

Notepad++ est ton ami


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin d'aide pour résoudre un message d'erreur

 

Sujets relatifs
Aide, comment réaliser mon projet.Que pensez vous de PHP CLASSIFIED ?
besoin d'aideAide compréhension de logs apache
[HTML5/PHP] Galerie d'images générée dynamiquementaide pour la decopmposition d'une image en plusieurs matrices?
Pseudo frames en PHPCompter le nombre de lignes d'un fichier .
Do était innatendu, ou est mon erreur? 
Plus de sujets relatifs à : [PHP] Besoin d'aide pour résoudre un message d'erreur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR