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

Fermé
blizzarboy Messages postés 7 Date d'inscription jeudi 8 novembre 2018 Statut Membre Dernière intervention 2 octobre 2019 - Modifié le 2 oct. 2019 à 13:43
blizzarboy Messages postés 7 Date d'inscription jeudi 8 novembre 2018 Statut Membre Dernière intervention 2 octobre 2019 - 2 oct. 2019 à 16:46
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");

}








?>






A voir également:

1 réponse

yg_be Messages postés 22727 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
2 oct. 2019 à 13:26
bonjour, je pense que ton problème est causé par ton code PHP.
0
blizzarboy Messages postés 7 Date d'inscription jeudi 8 novembre 2018 Statut Membre Dernière intervention 2 octobre 2019
2 oct. 2019 à 13:30
merci pour ta reponse . Mon php functionne bien en local voici un example du code. ici je me connecte a la partie admin et je fait une insertion dans la page 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");

}








?>
0
yg_be Messages postés 22727 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
Modifié le 2 oct. 2019 à 14:11
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?
0
blizzarboy Messages postés 7 Date d'inscription jeudi 8 novembre 2018 Statut Membre Dernière intervention 2 octobre 2019
Modifié le 2 oct. 2019 à 14:30
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.
0
yg_be Messages postés 22727 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > blizzarboy Messages postés 7 Date d'inscription jeudi 8 novembre 2018 Statut Membre Dernière intervention 2 octobre 2019
Modifié le 2 oct. 2019 à 14:16
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://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > yg_be Messages postés 22727 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
2 oct. 2019 à 14:34
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...
0