problème formulaire - PHP - Programmation
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').
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
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
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
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"
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';
Marsh Posté le 18-10-2007 à 16:45:19
Code :
|
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)
Marsh Posté le 18-10-2007 à 16:50:32
Code :
|
par exemple
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
Marsh Posté le 18-10-2007 à 17:08:37
ReplyMarsh 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
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à
Marsh Posté le 18-10-2007 à 17:15:02
Mafoncton c'est le nom de la fonction js ?
Et Monchampstexte c'est $ref?
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 :
|
pas besoin du javascript:
autant pour moi
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
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 :
|
voila analyse bien ce que je viens de te donner, je reviens demain moi, bonne soirée
Marsh Posté le 18-10-2007 à 17:38:42
C'est vraiment sympa je vais me débrouiller merci beaucoup
Marsh Posté le 18-10-2007 à 22:18:17
soju a écrit : avec le 'Location' c'est mieux : |
Oui merci de la précision ^^ J'avais oublié de le préciser
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
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
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 :
|
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
désolé il fallait que je donne ma petite touche de chianterie
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 //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')
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 :
|
on va y arriver hein, il te manquais juste un + avant parametre
Marsh Posté le 19-10-2007 à 09:40:09
Même erreur j'avais déjà mis les deux plus je comprend rien
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?
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 ?
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 :
|
c'est ça?
donne le code de ta page ça ira plus vite s'il te plais
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>
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 ?
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 :
|
test déjà ça comme ça, on verra après pour tester si t'a page existe ...
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>
Marsh Posté le 19-10-2007 à 10:31:32
bon on va y aller progressivement :
Code :
|
Marsh Posté le 19-10-2007 à 10:34:25
ouaip mais à pert le nom de la fonction qu'est ce qui à changer ?
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