Encore un problème d'Update
Résolu
warbeast1000
Messages postés
56
Statut
Membre
-
warbeast1000 Messages postés 56 Statut Membre -
warbeast1000 Messages postés 56 Statut Membre -
Bonjour,
Je reviens (encore et toujours) vers vous pour un problème que j'avais récemment exposé et résolu, mais qui je n'ai pas réussi à adapter.
J'ai une requête d'Update de mes clients, qui ne marche PLUS alors qu'elle marchait parfaitement avant que mon employeur me demande de rajouter 3 champs dans le formulaire.
Rien ne change dans le formulaire, et aucun erreur ne s'affiche, je ne comprend pas.
Voila le code du clientpanel.php
et voila m'a requête UPDATE :
Voila j'espère que vous pourrez m'aider au plus vite, je dois rendre le site aujourd'hui, et sa m'embêterai d'être en retard..
Merci !
warbeast1000/Guillaume
echo est plus rapide que print.
Je reviens (encore et toujours) vers vous pour un problème que j'avais récemment exposé et résolu, mais qui je n'ai pas réussi à adapter.
J'ai une requête d'Update de mes clients, qui ne marche PLUS alors qu'elle marchait parfaitement avant que mon employeur me demande de rajouter 3 champs dans le formulaire.
Rien ne change dans le formulaire, et aucun erreur ne s'affiche, je ne comprend pas.
Voila le code du clientpanel.php
<?php
include('inc/cnx.inc.php');
try{
$reqs = "SELECT idC,loginC,nomC,prenomC,mailC,telC,adresseC,villeC,CPC FROM client WHERE loginC='".$_SESSION['loginC']."'";
$rereqs = $connexion->query($reqs);
$clie = $rereqs->fetch();
echo "<form id='clientpan' action='inc/connectedmodif.inc.php' method='POST'>";
echo "<input type='hidden' name='idC' value=".$clie["idC"]."/>";
echo "<fieldset><label>Pseudo : </label><input type='text' name='loginC' value=".$clie["loginC"]." required autofocus /><br /><br /></fieldset>";
echo "<fieldset><label>Nom : </label><input type='text' name='nomC' value=".$clie["nomC"]." required /><br /></fieldset>";
echo "<fieldset><label>Prénom : </label><input type='text' name='prenomC' value=".$clie["prenomC"]." required /><br /><br /></fieldset>";
echo "<fieldset><label>Adresse E-mail : </label><input type='email' name='mailC' value=".$clie["mailC"]." required /><br/><br /></fieldset>";
echo "<fieldset><label>Tel : </label><input type='tel' name='telC' value=".$clie["telC"]." /><br/><br /><br /></fieldset>";?>
<fieldset><label>Adresse : </label><input type='text' name='adresseC' value="<?php echo htmlspecialchars($clie["adresseC"],ENT_QUOTES, 'UTF-8');?>" required /><br/><br /><br /></fieldset>
<fieldset><label>Ville : </label><input type='text' name='villeC' value="<?php echo htmlspecialchars($clie["villeC"],ENT_QUOTES, 'UTF-8');?>" required /><br/><br /><br /></fieldset><?php
echo "<fieldset><label>Code Postal : </label><input type='text' name='CPC' value=".$clie["CPC"]." required /><br/><br /><br /></fieldset>";
echo "<button type='submit' id='clientpan' name='modifier' value='Modifier'>Valider Modifications</button><br /><br />";
echo "</form>";
}
catch (Exceptions $e){
die($dsn."erreur : ". $e->getMessage());
}
?>
et voila m'a requête UPDATE :
<?php
include('cnx.inc.php');
$connexion = new PDO($DSN,$USER,$PWD);
if(isset($_SESSION['loginC'])){
$requpd = 'UPDATE client SET loginC = "'.$_SESSION['loginC'].'",
nomC = "'.$_SESSION['nomC'].'",
prenomC = "'.$_SESSION['prenomC'].'",
mailC = "'.$_SESSION['mailC'].'",
telC = "'.$_SESSION['telC'].'",
adresseC = "'.$_SESSION['adresseC'].'",
villeC = "'.$_SESSION['villeC'].'",
CPC = "'.$_SESSION['CPC'].'"
WHERE idC = '.$_SESSION['idC'].'';
$req = $connexion->prepare($requpd);
$req->execute();
header('location:../clientpanel.php');
}
else{
header('location:../clientpanel.php');
}
?>
Voila j'espère que vous pourrez m'aider au plus vite, je dois rendre le site aujourd'hui, et sa m'embêterai d'être en retard..
Merci !
warbeast1000/Guillaume
echo est plus rapide que print.
2 réponses
-
Bonjour,
Commence par désactiver les Redirections dans ton code d'update...
puis ajoute un ECHO de ta variable $requpd pour voir si les variables sont bonnes...
Une fois le echo effectué... prend le resultat..puis testes le directement dans ta BDD ( directement dans phpmyadmin par exemple)
Si la requête fonctionne... c'est que ton souci vient d'ailleurs.... mais c'est déjà le minimum à vérifier !
Ensuite... vu que tu utilises la PDO ... enlèves toutes tes variables de ta requête.... et places les dans un ARRAY que tu passeras à ton execute !
Et enfin... changes les "include" de ton fichier de connexion ... par des REQUIRE_ONCE.
PS : Pourquoi fais tu un new pdo dans ton script d'update... alors que tu ne le fais pas dans ton code pour afficher ??
PS2 : Que contient ton fichier de connexion ?
-
Alors pour le echo (et/ou var_dump();) j'ai déjà essayé, mais rien ne s'affiche à l'écran, la page reste blanche...
j'ai essayer d'adapter mon code selon vos recommandations :
<?php require_once('cnx.inc.php'); $loginC = isset($_SESSION['loginC'])?$_SESSION['loginC']:''; $nomC = isset($_SESSION['nomC'])?$_SESSION['nomC']:''; $prenomC = isset($_SESSION['prenomC'])?$_SESSION['prenomC']:''; $mailC = isset($_SESSION['mailC'])?$_SESSION['mailC']:''; $telC = isset($_SESSION['telC'])?$_SESSION['telC']:''; $adresseC = isset($_SESSION['adresseC'])?$_SESSION['adresseC']:''; $villeC = isset($_SESSION['villeC'])?$_SESSION['villeC']:''; $CPC = isset($_SESSION['CPC'])?$_SESSION['CPC']:''; $idC = isset($_SESSION['idC'])?$_SESSION['idC']:NULL; if (isset($_SESSION['loginC'])){ $requpd = "UPDATE client SET loginC = :loginC, nomC = :nomC, prenomC = :prenomC, mailC = :mailC, telC = :telC, adresseC = adresseC, villeC = :villeC, CPC = :CPC WHERE idC = :idC "; $params = array( ":loginC"=>$loginC ,":nomC"=>$nomC ,":prenomC"=>$prenomC ,":mailC"=>$mailC ,":telC"=>$telC ,":adresseC"=>$adresseC ,":villeC"=>$villeC ,":CPC"=>$CPC ); try{ $req = $connexion->prepare ($requpd); $req->execute($params); header('Location:../modifprod.php'); } catch (PDOException $e){ die("Source : ".$DSN." Erreur : ".$e->getMessage()); } } else{ echo "<br> Erreur : Aucune Session Active ! "; } ?>
Mon fichier de connexion :<?php //création de la connexion a la BDD $DSN ="mysql:host=localhost;dbname=i48website;charset=UTF8"; $USER="root"; $PWD=""; //par soucis de simplicité on instancie l'objet de connexion PDO ici $connexion = new PDO($DSN,$USER,$PWD); ?>
-
-
-
-
-
-
Testes ça :
<?php // Reporte toutes les erreurs PHP ini_set('display_errors', '1'); error_reporting(E_ALL); //Démarrage des sessions si non démarrées if(session_id() == '') { session_start(); } // connexion à la BDD require_once('cnx.inc.php'); //------------------------------------------// // Le temps des tests : echo "<br> Variables de session : <br>"; print_r($_SESSION); //------------------------------------------// // récupération des variables $loginC = isset($_SESSION['loginC'])?$_SESSION['loginC']:''; $nomC = isset($_SESSION['nomC'])?$_SESSION['nomC']:''; $prenomC = isset($_SESSION['prenomC'])?$_SESSION['prenomC']:''; $mailC = isset($_SESSION['mailC'])?$_SESSION['mailC']:''; $telC = isset($_SESSION['telC'])?$_SESSION['telC']:''; $adresseC = isset($_SESSION['adresseC'])?$_SESSION['adresseC']:''; $villeC = isset($_SESSION['villeC'])?$_SESSION['villeC']:''; $CPC = isset($_SESSION['CPC'])?$_SESSION['CPC']:''; $idC = isset($_SESSION['idC'])?$_SESSION['idC']:NULL; if (isset($_SESSION['loginC'])){ $requpd = "UPDATE client SET loginC = :loginC ,nomC = :nomC ,prenomC = :prenomC ,mailC = :mailC ,telC = :telC ,adresseC = adresseC ,villeC = :villeC ,CPC = :CPC WHERE idC = :idC "; $params = array( ":loginC"=>$loginC ,":nomC"=>$nomC ,":prenomC"=>$prenomC ,":mailC"=>$mailC ,":telC"=>$telC ,":adresseC"=>$adresseC ,":villeC"=>$villeC ,":CPC"=>$CPC ,":idC"=>$idC ); try{ $req = $connexion->prepare($requpd); $req->execute($params); //header('Location:../modifprod.php'); } catch (PDOException $e){ // en cas de soucis dans la requete : echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } }else{ echo "<br> Erreur : Aucune Session Active ! "; } ?>