problème formulaire

problème formulaire - PHP - Programmation

Marsh Posté le 18-10-2007 à 16:16:47    

Bonjour,
 
J'aimerai réaliser un petit formulaire tout simple
En fait je voudrais un edit ou l'on peut rentrer une référence
Si la référence existe dans mon site, la page la concernant s'ouvre
Chaque page à une référence et chaque référence à une page
 
J'aimerai juste quelques pistes je sais qu'il faut faire des boucles mais je ne sais pas vraiment comment m'y prendre
 
Merci d'avance
 
j'ai essayer avec ça :
 
 
<form action="reference.php" method="post">
<input type="text" size="30" name="ref"value="" /><input type="submit" value="Valider" /></td></table>
<?
 
if (($_POST['ref'])=='cible') {
 
 
/* Redirige vers une page différente du dossier courant */
 
include ('cible.php');
}
exit;
 
Je veux que si la valeur de l'edit = cible alors la page cible.php s'ouvre
 
 
mais ça ne marche pas :??:  :??:

Reply

Marsh Posté le 18-10-2007 à 16:16:47   

Reply

Marsh Posté le 18-10-2007 à 16:23:31    

Donc si je comprends bien, l'utilisateur doit taper "cible" pour être redirigé vers la page cible.php?
 
Quel est l'intéret?
 
Ca n'aurait pas été plus simple de faire une simple redirection quand l'utilisateur clique, il est orienté vers la page cible.php
 
Edit : Si tu veux faire une redirection, include n'est pas correcte !
Il faut utiliser header('cible.php').

Message cité 1 fois
Message édité par cvex le 18-10-2007 à 16:25:23

---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
Reply

Marsh Posté le 18-10-2007 à 16:28:11    

Merci de ton aide  
Je l'ai déjà fait avec des lien mais comme il s'agit de références il y en a énormément de plus il ne peut pas y avoir de fautes d'orthographe dans une référence donc c'est plus rapide pour l'utilisateur.
Cible correspond au numéro de référence et la page se nomme cible.php

Reply

Marsh Posté le 18-10-2007 à 16:29:37    

J'ai aussi essayer avec header mais je ne sais pas trop m'y prendre donc la page est introuvable

Reply

Marsh Posté le 18-10-2007 à 16:31:04    

Bonjour,
redirection javascript?

Reply

Marsh Posté le 18-10-2007 à 16:37:13    

cvex a écrit :

Il faut utiliser header('cible.php').

avec le 'Location' c'est mieux :
http://fr.php.net/header#id3338231

Reply

Marsh Posté le 18-10-2007 à 16:38:41    

Comment ça ? je veux juste un truc du genre :
 
Si value=cible
  Alors la page "cible.php" s'ouvre
Sinon Afficher "la page n'existe pas"
 
 

Reply

Marsh Posté le 18-10-2007 à 16:44:13    

Avec header il me renvoi 404 Not found
Est ce que je dois changer quelque chose ?
 
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'rac.php';

Reply

Marsh Posté le 18-10-2007 à 16:45:19    

Code :
  1. if(tontest)
  2. {
  3. ?>
  4. <script language="javascript"
  5. type="text/javascript">
  6. <!--
  7. window.location.replace(
  8. "http://www.un-site.com/une-page.htm" );
  9. -->
  10. </script>
  11. <?php
  12. }
  13. else
  14. {
  15.    echo "Cette page n'existe pas";
  16. }


Message édité par micfont999 le 18-10-2007 à 16:49:45
Reply

Marsh Posté le 18-10-2007 à 16:47:17    

Ouaip je vais essayer avec js merci

Reply

Marsh Posté le 18-10-2007 à 16:47:17   

Reply

Marsh Posté le 18-10-2007 à 16:48:29    

je t'en pris

Reply

Marsh Posté le 18-10-2007 à 16:48:49    

Mais il y a plusieurs page et je vois pas de variable dans le code (excuse moi mais je connais pas js)

