Le code PHP de mon site donne bien en local mais en ligne les insertions plante

Signaler
Messages postés
7
Date d'inscription
jeudi 8 novembre 2018
Statut
Membre
Dernière intervention
3 octobre 2019
-
blizzarboy
Messages postés
7
Date d'inscription
jeudi 8 novembre 2018
Statut
Membre
Dernière intervention
3 octobre 2019
-
Bonjour
J'ai développé un site web en local une sorte de petit e commerce pour débutant j'ai decider de l'importer en ligne sur un serveur panel mais lors de la manipulation du site je me suis rendu compte que tous les insertions du site ne fonctionne pas. J'ai effectué des recherches sur googler et je n'ai vu aucun problème similaire au mien s'il vous plaît aidez-moi. vous avez ci desous le code de connection et de d'insertion dans la table connection






<?php
session_start();
require_once("../../bd.php");



if(isset($_POST['email']) && !empty($_POST['email']))
{

if(isset($_POST['mdp']) && !empty($_POST['mdp']))
{

$email = $_POST['email'];
$mdp = $_POST['mdp'];

$date = date("l d/m/Y H:i:s");


$resultat = $connection->query("SELECT * FROM compteuser WHERE email='$email' AND mot_de_pass='$mdp'");
if ($row = $resultat->fetch())
{

$_SESSION['pseudo'] = htmlspecialchars($row['pseudo']);




$_SESSION['idUser']=$row['id'];
$idUser=$_SESSION['idUser'];
$_SESSION['mdp']=$mdp;
$_SESSION['nom']=$row['nom'];
$_SESSION['prenom']=$row['prenom'];
$_SESSION['message']="authentification reusi!";

$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$ipMachine=$_SESSION['ip'];
$Connecter=1;

$verif=$idUser.''.$ipMachine;
$resultat = " INSERT INTO connection(id_user,heur_connecter,ip_machine,connecter,verif) VALUES('$idUser', '$date', '$ipMachine','$Connecter','$verif') ";

if($donne = $connection -> exec($resultat))
{



$_SESSION['SessionVerif']=$verif;
$_SESSION['idConnecter']=$row['id'];
header("Location:../../../vue/utilisateur");


}else{

$_SESSION['message']="impossible de ce connecter a c";
header("Location:../../../vue/site/userform.php?inscription=fake");
}

}else{

$_SESSION['message']="mot de pass ou adresse e-mail incorect";
header("Location:../../../vue/site/userform.php?inscription=fake");
}




}
else
{

$_SESSION['message']="verifier votre mot de pass!";
header("Location:../../../vue/site/userform.php?inscription=fake");

}

}
else
{

$_SESSION['message']="Verifier votre address email!";
header("Location:../../../vue/site/userform.php?inscription=fake");

}








?>






1 réponse

Messages postés
9362
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2020
491
bonjour, je pense que ton problème est causé par ton code PHP.
yg_be
Messages postés
9362
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2020
491
peux-tu utiliser les balises de code pour poster ton code?
que penses-tu faire avec ceci:
if($donne = $connection -> exec($resultat))
ne devrais-tu pas plutôt vérifier qu'une ligne a été insérée?
blizzarboy
Messages postés
7
Date d'inscription
jeudi 8 novembre 2018
Statut
Membre
Dernière intervention
3 octobre 2019

c'est fait



<?php
session_start();
require_once("../../bd.php");



 if(isset($_POST['email']) && !empty($_POST['email']))
 {
    
     if(isset($_POST['mdp']) && !empty($_POST['mdp']))
  {
   
            $email = $_POST['email'];
            $mdp = $_POST['mdp'];
   
           $date = date("l d/m/Y H:i:s");
           
   
            $resultat = $connection->query("SELECT * FROM compteuser WHERE email='$email' AND mot_de_pass='$mdp'");
            if ($row = $resultat->fetch())
            {
    
    $_SESSION['pseudo'] = htmlspecialchars($row['pseudo']);
               
     
    
     
                $_SESSION['idUser']=$row['id'];
    $idUser=$_SESSION['idUser'];
    $_SESSION['mdp']=$mdp;
     $_SESSION['nom']=$row['nom'];
     $_SESSION['prenom']=$row['prenom'];
                $_SESSION['message']="authentification reusi!";
 
                $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
    $ipMachine=$_SESSION['ip'];
    $Connecter=1;
    
    $verif=$idUser.''.$ipMachine;
    $resultat = " INSERT INTO connection(id_user,heur_connecter,ip_machine,connecter,verif) VALUES('$idUser', '$date', '$ipMachine','$Connecter','$verif') ";
                     
        if($donne = $connection -> exec($resultat))  {
      
                     $_SESSION['SessionVerif']=$verif;
    $_SESSION['idConnecter']=$row['id'];
    header("Location:../../../vue/utilisateur");
    
    
     }else{
    
     $_SESSION['message']="impossible de ce connecter a c";
                header("Location:../../../vue/site/userform.php?inscription=fake");
   }
    
            }else{
    
     $_SESSION['message']="mot de pass ou adresse e-mail incorect";
                header("Location:../../../vue/site/userform.php?inscription=fake");
   }
      
        
                
  }  else  {

          $_SESSION['message']="verifier votre mot de pass!";
           header("Location:../../../vue/site/userform.php?inscription=fake");
       
         }
                
 } else  {

      $_SESSION['message']="Verifier votre address email!";
        header("Location:../../../vue/site/userform.php?inscription=fake");

 }
            
?>


EDIT : Ajout du LANGAGE dans les balises de code.
yg_be
Messages postés
9362
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2020
491 > blizzarboy
Messages postés
7
Date d'inscription
jeudi 8 novembre 2018
Statut
Membre
Dernière intervention
3 octobre 2019

peux-tu utiliser le type de code PHP quand tu postes du code PHP?
comment se fait-il que ton code ne détecte pas que l'insertion ne fonctionne pas?
que penses-tu faire avec ceci:
if($donne = $connection -> exec($resultat))

ne devrais-tu pas plutôt vérifier qu'une ligne a été insérée?
suggestions: https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
jordane45
Messages postés
27317
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028 > yg_be
Messages postés
9362
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2020

Bonjour,

En complément.....

Il faut, le temps de trouver ton erreur, désactiver TOUTES les redirections.... sinon tu risques de ne pas voir l'erreur...

Je t'invite également à utiliser des requêtes préparées au lieu des "query" ou "exec".
Cela permet de protéger ton site d'éventuelles injections sql .

Il faut également savoir que l'instruction htmlspecialchar ne s'utilise JAMAIS pour insérer des données en BDD. Cette fonction n'est à utiliser que pour faire de l'affichage !



PS: Une fois ton erreur trouvée, tu pourras réactiver les redirections.
Il faudra (du moins c'est fortement conseillé ) placer un <code php>exit;</codes> après chacune d'elles...
blizzarboy
Messages postés
7
Date d'inscription
jeudi 8 novembre 2018
Statut
Membre
Dernière intervention
3 octobre 2019
> jordane45
Messages postés
27317
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020

okay jordanne45 je vai essayer tes conseilles voir