[PHP] redirection d'erreur
Résolu
kunt45
Messages postés
124
Date d'inscription
Statut
Membre
Dernière intervention
-
kunt45 Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
kunt45 Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila je vous explique mon problème.je cherche dans mon code un chemin et après selon si le chemin existe ou non il renvoi sur le fichier de ce chemin ou doit rediriger vers une page d'erreur.je ne vois absolument pas comment faire.si vous aviez l'amabilité de m'aider.alors je sais qu'il y a une possibilité avec base de donnée mais sa me demande de changer tout le code. en effet, je suis en stage j'avais proposer a mon maitre de stage une solution pour le site crée il ma pris pour un "jeune con" qui y connaissait rien et ma obliger a appliquer sa technique or après création je me retrouve avec plein de bug en partie régler et maintenant que j'ai ce pb il me demande de tout recommencer selon ma méthode car elle était effectivement bonne.comme je n'ai ni le courage ni l'envie ni le temps je vous demande votre aide. en vous remerciant par avance.
<?php
$annee = $_POST['annee'];
$statut = $_POST['statut'];
if ($statut == "") {
echo "ERREUR DE SAISIE : ";
echo "Le champ statut est obligatoire !";
exit;
}
if ($annee == "") {
echo "ERREUR DE SAISIE : ";
echo "Le champ année est obligatoire !";
exit;
}
//$designstatut=$statut[0];
$host = "******";
$user = "******";
$bdd = "*******";
$passwd = "******";
mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd)or die("erreur de connexion a la base de donnees");
$query = "SELECT designstatut FROM statut WHERE libellestatut='$statut';";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)){
$designstatut = $row[0];
}
$nomfichier=$annee.$designstatut.".htm";
$nomdossier=$annee.$designstatut;
$dest = "./$nomdossier/$nomfichier";
$result=header("Location: $dest");
if($result= "TRUE")
{
header("Location: $dest");
}
else
{
header("Location: erreur.html");
}
?>
voila je vous explique mon problème.je cherche dans mon code un chemin et après selon si le chemin existe ou non il renvoi sur le fichier de ce chemin ou doit rediriger vers une page d'erreur.je ne vois absolument pas comment faire.si vous aviez l'amabilité de m'aider.alors je sais qu'il y a une possibilité avec base de donnée mais sa me demande de changer tout le code. en effet, je suis en stage j'avais proposer a mon maitre de stage une solution pour le site crée il ma pris pour un "jeune con" qui y connaissait rien et ma obliger a appliquer sa technique or après création je me retrouve avec plein de bug en partie régler et maintenant que j'ai ce pb il me demande de tout recommencer selon ma méthode car elle était effectivement bonne.comme je n'ai ni le courage ni l'envie ni le temps je vous demande votre aide. en vous remerciant par avance.
<?php
$annee = $_POST['annee'];
$statut = $_POST['statut'];
if ($statut == "") {
echo "ERREUR DE SAISIE : ";
echo "Le champ statut est obligatoire !";
exit;
}
if ($annee == "") {
echo "ERREUR DE SAISIE : ";
echo "Le champ année est obligatoire !";
exit;
}
//$designstatut=$statut[0];
$host = "******";
$user = "******";
$bdd = "*******";
$passwd = "******";
mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd)or die("erreur de connexion a la base de donnees");
$query = "SELECT designstatut FROM statut WHERE libellestatut='$statut';";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)){
$designstatut = $row[0];
}
$nomfichier=$annee.$designstatut.".htm";
$nomdossier=$annee.$designstatut;
$dest = "./$nomdossier/$nomfichier";
$result=header("Location: $dest");
if($result= "TRUE")
{
header("Location: $dest");
}
else
{
header("Location: erreur.html");
}
?>
A voir également:
- [PHP] redirection d'erreur
- Expert php pinterest - Télécharger - Langages
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Iptv erreur de lecture - Forum TV & Vidéo
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
4 réponses
Bonjour, que testes tu, à cette ligne :
?
header n'a pas de valeur de retour :-/
https://www.php.net/manual/fr/function.header.php
$result=header("Location: $dest");
?
header n'a pas de valeur de retour :-/
https://www.php.net/manual/fr/function.header.php
Bonjour,
Dans l'idée c'est pas mal mais en fait je vois pas vraiment à quel moment intercepter l'erreur.
Ce que je peux dire c'est qu'en cas de ton test.
Tu risques d'avoir un problème au niveau des '=' il t'en faut au moins deux voire 3 si tu enlèves la chaine de caractère. Est-ce que c'est une faute de frappe dans ton code ou une faute lorsque tu as recopié?
Vu que tu fais des 'exit;' lorsqu'il y a une erreur, tu n'iras pas vers ta page d'erreur, mais si tu ne les fais pas vu que tu balances des 'echo' php ne voudra pas modifier le header.
Enfin toujours avec les headers si tu n'empêches pas php d'afficher les erreurs ( je ne me souviens plus de la variable à modifier mais dans la doc php tu dois trouver ça facilement ) . S'il y a une erreur sql par exemple il ne va pas vouloir modifier les headers car il aura affiché le message d'erreur.
Avec plus de précisions on peut aller plus loin alors si tu souhaites traiter les erreurs sql par exemple tu peux tenter un
là c'est plutôt Java mais en php ça existe ( je ne me souviens plus à partir de quelle version ).
Dans l'idée c'est pas mal mais en fait je vois pas vraiment à quel moment intercepter l'erreur.
Ce que je peux dire c'est qu'en cas de ton test.
if($result= "TRUE") { header("Location: $dest"); }
Tu risques d'avoir un problème au niveau des '=' il t'en faut au moins deux voire 3 si tu enlèves la chaine de caractère. Est-ce que c'est une faute de frappe dans ton code ou une faute lorsque tu as recopié?
Vu que tu fais des 'exit;' lorsqu'il y a une erreur, tu n'iras pas vers ta page d'erreur, mais si tu ne les fais pas vu que tu balances des 'echo' php ne voudra pas modifier le header.
Enfin toujours avec les headers si tu n'empêches pas php d'afficher les erreurs ( je ne me souviens plus de la variable à modifier mais dans la doc php tu dois trouver ça facilement ) . S'il y a une erreur sql par exemple il ne va pas vouloir modifier les headers car il aura affiché le message d'erreur.
Avec plus de précisions on peut aller plus loin alors si tu souhaites traiter les erreurs sql par exemple tu peux tenter un
try{ }catch(){}
là c'est plutôt Java mais en php ça existe ( je ne me souviens plus à partir de quelle version ).
Effectivement je n'avais pas remarqué le test sur :
Le lien vers la doc explique tout je ne pense pas que ça soit possible, par contre si tu travailles avec des includes c'est déjà plus possible de tester l'existence de ton fichier.
essaie plutôt
voilà si ça peut aider
$result=header("Location: $dest");
Le lien vers la doc explique tout je ne pense pas que ça soit possible, par contre si tu travailles avec des includes c'est déjà plus possible de tester l'existence de ton fichier.
essaie plutôt
< ?php $result = file_exists($dest); ?>
voilà si ça peut aider