Reply

Marsh Posté le 18-10-2007 à 16:50:32    

Code :
  1. if(tontest)
  2. {
  3. ?>
  4. <script language="javascript"
  5. type="text/javascript">
  6. <!--
  7. window.location.replace(
  8. "<?php echo $tavariable; ?>.php" );
  9. -->
  10. </script>
  11. <?php
  12. }
  13. else
  14. {
  15.    echo "Cette page n'existe pas";
  16. }


 
par exemple :)  
 
 [:magnasuprema]

Reply

Marsh Posté le 18-10-2007 à 17:07:21    

En fait a cause de cette balise :
<form action="reference.php" method="post">  
c'est toujours la page reference.php qui s'ouvre on dirait que le reste du code ne sert à rien

Reply

Marsh Posté le 18-10-2007 à 17:08:37    

Le js je doit le mettre avant ou après le HTML ?

Reply

Marsh Posté le 18-10-2007 à 17:10:15    

bah normal ... tu demande à ton formulaire lors de sa validation d'ouvrir cette page :) lol
<form action"" method="post" onSubmit="javascript:return mafonction(tonchamptexte.value);">
 
et dans ton javascript  
redirection avec le parametre ;)
 
en gros tu met pas d'action à ton formulaire, et quand tu le valide tu lance une fonction javascript qui va faire la redirection en fonction de la valeur de ton champ texte

Reply

Marsh Posté le 18-10-2007 à 17:11:29    

jeremy1664 a écrit :

Le js je doit le mettre avant ou après le HTML ?


 
 
n'importe ou du moment que ce soit dans des balises <script>
ça dépend de ce que tu veux faire ..
soit entre les balises head, soit dans le body
mais pas en dehors de HTML déjà

Reply

Marsh Posté le 18-10-2007 à 17:15:02    

Mafoncton c'est le nom de la fonction js ?
Et Monchampstexte c'est $ref?

Reply

Marsh Posté le 18-10-2007 à 17:19:48    

oui mafonction sera le nom de ta fonction, et monchamptexte sera simplement le nom de l'input de ton formulaire ... :)
 
un exemple

Code :
  1. <html><head><title>Test</title>
  2. <script language="JavaScript">
  3. function confirmation()
  4. {
  5. x = window.confirm("Ce formulaire est destiné à " + document.formulairetest.action);
  6. return x;
  7. }
  8. </script>
  9. </head><body>
  10. <form name="formulairetest" action="mailto:toimeme@ton.com"
  11. onSubmit="return confirmation()">
  12. <input type=text size=40 name="entree">
  13. <input type=submit value="envoi">
  14. </form>
  15. </body></html>


 
pas besoin du javascript:
autant pour moi

Reply

Marsh Posté le 18-10-2007 à 17:26:57    

Ton exemple m'a un peu embrouiller  
Je comprend pas vraiment ce que je doit mettre à la place deMafoncton et de Monchampstexte dans mon code  
 
<form action="" method="post" onSubmit="javascript:return mafonction($ref.value);">
<input type="text" size="30" name="ref" value="" /><input type="submit" value="Valider" />
<?
 
if (($_POST['ref'])=='cible') {
 ?>
 <script language="javascript"
type="text/javascript">
 <!--
 window.location.replace(
 "http://gs-computer.eu/index.php?mod=cible&lang=fr" );
 -->
 </script>
 <?php
 }
 else
 {
    echo "Cette page n'existe pas";
 }
 ?>
 
Merci beaucoup pour ton aide

Reply

Marsh Posté le 18-10-2007 à 17:31:43    

Ma fonction c'est window.location.replace ?

Reply

Marsh Posté le 18-10-2007 à 17:34:59    

alors attention :  
javascript ne reconnaitra absoluement pas les variables php ...  
donc le $ref dans javascript tu oublis
 
Ensuite :  
voila je vais pas te macher tout le boulot mais ça donnera un truc du style

