Bonjour!

J'ai essayé ce captcha qui fonctionne mais si je mets rien
ou si je mets un faux chiffre, ça donne une page blanche.
J'aimerais que ça retourne à mon index.php.

Comment, je pourrais faire ça?

Une aide est appréciée, Merci!

Mon code :

<?php
if(!empty($_POST)) {
if(!empty($_POST['verif'])&&$_POST['verif']=='12') {


include('connect-db.php');
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
$result = mysql_query("DELETE FROM ".PREF."bmark WHERE id=$id")
or die(mysql_error()); 
header("Location: index.php");
}
else {
header("Location: index.php");
}


}
}
else {
echo '<form method="post" action="'.$_SERVER['PHP_SELFT'].'">
Écrire: 12
<input type="text" name="verif" />
<input type="submit" value="Delete" />
</form>';
}
?>

Modifié par dan4 (08 Sep 2010 - 09:55)
Merci, cependant, ça ne fonctionne pas si je mets $_GET pour le captcha.
Mon code revu et simplifié :

<?php
if(!empty($_POST)) {
if(!empty($_POST['verif'])&&$_POST['verif']=='12') {


include('connect-db.php');
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
$result = mysql_query("DELETE FROM ".PREF."bmark WHERE id=$id")
or die(mysql_error()); 
header("Location: index.php");
}
}
}
else {


echo '<form method="post">
Écrire: 12
<input type="text" name="verif" />
<input type="submit" value="Delete" />
</form>';
}
?>


J'arrive à effacer de la base quand je tappe 12 correctement. Mais si je mets rien ou si je mets un chiffre incorrect, c'est une page blanche.

Omanu a écrit :
Tu utilise à la fois $_POST et $_GET ... ambigu
Merci!

J'ai résolu le problème en modifiant le code comme ceci :
<?php
if(!empty($_POST['verif'])&&$_POST['verif']=='12') {

include('connect-db.php');
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = $_GET['id'];
$result = mysql_query("DELETE FROM ".PREF."bmark WHERE id=$id")
or die(mysql_error()); 
header("Location: index.php");
}

}
else{
echo '<table><tr><td><form method="post">
Écrire: 12
<input type="text" name="verif" />
<input type="submit" value="Delete" />
</form></td>
<td><form method="post" action="index.php" />
<input type="submit" value="Annuler" />
</form></td></tr></table>';
}
?>


J'ai supprimé le premier if (isset($_GET['id']), il en avait deux.
J'ai créé un formulaire que pour aller dans index.php puisque
je voulais un bouton qui s'appelle "annuler".

Ça marche parfaitement sous plusieurs conditions.
Peut-être, qu'il y a lieu de sécurisé les entrées.

S'il y a un meilleur moyen pour coder plus propre... je suis preneur. Merci.

Omanu a écrit :
Tu utilise à la fois $_POST et $_GET ... ambigu
Salut,

Omanu a écrit :
Tu utilise à la fois $_POST et $_GET ... ambigu
Pourquoi ? C'est quelquefois tout à fait justifié. Smiley cligne
Ça fonctionne bien comme résultat.

Au lieu de faire écrire, j'ai mis "delete"
puisque ce code sert uniquement à éviter
l'effacement accidentel. Et ce n'est pas
pour un usage public.

Heyoan a écrit :
Salut,

Pourquoi ? C'est quelquefois tout à fait justifié. Smiley cligne
Heyoan a écrit :
Salut,

Pourquoi ? C'est quelquefois tout à fait justifié. Smiley cligne


Oui en effet Smiley confused mais c'est ce qui m'a sauté aux yeux à la première lecture.
Bon je ne vais pas m'enfoncer plus que ça et tant mieux si ça marche Dan4 Smiley smile