A voir également:
- [PHP] Comment ouvrir une URL ?
- Url - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Comment ouvrir un fichier dat - Guide
- Comment ouvrir un fichier docx ? - Guide
2 réponses
Essayez de remplacer la ligne :
fopen("http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie","r");
par :
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie'>";
return;
ou bien
header("Location:http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie");
return;
Cependant quitte à utiliser du javascript autant tester que le champ est rempli avant la soumission du formulaire.
La ligne du bouton "submit" devient :
<input type=\"submit\" name=\"B_Ajouter_cat\" value=\"Ajouter\" onClick=\"return(CheckForm());\">
et en tête de page la fonction CheckForm est définie ainsi :
<script language="javascript">
function Trim(string)
{
return string.replace(/(^\s*)|(\s*$)/g,'');
}
function CheckForm()
{
//test des champs
if(Trim(document.ajout_cat.nom_new_categorie_FR) == "")
{
alert("La saisie du nom français de la nouvelle catégorie est obligatoire !");
return(false);
}
if(Trim(document.ajout_cat.nom_new_categorie_UK) == "")
{
alert("La saisie du nom anglais de la nouvelle catégorie est obligatoire !");
return(false);
}
//Si on arrive jusque là sans erreur
return(true);
}
</script>
La fonction Trim sert à s'assurer que l'utilisateur n'a pas rempli le champs uniquement avec des espaces ou des caractères blancs (y compris sans le faire exprès).
Toute fois comme pas mal de navigateur proposent de désactiver le javascript, ce n'est pas une sécurité suffisante et il faut retester la validité des champs après soumission comme vous l'avez fait.
On peut souhaiter aussi tester que le formulaire a été rechargé suite à une erreur de saisie.
La ligne header devient par exemple :
header("Location:http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie&err");
et dans le code du formulaire par exemple :
if(isset($_GET['err'])) echo "Erreur dans le formulaire";
On peut même donner une valeur à la variable url 'err', par exemple &err=1 pour le français et &err=2 pour l'anglais, et faire apparaitre le champs en question en gras ou en rouge.
Exemple :
<td <?php if(isset($_GET['err'])) && $_GET['err']==1) echo "style=font-weight:bold;color:#FF0000;"?>>Nouvelle catégorie (Français)</td>
Ben :)
fopen("http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie","r");
par :
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie'>";
return;
ou bien
header("Location:http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie");
return;
Cependant quitte à utiliser du javascript autant tester que le champ est rempli avant la soumission du formulaire.
La ligne du bouton "submit" devient :
<input type=\"submit\" name=\"B_Ajouter_cat\" value=\"Ajouter\" onClick=\"return(CheckForm());\">
et en tête de page la fonction CheckForm est définie ainsi :
<script language="javascript">
function Trim(string)
{
return string.replace(/(^\s*)|(\s*$)/g,'');
}
function CheckForm()
{
//test des champs
if(Trim(document.ajout_cat.nom_new_categorie_FR) == "")
{
alert("La saisie du nom français de la nouvelle catégorie est obligatoire !");
return(false);
}
if(Trim(document.ajout_cat.nom_new_categorie_UK) == "")
{
alert("La saisie du nom anglais de la nouvelle catégorie est obligatoire !");
return(false);
}
//Si on arrive jusque là sans erreur
return(true);
}
</script>
La fonction Trim sert à s'assurer que l'utilisateur n'a pas rempli le champs uniquement avec des espaces ou des caractères blancs (y compris sans le faire exprès).
Toute fois comme pas mal de navigateur proposent de désactiver le javascript, ce n'est pas une sécurité suffisante et il faut retester la validité des champs après soumission comme vous l'avez fait.
On peut souhaiter aussi tester que le formulaire a été rechargé suite à une erreur de saisie.
La ligne header devient par exemple :
header("Location:http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie&err");
et dans le code du formulaire par exemple :
if(isset($_GET['err'])) echo "Erreur dans le formulaire";
On peut même donner une valeur à la variable url 'err', par exemple &err=1 pour le français et &err=2 pour l'anglais, et faire apparaitre le champs en question en gras ou en rouge.
Exemple :
<td <?php if(isset($_GET['err'])) && $_GET['err']==1) echo "style=font-weight:bold;color:#FF0000;"?>>Nouvelle catégorie (Français)</td>
Ben :)