le 03/03/2014 à 01:13
php: perte des données entre 2 pages d'une session
Bonjour,
jeune retraité je veux apprendre les langages du web((ça tient les neurones éveillés) . En langage php j'ai un problème de perte des données au passage à une autre page.
la cinematique de la session est la suivante:
formulaire saisie identifiant--> acces base ok-->formulaire affichage données base/modif-->maj base
<-- acce base ko
je me suis inspiré de l'exemple donné qui fonctionne très bien mais pour ma part ça coince entre l'acces base et le remplissage du formulaire.
si une âme charitable pouvais m'aider à, debugger mon problème je lui en serais grandement reconnaissant.
code acces base
<?php
// Initialise les variables
$erreur = NULL;
if(!empty($_POST['cheval']) AND !empty($_POST['pw']) ){
extract($_POST);
$cheval = htmlentities(addslashes($cheval));
$pw = htmlentities(addslashes($pw));
$maj = htmlentities(addslashes($maj));
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
// Si tout va bien, on peut continuer
// On récupère l'enregistrement
$reponse = $bdd->query('SELECT * FROM proprietaire where cheval like "%'.$cheval.'%"and pw like "%'.$pw.'%"');
// On affiche chaque entrée une à une
$donnees = $reponse->fetch() ;
}
if (!empty($donnees['cheval']))
{
// dans ce cas, tout est ok, on peut démarrer notre session
session_start ();
// on enregistre les paramètres
$_session['cheval'] = $donnees['cheval'];
$_session['id'] = $donnees['id'];
$_session['sire'] = $donnees['sire'];
$_session['nom'] = $donnees['nom'];
$_session['prenom'] = $donnees['prenom'];
$_session['mail'] = $donnees['mail'];
$_session['tel'] = $donnees['tel'];
$_session['vaccin'] = $donnees['vaccin'];
$_session['dentiste'] = $donnees['dentiste'];
$_session['ferrure'] = $donnees['ferrure'];
$_session['maj'] = $maj;
echo "sire = " , $_session['sire'];
echo "<br/>";
echo "maj = " , $_session['maj'];
// on redirige notre visiteur vers une page de notre section membre
header ('location: valid2-session.php');
}
else
{
// Le cheval n'a pas été reconnu . On utilise alors un petit javascript signalant ce fait
echo '<body onLoad="alert(\'parametres invalides...\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=cheval2-session.php">';
}
?>
code formulaire affichage données:
<?php
session_start();
if (isset($_SESSION['cheval']) &&
isset($_SESSION['pw'])) {
// On teste pour voir si nos variables ont bien été enregistrées
echo 'cheval : ' , $_SESSION['cheval'] ;
echo '<br />';
echo 'pw : ' , $_SESSION['pw'] ;
echo '<br />';
}
else {
echo 'Les variables ne sont pas déclarées.';
}
?>
<html>
<head>
<link rel="stylesheet" media all href="../css/style_commun1.css" />
<link rel="stylesheet" media all href="../css/style_accesbdd.css" />
</head>
<body>
<! --- corps de page --->
<header>
<img src="../image/logo-1.jpg" alt="Logo du site" id="logo"/>
</header>
<h1>
<hr>
Information sur votre cheval
<hr>
</h1>
<div id="contenu">
<!--Le contenu -->
<form method="POST" id="cheval" target="" action="majbase.php">
<fieldset>
<label for="cheval">Cheval : </label><input type="text" name="cheval" id="cheval" value="<?php echo $_session['cheval'];?>"/><br />
<label for="sire">Numero sire : </label><input type="text" name="sire" id="sire" value="<?php echo $_session['sire'];?>"/><br />
<label for="nom">Propriétaire : </label><input type="text" name="nom" id="nom" value="<?php echo $_session['nom']; ?>"/><br />
<label for="prenom">Prénom : </label><input type="text" name="prenom" id="prenom" value="<?php echo $_session['prenom']; ?>"/><br />
<label for="mail">E-mail : </label><input type="text" name="mail" id="mail" value="<?php echo $_session['mail'];?>"/><br />
<label for="tel">Tel : </label><input type="text" name="tel" id="tel" value="<?php echo $_session['tel'];?>"/><br />
<label for="vaccin">vaccin fait le : </label><input type="text" name="vaccin" id="vaccin" value="<?php echo $_session['vaccin'];?>"/><br />
<label for="dentiste">contrôle dentaire fait le : </label><input type="text" name="dentiste" id="dentiste" value="<?php echo $_session['dentiste'];?>"/><br />
<label for="ferrure">ferrage fait le : </label><input type="text" name="ferrure" id="ferrure" value="<?php echo $_session['ferrure'];?>"/><br />
<label for="ferrure">ferrage fait le : </label><input type="text" name="ferrure" id="ferrure" value="<?php echo $_session['ferrure'];?>"/><br />
<input type="hidden" name="maj" id="maj" value=<?php echo $maj;?>/><br />
<input type="submit" value="Valider"/><span style="color:red" style="font-size:14px"></span>
</fieldset>
</form>
</div>
</body>
</html>
par avance merci.
jeune retraité je veux apprendre les langages du web((ça tient les neurones éveillés) . En langage php j'ai un problème de perte des données au passage à une autre page.
la cinematique de la session est la suivante:
formulaire saisie identifiant--> acces base ok-->formulaire affichage données base/modif-->maj base
<-- acce base ko
je me suis inspiré de l'exemple donné qui fonctionne très bien mais pour ma part ça coince entre l'acces base et le remplissage du formulaire.
si une âme charitable pouvais m'aider à, debugger mon problème je lui en serais grandement reconnaissant.
code acces base
<?php
// Initialise les variables
$erreur = NULL;
if(!empty($_POST['cheval']) AND !empty($_POST['pw']) ){
extract($_POST);
$cheval = htmlentities(addslashes($cheval));
$pw = htmlentities(addslashes($pw));
$maj = htmlentities(addslashes($maj));
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
// Si tout va bien, on peut continuer
// On récupère l'enregistrement
$reponse = $bdd->query('SELECT * FROM proprietaire where cheval like "%'.$cheval.'%"and pw like "%'.$pw.'%"');
// On affiche chaque entrée une à une
$donnees = $reponse->fetch() ;
}
if (!empty($donnees['cheval']))
{
// dans ce cas, tout est ok, on peut démarrer notre session
session_start ();
// on enregistre les paramètres
$_session['cheval'] = $donnees['cheval'];
$_session['id'] = $donnees['id'];
$_session['sire'] = $donnees['sire'];
$_session['nom'] = $donnees['nom'];
$_session['prenom'] = $donnees['prenom'];
$_session['mail'] = $donnees['mail'];
$_session['tel'] = $donnees['tel'];
$_session['vaccin'] = $donnees['vaccin'];
$_session['dentiste'] = $donnees['dentiste'];
$_session['ferrure'] = $donnees['ferrure'];
$_session['maj'] = $maj;
echo "sire = " , $_session['sire'];
echo "<br/>";
echo "maj = " , $_session['maj'];
// on redirige notre visiteur vers une page de notre section membre
header ('location: valid2-session.php');
}
else
{
// Le cheval n'a pas été reconnu . On utilise alors un petit javascript signalant ce fait
echo '<body onLoad="alert(\'parametres invalides...\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=cheval2-session.php">';
}
?>
code formulaire affichage données:
<?php
session_start();
if (isset($_SESSION['cheval']) &&
isset($_SESSION['pw'])) {
// On teste pour voir si nos variables ont bien été enregistrées
echo 'cheval : ' , $_SESSION['cheval'] ;
echo '<br />';
echo 'pw : ' , $_SESSION['pw'] ;
echo '<br />';
}
else {
echo 'Les variables ne sont pas déclarées.';
}
?>
<html>
<head>
<link rel="stylesheet" media all href="../css/style_commun1.css" />
<link rel="stylesheet" media all href="../css/style_accesbdd.css" />
</head>
<body>
<! --- corps de page --->
<header>
<img src="../image/logo-1.jpg" alt="Logo du site" id="logo"/>
</header>
<h1>
<hr>
Information sur votre cheval
<hr>
</h1>
<div id="contenu">
<!--Le contenu -->
<form method="POST" id="cheval" target="" action="majbase.php">
<fieldset>
<label for="cheval">Cheval : </label><input type="text" name="cheval" id="cheval" value="<?php echo $_session['cheval'];?>"/><br />
<label for="sire">Numero sire : </label><input type="text" name="sire" id="sire" value="<?php echo $_session['sire'];?>"/><br />
<label for="nom">Propriétaire : </label><input type="text" name="nom" id="nom" value="<?php echo $_session['nom']; ?>"/><br />
<label for="prenom">Prénom : </label><input type="text" name="prenom" id="prenom" value="<?php echo $_session['prenom']; ?>"/><br />
<label for="mail">E-mail : </label><input type="text" name="mail" id="mail" value="<?php echo $_session['mail'];?>"/><br />
<label for="tel">Tel : </label><input type="text" name="tel" id="tel" value="<?php echo $_session['tel'];?>"/><br />
<label for="vaccin">vaccin fait le : </label><input type="text" name="vaccin" id="vaccin" value="<?php echo $_session['vaccin'];?>"/><br />
<label for="dentiste">contrôle dentaire fait le : </label><input type="text" name="dentiste" id="dentiste" value="<?php echo $_session['dentiste'];?>"/><br />
<label for="ferrure">ferrage fait le : </label><input type="text" name="ferrure" id="ferrure" value="<?php echo $_session['ferrure'];?>"/><br />
<label for="ferrure">ferrage fait le : </label><input type="text" name="ferrure" id="ferrure" value="<?php echo $_session['ferrure'];?>"/><br />
<input type="hidden" name="maj" id="maj" value=<?php echo $maj;?>/><br />
<input type="submit" value="Valider"/><span style="color:red" style="font-size:14px"></span>
</fieldset>
</form>
</div>
</body>
</html>
par avance merci.