En locale host, je parviens a ouvrir une session mais quand j'ai heberger ça nec

Signaler
-
Messages postés
3972
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
27 juillet 2021
-
Bonjour,
en locale host, je parviens a ouvrir une session mais quand j'ai heberger ça ne renvoie que la page de connexion alors que les identifiant et mot de passe sont juste

<?php
 session_start();
 
 @$Identifiant=$_POST["Identifiant"];
 @$Mdp1=$_POST["Mdp1"];
 @$Submit=$_POST["Submit"];
 $message="";
 if(isset($Submit)){
 include("host.php");
 $res1=mysqli_query($id,"select * from client where Identifiant='$Identifiant' AND Mdp1='$Mdp1' AND confirmation_cle_recu_par_mail='oui' limit 1");
 while($tab=mysqli_fetch_assoc($res1)){
  $login=$tab["Identifiant"];
  $pass=$tab["Mdp1"];
  $name=$tab["Nom"];
  $image=$tab["Photo"];
  $mail=$tab["Email"];
  $name_subname=$tab["Nom"]." ".$tab["Prenom"];
  $numerotation=$tab["Id"];
  $clee=$tab["confirmation_cle_recu_par_mail"];
  $cleee="oui";
 }if(@$login==$Identifiant AND $pass==$Mdp1 AND $clee==$cleee ){
  $_SESSION["autoriser"]="oui";
  $_SESSION["Nom"]="$name";
  $_SESSION["nomPrenom"]="$name_subname";
  $_SESSION["Identifiant"]="$login";
  $_SESSION["Photo"]="$image";
  $_SESSION["Email"]="$mail";
  $_SESSION["id"]="$numerotation";
  $_SESSION["confirmation_cle_recu_par_mail"]="$clee";
  
  //header("location:http://www.sos-mokondzi.org/index.php") 
   header('Location: <ital>http:</ital><ital>//www.sos-mokondzi.org/index.php</ital>');     
 }
 else{
  //header("location:http://www.sos-mokondzi.org/login.php")
   header('Location: <ital>http:</ital><ital>//www.sos-mokondzi.org/login.php</ital>');     
  }
   }



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
296
J'ai ajouté la coloration syntaxique du code sur ta question.

Déjà je vois que tu stock le mdp en clair dans la BDD, c'est strictement déconseillé (et totalement interdit en production).

Ensuite quel est le type du champ 'confirmation_cle_recu_par_mail' ?
As-tu fais des print_r ou var_dump sur tes variables pour en voir le contenu ?

Et le @ il sert à quoi ?

J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
Messages postés
33136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021
3 638
Bonjour nhenry
Le @ sert à masquer les erreurs... Chose à ne surtout pas faire...
Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
296 >
Messages postés
33136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021

Merci pour l'info, en effet, c'est normal que je ne l'ai jamais utilisé.
Donc
@$Mdp1=$_POST["Mdp1"];
C'est équivalent à
if(isset($_POST["Mdp1"])) $Mdp1=$_POST["Mdp1"];
plus propre en effet ...
Messages postés
33136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021
3 638 >
Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021

Ou encore mieux, en ternaire
$Mdp1= isset($_POST["Mdp1"]) ? $_POST["Mdp1"] : NULL ;
Messages postés
3972
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
27 juillet 2021
1 420 >
Messages postés
33136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021

Salut,

Et à partir de PHP7, le null coalescing operator
$Mdp1= $_POST["Mdp1"] ?? NULL;