rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[PHP] Comment ouvrir une URL ?

Posté par Shankara, le vendredi 9 février 2007 à 11:51:16
Salut !

Voilà j'ai un formulaire situé à l'adresse http://127.0.0.1/Guide_FP/test.php?action=ajout_categorie
Ce formulaire sert à ajouter une catégorie dans une base de données (lapalissade !). Quand je clique sur le bouton Ajouter situé dans ce formulaire, si le champ "nom_new_categorie_FR" n'est pas renseigné, j'affiche une boîte alert Javascript qui dit que ce champ doit être rempli pour pouvoir faire l'ajout. Ce que je n'arrive pas à faire, c'est réouvrir mon formulaire après que l'utilisateur ait cliqué sur le bouton OK de la boîte de dialogue. Voilà le morceau de code :

if ($_REQUEST['action']=='ajout_categorie') :
/***   Affichage du formulaire d'ajout d'une catégorie   ***/
     echo "<html>\n<body>\n<center>\n\t<form­ name=\"ajout_cat\" method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\­n";
     echo "\t\t<input type=\"hidden\" name=\"action\" value=\"add_cat\">\n";
     echo "\t\t<table width=40% border=1 cellspacing=1 cellpadding=8>
<tr>
     <td colspan=2>Nouvelle catégorie</td>
</tr>
<tr>
     <td></td>
     <td>Saisissez le nom de la nouvelle catégorie :</td>
</tr>
<tr>
     <td>Nouvelle catégorie (Français)</td>
     <td><input type=\"text\" name=\"nom_new_categorie_FR\" size=\"50\"></td>
</tr>
<tr>
     <td>Nouvelle catégorie (Anglais)</td>
     <td><input type=\"text\" name=\"nom_new_categorie_UK\" size=\"50\"></td>
</tr>
<tr>
     <td></td>
     <td align=right>
          <input type=\"submit\" name=\"B_Ajouter_cat\" value=\"Ajouter\">
          <input type=\"button\" name=\"B_Annuler\" value=\"Annuler\" onclick=\"document.location.href='".$_SERVER['PHP_­SELF']."'\"></td>
</tr>\n";
echo "\t\t</table>\n\t</form>\n</center>&q­uot;;
endif;
	
if ($_REQUEST["action"]=='add_cat') :
     if (empty($_REQUEST['nom_new_categorie_FR'])) :
          if (empty($_REQUEST["nom_new_categorie_UK"])) :
	echo "<SCRIPT language=\"Javascript\">
		<!--
		alert ('Vous n'avez saisi aucune modification !');
		// -->
	            </SCRIPT>";
          else :			
	echo "<SCRIPT language=\"Javascript\">
		<!--
		alert ('La saisie du nom français de la nouvelle catégorie est obligatoire !');
		// -->
		</SCRIPT>";
	fopen("http://127.0.0.1/Guide_FP/test.php?action=ajout­_categorie","r");
          endif;
endif;
endif;


Même si je change l'action du formulaire en action=\"".$_SERVER['PHP_SELF']."?action=ajou­t_categorie\", ça continue de m'afficher une page blanche après la boîte de dialogue. Pourtant, l'URL dans la barre d'adresse est bonne.

Bon comme je vous l'ai dit, c'est un bout de code. Le code complet est beaucoup trop long pour être posté ici. J'espère n'avoir rien oublié. Merci à tous ceux qui me répondront.
Configuration: Windows XP
Internet Explorer 7.0
Répondre à Shankara  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
benkeeper, le vendredi 9 février 2007 à 16:24:09
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=ajo­ut_categorie'>";
return;

ou bien

header("Location:http://127.0.0.1/Guide_FP/test.php?act­ion=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?act­ion=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;"?>>No­uvelle catégorie (Français)</td>



Ben :)
Répondre à benkeeper

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 ck69, le samedi 27 octobre 2007 à 13:38:56
Bonjour,

J'ai installé screamer radio mais pour copier les fichiers il faut ouvrir un URL et copier le flux de diffusion de la web radio.
Je suis nul en informatique

Comment faire SVP

merci
Répondre à ck69
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger PowerISO 4.2PowerISO - PowerISO est un outil de gestion d'images de CD et DVD, capable d'ouvrir, d'extraire, de créer, d'éditer, de compresser et...Catégorie: Gravure
Licence: Demo
Télécharger Switch Sound Format Converter 1.05Switch Sound Format Converter - Switchest un convertisseur de formats audio pour Windows ou Mac, capable de convertir des fichiers audio à partir de...Catégorie: Conversion audio
Licence: Freeware/gratuit
Télécharger SIW 2008-07-15SIW - SIW (System Information for Windows) est un programme permettant d'analyser la configuration de l'ordinateur et d'effectuer...Catégorie: Diagnostic
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [PHP] Comment ouvrir une URL ? »