Bonjour,

Je m'explique, voila je fais dans mon espace admin sur mon site, une page pour gérer la validation ou le refus de petites annonces.. dans le code de ma page check.php j'ai les deux portions de code suivant :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
// Valider une annonce
if (isset($_GET['valann'])) {
    $req = $pdo->prepare('SELECT a.idann, a.title, u.username, u.email
FROM ad a
INNER JOIN users u ON a.idmbr = u.idmbr
WHERE a.idann = ?');
    $req->execute([$_GET['valann']]);
    $ad = $req->fetch();
 
    if ($ad) {
        $req = $pdo->prepare('UPDATE ad SET status = 1 WHERE idann = ?')->execute([$_GET['valann']]);
 
        mail($ad->email, 'Votre annonce est en ligne !', "Bonjour $ad->username,
 
Nous vous confirmons que votre nouvelle annonce est désormais en ligne :
".URL_SITE."/test-".$ad->idann.".html
 
A tout moment, vous pouvez gérer l'ensemble de vos annonces en ligne en vous connectant sur votre compte personnel à l'adresse suivante :
".URL_SITE."/login.php
 
Si vous avez la moindre question quant à notre fonctionnement, n'hésitez pas à répondre à ce mail, nous ne manquerons pas de vous aider dans votre recherche d'élèves.
 
Merci de votre confiance et à très bientôt sur notre site.", $headers);
 
        $_SESSION['flash']['success'] = 'L\'annonce a bien été validée';
    }
}
 
// Refuser une annonce (sensiblement le même code qu'au dessus..)
if (isset($_GET['refann'])) {
    $req = $pdo->prepare('SELECT a.idann, a.title, u.username, u.email
FROM ad a
INNER JOIN users u ON a.idmbr = u.idmbr
WHERE a.idann = ?');
    $req->execute([$_GET['refann']]);
    $ad = $req->fetch();
 
    if ($ad) {
        $req = $pdo->prepare('UPDATE ad SET status = 2 WHERE idann = ?')->execute([$_GET['refann']]);
 
        mail($ad->email, 'Votre annonce est refusée', "Bonjour $ad->username,
 
L'annonce « $ad->title » que vous avez déposée sur notre site ne respecte pas nos règles de diffusion.
 
A tout moment, vous pouvez gérer l'ensemble de vos annonces en ligne en vous connectant sur votre compte personnel à l'adresse suivante :
".URL_SITE."/login.php
 
Merci de votre confiance et à très bientôt sur notre site.", $headers);
 
        $_SESSION['flash']['success'] = 'L\'annonce a bien été refusée';
    }
}

Mon code fonctionne très bien mais je répète le début du code pour valider ou refuser une annonce. Avez vous une solution pour que la première requête soit écrite une seule fois dans le code ?

mes liens de validation ou de refus (du classique) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="check.php?valann=<?php echo $ad->idann; ?>">Valider</a> | <a href="check.php?refann=<?php echo $ad->idann; ?>">Refuser</a>
Merci à vous