Code :
  1. <html><head><title>Test</title>
  2. <script language="JavaScript">
  3. function redirectionchamptexte(parametre)
  4. {
  5. window.location.replace(parametre+".php" );
  6. return true;
  7. }
  8. </script>
  9. </head><body>
  10. <form name="formulairetest" action="" onSubmit="return redirectionchamptexte(entree.value)">
  11. <input type=text size=40 name="entree">
  12. <input type=submit value="envoi">
  13. </form>
  14. </body></html>


 
voila analyse bien ce que je viens de te donner, je reviens demain moi, bonne soirée :)

Reply

Marsh Posté le 18-10-2007 à 17:38:42    

C'est vraiment sympa je vais me débrouiller merci beaucoup

Reply

Marsh Posté le 18-10-2007 à 22:18:17    

soju a écrit :

avec le 'Location' c'est mieux :
http://fr.php.net/header#id3338231


 
Oui merci de la précision ^^ J'avais oublié de le préciser :)


---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
Reply

Marsh Posté le 19-10-2007 à 09:06:01    

Salut micfont999 j'essaie de changer tous les paramètres dans la fonction mais je suis toujours redirigé vers la page d'accueil de mon site

Reply

Marsh Posté le 19-10-2007 à 09:10:08    

ah comment ça?

Reply

Marsh Posté le 19-10-2007 à 09:17:34    

Ben en fait l'adresse de la page référence c'est ça : http://gs-computer.eu/index.php?mo [...] ce&lang=fr
et avec le script si je veux qu'il me renvoi à la page rs485 il me donne cette adresse : http://gs-computer.eu/index.php?entree=rs485 et me redirige sur ma page d'accueil alors que j'ai mis ça : window.location.replace("http://www.gs-computer.eu/index.php?mod="parametre+"&lang=fr" ); dans le code js

Reply

Marsh Posté le 19-10-2007 à 09:22:25    

evite les url absolues la dedant (avec http et tout le tointoin)
 
sinon essai ça :

Code :
  1. window.location.replace("index.php?entree="+parametre+"" );


 
dans ton exemple tu avait oublié une concaténation (+) avant le paramètre, et tu lui demandais d'avoir en passage de paramètre GET (ce qui ce trouve après le index.php?) mod.. toi tu ne veux pas mod tu veux entree déjà :)  
 
voila :)
 
edit : c'est pas terrible au niveau design à mon gout personnel  
 [:magnasuprema]  désolé il fallait que je donne ma petite touche de chianterie :)


Message édité par micfont999 le 19-10-2007 à 09:23:28
Reply

Marsh Posté le 19-10-2007 à 09:32:51    

J'ai toujours le même problème  
Il me renvoi cette adresse : http://gs-computer.eu/index.php?entree=rac
Il devrait me renvoyer ça :http://gs-computer.eu/index.php?mod=rac&lang=fr
Mais c'est peut être ma ligne en php qui est fausse
if (($_POST['entree.value'])=='parametre')

Reply

Marsh Posté le 19-10-2007 à 09:35:07    

je comprend pas toute ton histoire la ...  
mais bon si tu veux qu'il te renvoi ce que tu m'a indiqué alors c'est ça :  

Code :
  1. window.location.replace("index.php?mod="+parametre+"&lang=fr" );


 
:) on va y arriver hein, il te manquais juste un + avant parametre


Message édité par micfont999 le 19-10-2007 à 09:35:16
Reply

Marsh Posté le 19-10-2007 à 09:40:09    

Même erreur  j'avais déjà mis les deux plus je comprend rien

Reply

Marsh Posté le 19-10-2007 à 09:43:09    

eula oui j'avais pas vu :  
php ..
if($_POST["entree"] == 'jesaispasàquoicorrespondtonparametrela')
{
 
}
 
va falloir qu'on reprenne les bases de php et de javascript hein ...  
la tu mélange un peu tout c'est pas terrible ...
 
