Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/09/2007, 17h35   #1
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
Par défaut [SQL] Renvoyer sur une page 404 si erreur

Bonjour je m'explique je vais faire très court
j'ai un site d'annonce auto avec une table annonce qui comporte une variable visible oui ou non
afin de conserver les annonces dans la bd quand on supprime une annonce elle n'est plus visible sur le site et passe son statut sur non
jusque là aucun pb

je me suis que des utilisateurs avaient en favoris l'url de l'annonce et elle s'affichait même si elle restait sur non je ne faisais aucun traitement.
je voudrais en faite rediriger vers une page 404 si on saisit l'adresse d'une annonce qui est supprimée donc sur non

je voudrais faire un truc du genre
Code :
1
2
3
4
5
si visible=='non'{ 
header("HTTP/1.0 404 Not Found"); 
header("Location: http://www.monsite.com/404.php"); 
exit(); 
}
au préalable
dans ma page j'affiche un truc du genre
connect bd
$sql="select * from annonce where visible='oui' and idannonce='$idannonce'";
ect//

comment faire ce traitement est ce qu'il faut vérifier si l'annonce est sur non d'abord ?
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 17h37   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Bah je pense que tu n'as pas le choix si? Il n'y a que en vérifiant dans la base d'abord que tu peux savoir si l'annonce est toujours disponible ou pas?
Ensuite tu fais un header()

Mais ca serait peut etre mieux (au lieu d'un 404) de dire a l'utilisateur "cette annonce n'est plus disponible" non?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 21h26   #3
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
Par défaut merci

voila ce que je fais mais cela marche pas
verifcation si annonce est sur visible='non'
si oui alors redirection vers la page qui informe
Code :
1
2
3
4
5
6
7
8
9
10
11
$idannonce=$_GET['idannonce'];
require_once('Connections/xxxx.php');
mysql_select_db($xxxx, $xxx);
$sql="select visible from annonce where idannonce='$idannonce'";
$result=mysql_query($sql);
$res=mysql_num_row($result);
if $result=='non'
{
header("location : http://www.bestoccaz.com/404.shtml");
exit(); 
}
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 22h40   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
1
2
3
4
5
6
7
$sql = "select visible from annonce where idannonce='$idannonce'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
if ($row['visible'] == 'non') {
    header("location : http://www.bestoccaz.com/404.shtml");
    exit(); 
}
Pourquoi ne pas utiliser un type booléen ou un enum pour ce champ ? Pensez à vous protéger des injections SQL ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 23h18   #5
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
Par défaut salut

Merci pour ton aide
ca ne fonctionne pas
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 11h18   #6
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
j'ai trouve il faut mettre ca dans le header
header("location: 404.shtml");
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h46.


 
 
 
 
Partenaires

Hébergement Web