Bonjour tout le monde.
Débutant dans le complexe monde du PHP, je dois réaliser un trombinoscope pour mon stage. Pour cela, j'ai réalisé un formulaire afin d'envoyer, récupérer et afficher les données demandées.
Le problème que j'ai est le suivant : une fois la première insertion faite, je n'arrive plus à rentrer de nouvelles données et donc forcément à les afficher
Pour infos, voici le code du formulaire
Et le code de ma page réponse
Je sais le code fait peut être un peu peur à voir mais avec une pauvre semaine de PHP au cours de ma formation, je me suis basé sur ce que l'on avait fait et sur les quelques tutos que j'ai pu trouvé par-ci, par-là
Merci d'avance pour les alsanautes qui me répondront
Débutant dans le complexe monde du PHP, je dois réaliser un trombinoscope pour mon stage. Pour cela, j'ai réalisé un formulaire afin d'envoyer, récupérer et afficher les données demandées.
Le problème que j'ai est le suivant : une fois la première insertion faite, je n'arrive plus à rentrer de nouvelles données et donc forcément à les afficher

Pour infos, voici le code du formulaire
<?php
include('function.php');
/************************************************************
* Script d'upload d'image
*************************************************************/
if(isset($_POST['valid']))
{
$avatar = $_FILES['avatar']['name'];
$avatar_tmp = $_FILES['avatar']['tmp_name'];
$errors = array(); // On initialise une variable Array vide pour stocker les erreurs éventuelles
if(!empty($avatar_tmp))
{
$image=explode('.',$avatar);
$image_ext=end($image);
if(in_array(strtolower($image_ext),array('png','jpg','jpeg'))===false)
{
$errors[] = "Veuillez saisir une image";
}
}
if(empty($errors))
{
upload_avatar($avatar_tmp);
}else{
foreach($errors as $error)
{
echo $error;
}
}
}
/************************************************************
* Vérification format mail
*************************************************************/
function VerifierAdresseMail($adresse) // Vérifie si le format mail est respecté
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$adresse))
return true;
else
return false;
}
/************************************************************
* Calcul age
*************************************************************/
if(isset($_POST['valid']))
{
$jour = $_POST['journ'];
$mois = $_POST['moisn'];
$annee = $_POST['annee'];
if(!empty($jour) && !empty($mois) && !empty($annee))
{
$date = explode('/',date('d/m/Y'));
if(($mois < $date[1])||(($mois == $date[1]&&$jour <= $date[0])))
{
$age = $date[2]-$annee;
}else{
$age = $date[2]-$annee-1;
}
}
/************************************************************
* Erreurs éventuelles
*************************************************************/
// Pour chaque champs, on vérifie les saisies
if (!empty($_POST['nom'])) // Test de l'existence de la variable nom
{
$nom = strip_tags($_POST['nom']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['nom']= '<span class="error">Les NOM et prénom sont obligatoires</span>';
}
if (!empty($_POST['mandat'])) // Test de l'existence de la variable mandat
{
$mandat = strip_tags($_POST['mandat']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
if (!empty($_POST['sle'])) // Test de l'existence de la variable sle
{
$sle = strip_tags($_POST['sle']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['sle']= '<span class="error">La SLE est obligatoire</span>';
}
if (!empty($_POST['fonction'])) // Test de l'existence de la variable fonction
{
$fonction = strip_tags($_POST['fonction']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['fonction']= '<span class="error">La fonction est obligatoire</span>';
}
if (!empty($_POST['profession'])) // Test de l'existence de la variable profession
{
$profession = strip_tags($_POST['profession']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['profession']= '<span class="error">La profession est obligatoire</span>';
}
if (!empty($_POST['journ'])) // Test de l'existence de la variable journ
{
$journ = strip_tags($_POST['journ']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['journ']= '<span class="error">Le jour de naissance est obligatoire</span>';
}
if (!empty($_POST['moisn'])) // Test de l'existence de la variable moisn
{
$moisn = strip_tags($_POST['moisn']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['moisn']= '<span class="error">Le mois de naissance est obligatoire</span>';
}
if (!empty($_POST['annee'])) // Test de l'existence de la variable annee
{
$annee = strip_tags($_POST['annee']); // On supprime les éventuelles balises HTML saisies -> tout code HTML saisi ne sera pas interprété (faille xss)
}
else{
$error['annee']= '<span class="error">L'annee est obligatoire</span>';
}
if (!empty($_POST['email'])) // Test de l'existence de la variable email
{
$adresse = strip_tags($_POST['email']);
if(VerifierAdresseMail($adresse)) // Test de la validité de l'adresse à l'aide de la fonction ligne 97
{
$email = $adresse; // On définit la variable définitive
}
else{
$error['format']= '<span class="error">L\'adresse email doit être valide</span>';
}
}
if(empty($error))
{
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=sle', 'root', '');
}
catch (Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout (page plantée)
die('Erreur : ' . $e->getMessage());
}
// Etablir la communication entre PHP et Mysql en UTF-8
$bdd->query("SET NAMES 'utf8'");
$req = $bdd->prepare('INSERT INTO aix(nom, mandat, sle, fonction, profession, journ, moisn, annee, age, email) VALUES(:nom, :mandat, :sle, :fonction, [langue]rofession, :journ, :moisn, :annee, :age, :email)');
$req->execute(array(
'nom' => $nom,
'mandat' => $mandat,
'sle' => $sle,
'fonction' => $fonction,
'profession' => $profession,
'journ' => $journ,
'moisn' => $moisn,
'annee' => $annee,
'age' => $age,
'email' => $email
));
// Nous allons lire la table pour récupérer l'id de la dernière insertion, afin de créer une ancre
$aix = $bdd->query("SELECT id FROM aix WHERE nom='".$nom."'")or die(print_r($bdd->errorInfo())); // Sélection du dernier enregistrement
while ($donnees = $aix->fetch())
{
$ancre = $donnees['id'];
}
$aix->closeCursor();
header('Location: response_aix.php#'/*.$ancre*/); // Redirection automatique sur la page response_aix.php
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="author" content="Matthias BONDARKOFF" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300' rel='stylesheet' type='text/css' />
<link rel="stylesheet" media="all" href="css/style.css" type="text/css">
<title>SLE Caisse d'épargne</title>
<meta name="description" content="Accueil" />
</head>
<body>
<div id="access">
<?php include('include/inc_access_bis.php'); ?>
</div><!-- #access -->
<div id="global" role="main">
<header id="entete">
<?php include('include/inc_entete.php'); ?>
</header><!-- #entete -->
<div id="section3"> <!-- Interface de saisie de données du trombinoscope -->
<h2>Formulaire de saisie</h2>
<form id="form" onSubmit="afficher()" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<fieldset id="saisie">
<p class="field_align">
<input name="avatar" type="file" id="fichier_a_uploader" />
</p>
<p class="field_align">
<?php
if (isset($error) && array_key_exists('nom', $error))
{
echo $error['nom'];
}
?>
<input type="text" name="nom" id="nom" placeholder="NOM Prénom" required="required" size="34" maxlength="50" />
</p>
<p class="field_align">
<?php
if (isset($error) && array_key_exists('mandat', $error))
{
echo $error['mandat'];
}
?>
<input type="text" name="mandat" id="mandat" placeholder="Mandat" size="34" maxlength="50" />
</p>
<p class="field_align">
<?php
if (isset($error) && array_key_exists('sle', $error))
{
echo $error['sle'];
}
?>
<input type="text" name="sle" id="sle" placeholder="SLE" required="required" size="14" maxlength="50" />
<?php
if (isset($error) && array_key_exists('fonction', $error))
{
echo $error['fonction'];
}
?>
<input type="text" name="fonction" id="fonction" placeholder="Fonction" required="required" size="15" maxlength="50" />
</p>
<p class="field_align">
<?php
if (isset($error) && array_key_exists('profession', $error))
{
echo $error['profession'];
}
?>
<input type="text" name="profession" id="profession" placeholder="Profession" required="required" size="34" maxlength="50" />
</p>
<p class="field_align">
<?php
if (isset($error) && array_key_exists('journ', $error))
{
echo $error['journ'];
}
?>
<input type="text" name="journ" id="journ" placeholder="Jour N" required="required" size="5" maxlength="50" />
<?php
if (isset($error) && array_key_exists('moisn', $error))
{
echo $error['moisn'];
}
?>
<input type="text" name="moisn" id="moisn" placeholder="Mois N" required="required" size="5" maxlength="50" />
<?php
if (isset($error) && array_key_exists('annee', $error))
{
echo $error['annee'];
}
?>
<input type="text" name="annee" id="annee" placeholder="Année" required="required" size="5" maxlength="50" />
</p>
<p class="field_align">
<?php
if (isset($error))
{
if (array_key_exists('email', $error)) {echo $error['email'];}
if (array_key_exists('format', $error)) {echo $error['format'];}
}
?>
<input type="text" name="email" id="email" placeholder="Email" size="34" maxlength="50" />
</p>
<p class="button">
<input type="reset" value="Annuler" class="bouton" />
<input type="submit" value="Envoyer" name="valid" class="bouton" />
</p>
</fieldset>
</form>
</div> <!-- section2 -->
<footer id="pied">
<?php include('include/inc_pied.php'); ?>
</footer><!-- #pied -->
</div> <!-- #global -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
/* var section2 ="section2";
document.getElementById('section2').style.display='none';
function afficher(){
document.getElementById('section2').style.display='block';
} */
</script>
</body>
</html>
Et le code de ma page réponse
<?php require('include/inc_bdd_aix.php'); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="author" content="Matthias BONDARKOFF" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300' rel='stylesheet' type='text/css' />
<link rel="stylesheet" media="all" href="css/style.css" type="text/css">
<title>SLE Caisse d'épargne</title>
<meta name="description" content="Accueil" />
</head>
<body>
<div id="access">
<?php include('include/inc_access_bis.php'); ?>
</div><!-- #access -->
<div id="global" role="main">
<header id="entete">
<?php include('include/inc_entete.php'); ?>
</header><!-- #entete -->
<div id="section1">
<div id="map">
<img src="medias/aix.png" alt="SLE Aix Pertuis" title="SLE Aix Pertuis">
</div> <!-- map -->
<div id="agences">
<h1>Les Agences locales</h1>
<ul>
<li>PUY SAINTE REPARADE</li>
<li>AIX SEXTIUS</li>
<li>AIX ENCAGNANE</li>
<li>AIX FONTAINE D ARGENT</li>
<li>PEYROLLES</li>
<li>JOUQUES</li>
<li>MEYRARGUES</li>
<li>PERTUIS</li>
<li>CADENET</li>
<li>LA TOUR D AIGUES</li>
<li>AIX MIRABEAU</li>
<li>VENELLES</li>
<li>EGUILLES</li>
<li>AIX JAS DE BOUFFAN</li>
<li>AIX PIOLINE</li>
</ul>
</div> <!-- agences -->
</div> <!-- section1 -->
<?php
// On récupère tout le contenu de la table désirée
$aix = $bdd->query('SELECT * FROM `aix` ORDER BY `id` ASC');
// On affiche chaque enregistrement de la requête
while ($donnees = $aix->fetch())
{
?>
<div class="section2" name="section2" id="<?php echo $donnees['id']; ?>"> <!-- Affichage des données saisies dans le formulaire -->
<fieldset id="affichage">
<div id="photo">
<?php
if(!empty($avatar))
{
echo '<img id="avatar" src="avatar/'.($_POST['sle']).'-'.($_POST['nom']).'.jpg" alt="avatar" />';
}else{
echo '<img id="defaut" src="avatar/image_defaut.jpg" alt="defaut" />';
}
?>
</div>
<div id="champs">
<p class="field_align">
<input type="text" name="nom" class="name" readonly="readonly" value="<?php echo $donnees['nom']; ?>" size="34" maxlength="50" />
</p>
<p class="field_align">
<input type="text" name="mandat" class="mandat" readonly="readonly" value="<?php echo $donnees['mandat']; ?>" size="34" maxlength="50" />
</p>
<p class="field_align">
<input type="text" name="sle" class="sle" readonly="readonly" value="<?php echo $donnees['sle']; ?>" size="14" maxlength="50" />
<input type="text" name="fonction" class="fonction" readonly="readonly" value="<?php echo $donnees['fonction']; ?>" size="15" maxlength="50" />
</p>
<p class="field_align">
<input type="text" name="profession" class="profession" readonly="readonly" value="<?php echo $donnees['profession']; ?>" size="34" maxlength="50" />
</p>
<p class="field_align">
<input type="text" name="journ" class="journ" readonly="readonly" value="<?php echo $donnees['journ']; ?>" size="5" maxlength="50" />
<input type="text" name="moisn" class="moisn" readonly="readonly" value="<?php echo $donnees['moisn']; ?>" size="5" maxlength="50" />
<input type="text" name="annee" class="annee" readonly="readonly" value="<?php echo $donnees['annee']; ?>" size="5" maxlength="50" />
<input type="text" name="age" class="age" readonly="readonly" value="<?php echo $donnees['age']; ?>" size="5" maxlength="50" />
</p>
<p class="field_align">
<input type="text" name="email" class="email" readonly="readonly" value="<?php echo $donnees['email']; ?>" size="34" maxlength="50" />
</p>
</div> <!-- #champs -->
</fieldset>
</div>
<?php
}
// Termine le traitement de la requête
$aix->closeCursor();
?>
<div id="ajout">
<a href="formulaire-aix.php" title="Ajouter une personne">Ajout d'une nouvelle personne</a>
</div>
<footer id="pied">
<?php include('include/inc_pied.php'); ?>
</footer><!-- #pied -->
</div> <!-- #global -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</body>
</html>
Je sais le code fait peut être un peu peur à voir mais avec une pauvre semaine de PHP au cours de ma formation, je me suis basé sur ce que l'on avait fait et sur les quelques tutos que j'ai pu trouvé par-ci, par-là

Merci d'avance pour les alsanautes qui me répondront
