Le code PHP de mon site donne bien en local mais en ligne les insertions plante
blizzarboy
Messages postés
9
Statut
Membre
-
blizzarboy Messages postés 9 Statut Membre -
blizzarboy Messages postés 9 Statut Membre -
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
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:
- Le code PHP de mon site donne bien en local mais en ligne les insertions plante
- Le code ascii en informatique - Guide
- Partage de photos en ligne - Guide
- Site de telechargement - Accueil - Outils
- Mètre en ligne - Guide
- Site comme coco - Accueil - Réseaux sociaux
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, je pense que ton problème est causé par ton code PHP.
<?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");
}
?>
que penses-tu faire avec ceci:
ne devrais-tu pas plutôt vérifier qu'une ligne a été insérée?
<?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.
comment se fait-il que ton code ne détecte pas que l'insertion ne fonctionne pas?
que penses-tu faire avec ceci:
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
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...