Carpediem
Invité n'ayant pas de compte PHPfrance
15 févr. 2014, 16:25
Bonjour,
Voici un exemple identique à adapter suivant ce que vous voulez exactement, la première page lit en bdd et incorpore un bouton supprimer et la seconde permet la suppression de la ligne de table sélectionner.
Voici la première page :
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=votrebasededonnées', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM contact');
while ($donnees = $reponse->fetch())
{
?>
<table summary="Message reçu via contact.">
<colgroup>
<col span="1" width="500"/>
<col span="1" width="125"/>
<col span="1" width="125"/>
</colgroup>
<thead>
<tr>
<th abbr="Nav" scope="col">Message Reçu</th>
<th abbr="Nb" scope="col">Ajouter</th>
<th abbr="Am" scope="col">Supprimer</th>
</tr>
</thead>
<tbody>
<tr>
<td>Objet du message : <strong><?php echo $donnees['objet']; ?></strong><br />
Posté le : <strong><?php echo $donnees['jour'] . '/' . $donnees['mois'] . '/' . $donnees['annee']; ?></strong><br />
Civilité de la personne : <strong><?php echo $donnees['civilite']; ?></strong><br />
Nom de la personne : <strong><?php echo $donnees['nom']; ?></strong><br />
Prénom de la personne : <strong><?php echo $donnees['prenom']; ?></strong><br />
E-mail de la personne : <strong><?php echo $donnees['email']; ?></strong><br />
Message : <strong><?php echo $donnees['message']; ?></strong></td>
<td><form action="ajouter-updater-email.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="email_ajouter" value="<?php echo $donnees['email']; ?>">
<input type="submit" value="Ajouter l'email" name="envoyer">
</form>
</td>
<td><form action="supprimer-message-contact.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="email_supprimer" value="<?php echo $donnees['email']; ?>">
<input type="hidden" name="legende1" id="legende1"/>
<input type="hidden" name="legende2" value="qk4e5fg6t9yu1" id="legende2"/>
<input type="submit" value="Supprimer l'email" name="envoyer">
</form>
</td>
</tr>
</tbody>
</table>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête
?>
Voici la seconde page pour la suppression :
<?php
$legende2=trim(stripslashes($_POST["legende2"]));
// Si le formulaire a été soumis
if (isset($_POST["envoyer"])){
if ($legende2="qk4e5fg6t9yu1"); {
// On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
$etat = "erreur";
// On récupère les champs du formulaire, et on arrange leur mise en forme
// trim() enlève les espaces en début et fin de chaine
if (isset($_POST["email_supprimer"])) $_POST["email_supprimer"]=trim(strip_tags($_POST["email_supprimer"]));
if (isset($_POST["legende1"])) $_POST["legende1"]=trim(strip_tags($_POST["legende1"]));
// Après la mise en forme, on vérifie la validité des champs
// reception email
if (empty($_POST["email_supprimer"])) {
// On met dans erreur le message qui sera affiché
$erreur="Vous n'avez rentré d'email...";
}
// reception legende1
elseif (!empty($_POST["legende1"])) {
// On met dans erreur le message qui sera affiché
$erreur="Erreur dans la transmission du formulaire...";
}
// On vérifie si l'email est bien de la forme [email protected]
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_supprimer"])){
$erreur="Votre adresse e-mail n'est pas valide...Il doit être sous la forme suivante : [email protected]";
}
// Si tous les champs sont valides, on change l'état à ok
else {
$etat="ok";
}
}
}
if ($etat=="ok"){
// Cas où le formulaire a été soumis mais il y a des erreurs
echo "<h4>Les messages de cette adresse email ont été supprimés. <br/><br/>
Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>";
try
{
$bdd = new PDO('mysql:host=localhost;dbname=votrebasededonnees', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('DELETE FROM contact WHERE email = :email_supprimer');
$req->execute(array(
'email_supprimer' => $_POST['email_supprimer']));
}
elseif ($etat=="erreur"){
// On affiche le message correspondant à l'erreur
echo "<h4>$erreur<br/><br/>
Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>";
}
else {
echo "<h4>Erreur dans la transmission du formulaire.<br/><br/>
Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"gestion-reception-contact.php\">Contact</a></h4>";
}
?>
J’espère que ça pourra t'aider
Cordialement