pas de entree.value dans ton if, entree suffit. le .value est pour le javascript ...
alors redis moi clairement la démarque que tu fait, depuis l'ouverture de la page, jusque le windows.location.replace :) s'il te plais
 
sinon à quoi correspond ton parametre?

Reply

Marsh Posté le 19-10-2007 à 09:48:33    

j'ai une seule chose avant le code js :
<?
    if (($_POST['entree.value'])=='parametre') {
?>
Mon paramètre devrai d'après moi correspondre à entree.value
et entree.value prendrait la valeur que l'utilisateur rentre  
Jme trompe ?

Reply

Marsh Posté le 19-10-2007 à 09:51:57    

oui tu te trompe :)
 
donc si j'ai bien compris :  
tu valide ton formulaire,  
tu arrive sur un page contenant :

Code :
  1. <?
  2. if (($_POST['entree.value'])=='parametre') {
  3.         window.location.replace("index.php?mod="+parametre+"&lang=fr" );
  4. }
  5. ?>


 
c'est ça?
 
donne le code de ta page ça ira plus vite s'il te plais

Reply

Marsh Posté le 19-10-2007 à 09:56:15    

Non j'arrive sur la page d'accueil  
 
<?
    if (($_POST['entree'])=='parametre') {
 ?>
   <script language="JavaScript">
   
    function redirectionchamptexte(parametre)
    {
    window.location.replace("index.php?mod="+parametre+"&lang=fr" );
    return true;
    }
    </script>
  <?php
 }
 else
 {
    echo "Cette page n'existe pas";
 }
 ?>
    </head><body>
    <form name="formulairetest" action="" onSubmit="return redirectionchamptexte(entree.value)">
    <input type=text size=40 name="entree">
 <input type=submit value="envoi">
 </form>
 </body></html>
 

Reply

Marsh Posté le 19-10-2007 à 10:06:16    

Par contre je me rend compte que je ne me sert pas du booléen et qu'il doit pas être là pour rien  
Il devrait pas apparaitre dans le if ?
 

Reply

Marsh Posté le 19-10-2007 à 10:12:50    

eula vache d'accord .. bon alors on va reprendre tout ...  
voici ce que donnera ton code normalement  
pas besoin de php dans tout ce tointoin logiquement ..  
(tant que j'y pense, met ton code dans les balises code si possible :) )
voilla :  

Code :
  1. <html><head><title>Test</title></head><body>
  2. <form name="formulairetest" action="" onSubmit="javascript:window.location='index.php?mod='+entree.value+'&lang=fr'">
  3. <input type=text size=40 name="entree">
  4. <input type=submit value="envoi">
  5. </form>
  6. </body></html>


 
test déjà ça comme ça, on verra après pour tester si t'a page existe ...


Message édité par micfont999 le 19-10-2007 à 10:13:48
Reply

Marsh Posté le 19-10-2007 à 10:24:00    

autre code même problème :
 
<head>    
    <title>Référence</title>
   <script language="JavaScript">
   
    function redirectionchamptexte(parametre)
    {
    window.location.replace("index.php?mod="+parametre+"&lang=fr" );
    return true;
    }
    </script>
 </head>
  <html><body>
  <form name="formulairetest" action="" onSubmit="javascript:window.location='index.php?mod='+entree.value+'&lang=fr'">
  <input type=text size=40 name="entree">
  <input type=submit value="envoi">
  </form>
  </body></html>

Reply

Marsh Posté le 19-10-2007 à 10:31:32    

bon on va y aller progressivement :  

Code :
  1. <html><head><title>Test</title></head><body>
  2. <form name="formulairetest" action="" onSubmit="javascript:alert(entree.value)">
  3. <input type=text size=40 name="entree">
  4. <input type=submit value="envoi">
  5. </form>
  6. </body></html>

Reply

Marsh Posté le 19-10-2007 à 10:34:25    

ouaip mais à pert le nom de la fonction qu'est ce qui à changer ?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed