acceder a une page en fonction dun champ

acceder a une page en fonction dun champ - PHP - Programmation

Marsh Posté le 26-04-2005 à 11:28:41    

bonjour a tous
 
jai un petit soucis  
jai un champ "nom" qui est demander  
si on met saada je voudrai aller a la page esai.php  
sinon aller a la page esai1.php
 
pour mieux comprend je vous donne mon code qui ne marche pas
 
// jesaye de tester si saada a ete entrer pour le nom
 
<?php
if (preg_match("!saada!" ,"$_POST['{login_Name}']" ))
{
echo '<form method="post" action="esai.php">';
}
elseif(!preg_match("!saada!" ,"$_POST['{login_Name}']" ))
{
echo'<form method="post" action="esai1.php">';
}
?>
 
 
<form method="post" action="esai.php" >  
 
// facon dont est rempli mon champ nom
 
<tr>
<font face="Tahoma" size="2"><b>Nom</b></font>
<font face="Tahoma" size="2"><input style="FONT-FAMILY: Tahoma" name="{login_Name}">&nbsp;</font>
</tr>
 
 
 
<input type="submit" value="validation" />
 
</form>  
 
merci pour votre aide :)

Reply

Marsh Posté le 26-04-2005 à 11:28:41   

Reply

Marsh Posté le 26-04-2005 à 11:30:12    

Je pige pas. Suivant la valeur, tu fais un echo d'un élément <form> avec une action différente :??:

Reply

Marsh Posté le 26-04-2005 à 11:33:55    

oui en fonction du resultat dans name="{login_Name}"
 c'est a dire la valeur entrer par lutilisateur
je souhaiterai ouvrir une page php  
celle est diffenrente suivant si on entre saada ou autre chose
 
je sais pas si ta mieux compris
 
merci
 

Reply

Marsh Posté le 26-04-2005 à 11:50:51    

jai essayer un autre truc mais sa ne marche toujours pas
cette fois ci je n'accede a aucune page  
 
voici mon code
 
<?php
 
// la vérification doit etre faite avant tout affichage !
 
if ( isset($_POST['login_name']) )
{
if (preg_match("!^saada$!" , $_POST['login_name'] ))
{
header("Location: /esai.php" );
}
else
{
header("Location:  /esai1.php" );
}
}
 
// mon formulaire  
 
<form method="post" action="" >
<font face="Tahoma" size="2"><b>Nom</b></font>
<font face="Tahoma" size="2"><input style="FONT-FAMILY: Tahoma" name="login_name">&nbsp;</font>
 
<input type="submit" value="validation" />
 
</form>  
 
?>
 
merci ci vous pouviez maider

Reply

Marsh Posté le 26-04-2005 à 11:56:01    

à la place de preg_match, un $_POST['login_name'] != "saada" fonctionne aussi normalement
sinon, test bien ta value de $_POST['login_name'] et place des echo dans tes if pour verifier dans quel cas il passe dans tes conditions

Reply

Marsh Posté le 26-04-2005 à 12:09:40    

jai fait comme tu me la conseiler mais  
mais mes echo ne marche pas  
 
if ( isset($_POST['login_name']) )
{
if ($_POST['login_name'] == "saada" )
{
 
echo'c bon';
}
else
{  
 
echo 'incorrect';
}
}
 
cela est du a koi??
car il ne rentre meme pas dedans
 
merci

Reply

Marsh Posté le 26-04-2005 à 12:12:57    

Déjà le ?> est situé après le </form>, alors qu'il devrait être avant le <form>

Reply

Marsh Posté le 26-04-2005 à 12:14:52    

si aucun echo ne marche, alors ton if ( isset($_POST['login_name']) )  est faux. A toi de voir pourquoi (ou alors montre nous ce qui se passe au dessus)

Reply

Marsh Posté le 26-04-2005 à 12:26:39    

je pense quil y a un probleme au niveau du login_name
du  
if ( isset($_POST['login_name']) )  
 
mais je ne voi pas comment je pourai faire pour pour tester la valeur entrer dans le champs nom
 
<font face="Tahoma" size="2"><input style="FONT-FAMILY: Tahoma" name="{login_Name}">&nbsp;</font>  
 
merci
 

Reply

Marsh Posté le 26-04-2005 à 12:30:18    

Bon, on va dire que ton fichier est nommé 'pouet.php'. Faudrait qu'il ressemble à ça :

<?php
   
  if(isset($_POST['login_name']) && $_POST['login_name'] == 'saada') {
   
    header('Location: /esai.php');
 
  } else {
 
    header('Location:  /esai1.php');
 
  }
?>
 
<form method="post" action="pouet.php" >
  <div>
    <label for="login">Nom</label><input name="login_name" id="login" type="text" />
    <input type="submit" value="Validation" />
  </div>
</form>


 
Et vire toutes ces <font> dégueulasses... C'est encore incroyable qu'en 2005 il y ait des gens qui utilisent encore ça :(

Reply

Marsh Posté le 26-04-2005 à 12:30:18   

Reply

Marsh Posté le 26-04-2005 à 12:57:28    

je ne souhaite pas que cela me telecharge un fichier !!
jeveux juste une redirection de page
 
en faisant ce que tu viens de me donner jaccede uniquement a la page donner dans action
 
et les conditions du if ne sont pas pris en compte
 
je suis en train dapprendre le php
afin de créer un site pour mon stage
je sui donc debutante
 
merci pour votre aide

Reply

Marsh Posté le 26-04-2005 à 13:50:07    


 
serait-il donc une femme ?? :) miam miam ! ;-)
 
reprenons :
Est-ce que ton formulaire est sur la meme page que tes if ??
verifie avec print_r($_POST) ce que tu as dans tes variables.
quel est ta verssion de php ?

Reply

Marsh Posté le 26-04-2005 à 13:58:45    

miam miam1 a écrit :

je ne souhaite pas que cela me telecharge un fichier !!
jeveux juste une redirection de page


C'est ce que j'ai proposé, ça redirige suivant le test
 

miam miam1 a écrit :

en faisant ce que tu viens de me donner jaccede uniquement a la page donner dans action


T'as pas dû tout lire. La page donnée par action est la page où tu doit mettre mon script, donc elle s'auto-appelle, et donc rentre dans le test
 

miam miam1 a écrit :

et les conditions du if ne sont pas pris en compte


T'as PHP d'installé au moins ? :heink:

Reply

Marsh Posté le 26-04-2005 à 14:22:24    

FlorentG a écrit :

Bon, on va dire que ton fichier est nommé 'pouet.php'. Faudrait qu'il ressemble à ça :

<?php
   
  if(isset($_POST['login_name']) && $_POST['login_name'] == 'saada') {
   
    header('Location: /esai.php');
 
  } else {
 
    header('Location:  /esai1.php');
 
  }
?>
 
<form method="post" action="pouet.php" >
  <div>
    <label for="login">Nom</label><input name="login_name" id="login" type="text" />
    <input type="submit" value="Validation" />
  </div>
</form>


 
Et vire toutes ces <font> dégueulasses... C'est encore incroyable qu'en 2005 il y ait des gens qui utilisent encore ça :(


je ferait plutot comme ca...
 

<?php
   
  if(isset($_POST['login_name']))
  {
    if($_POST['login_name'] == 'saada')
      header('Location: /esai.php');
    else
      header('Location:  /esai1.php');
  }
?>
 
<form method="post" action="<?php echo __FILE__; ?>" >
  <div>
    <label for="login">Nom</label><input name="login_name" id="login" type="text" />
    <input type="submit" value="Validation" />
  </div>
</form>


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-04-2005 à 14:25:46    

KangOl a écrit :

je ferait plutot comme ca...
 
[...]


 
en thérie, le compilo test d'abord le premier test et si il réussi et seulement si, test le second, donc, c'est la meme chose.

Reply

Marsh Posté le 26-04-2005 à 14:26:20    

KangOl a écrit :

je ferait plutot comme ca...
 

<?php
   
  if(isset($_POST['login_name']))
  {
    if($_POST['login_name'] == 'saada')
      header('Location: /esai.php');
    else
      header('Location:  /esai1.php');
  }
?>
 
<form method="post" action="<?php echo __FILE__; ?>" >
  <div>
    <label for="login">Nom</label><input name="login_name" id="login" type="text" />
    <input type="submit" value="Validation" />
  </div>
</form>



C'est pas bien de virer les accolades :o ;) :D

Reply

Marsh Posté le 26-04-2005 à 14:31:03    

on peut les ommettre comme ça les accolades comme à fait KangOl?  :??:

Reply

Marsh Posté le 26-04-2005 à 14:33:03    

Ouais on peu. Mais moi j'aime pas. Je préfère foutre des accolades partout pour bien piger la structure. Sinon si tu regardes de loin, tu sais pas trop d'où sort l'accolade après le deuxième header :D Et si un jour t'as un rajout à faire, bah faudra les taper, donc autant les mettre tout de suite. Ca porte même un nom, la "full bracketed syntax" :sol:

Reply

Marsh Posté le 26-04-2005 à 14:35:55    

jutilise easyphp 1.8
 
et notepad++ pour les script
 

Reply

Marsh Posté le 26-04-2005 à 14:36:36    

Et donc un  

print_r($_POST)


Ne donne rien ?

Reply

Marsh Posté le 26-04-2005 à 14:36:37    

pour ca, suffit de bien indenté le code... (vive python !!!)


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-04-2005 à 14:37:12    

KangOl a écrit :

pour ca, suffit de bien indenté le code... (vive python !!!)


C'est pas une question d'indentation, mais de convention de codage et quelques trucs en plus :)

Reply

Marsh Posté le 26-04-2005 à 14:40:20    

FlorentG a écrit :

Ca porte même un nom, la "full bracketed syntax"


oooooh stäääyyyyÿÿÿÿÿle.  :sol:  
mwep, je me disais bien qu'il devait heriter ça d'un autre langage KangOl, python.  :jap:  

Reply

Marsh Posté le 26-04-2005 à 15:26:13    

non le print_r($_POST) ne donne rien

Reply

Marsh Posté le 26-04-2005 à 15:27:25    

Tu ouvres de quelles manière ta page dans ton navigateur ? En double-cliquant dessus, ou en faisant : http://localhost/page.php ?

Reply

Marsh Posté le 26-04-2005 à 15:30:13    

Reply

Marsh Posté le 26-04-2005 à 15:30:59    

okok donc ça c'est bon... Php est-il bien installé ? Quand tu fais Affichage\source, est-ce que tu vois le code PHP ?

Reply

Marsh Posté le 26-04-2005 à 15:33:43    

je voi une erreur
 
<br />
<b>Parse error</b>:  parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in <b>c:\program files\easyphp1-8\www\testmoi\esai2.php</b> on line <b>11</b><br />

Reply

Marsh Posté le 26-04-2005 à 15:35:07    

ah voilà :D Erreur de syntaxe ligne 11

Reply

Marsh Posté le 26-04-2005 à 15:37:53    

oui mais cette erreur vient de ton print_r($POST)

Reply

Marsh Posté le 26-04-2005 à 15:39:12    

sinon jai un warning
 
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\testmoi\esai2.php:3) in c:\program files\easyphp1-8\www\testmoi\esai2.php on line 12
 :)
mais alors la je pige pas
 

Reply

Marsh Posté le 26-04-2005 à 15:54:57    

Parce qu'il y a déjà des trucs avant l'appelle de header. Il ne faut rien du tout (pas de echo, pas d'html, rien)

Reply

Marsh Posté le 26-04-2005 à 15:55:21    

Erreur classique avec les headers, il ne faut pas que du contenu soit déjà envoyé sur la page pour pouvoir appeler header.

Reply

Marsh Posté le 26-04-2005 à 15:57:21    

Sinon ce que tu fais, tu mets ton code PHP dans un autre fichier qui fait juste les traitements et qui redirige ensuite.

Reply

Marsh Posté le 26-04-2005 à 16:01:08    

a part sa jai rien dautre  
jai pas de echo ou autre
 
 
 
<?php  
   
  if(isset($_POST['login_name']))  
  {  
    if($_POST['login_name'] == 'saada')  
      header('Location: /esai.php');  
    else  
      header('Location:  /esai1.php');  
  }  
?>

Reply

Marsh Posté le 26-04-2005 à 16:03:48    

non rien d'autre

Reply

Marsh Posté le 27-04-2005 à 09:35:08    

tu peux rexpliquer ce qui doit se passer exactement lorsque l'on va sur  
http://127.0.0.1/testmoi/esai2.php ??
 
Car je crois que y'a un truc que j'ai pas piger.
si j'ai bien compris, lorsque l'on va sur cette page, un formulaire apparait. on tape qqchose et donc on recharge la meme page qui elle meme redirige ailleurs, c'est ca ?
 
pour le prob de header, le debut du fichier doit etre <?php
meme pas un espace, pas une tabultation, rien avant.
 
Si tu as rien dans $_POST c'est que tu n'as rien poster. essai un GET, c'est pareil sauf que ca met les champs dans l'url et que tu les recupere dans $_GET :)

Reply

Marsh Posté le 27-04-2005 à 09:40:30    

je viens d'essayer ta page, et chez moi, cela fonctionne
par contre, je ne metterais pas __FILE__ parce que c'est une macro d'un chemin complet. par exemple chez moi, __FILE__ vaut "/amd/home/soda/norky/www/test.cgi"
alors, qu'il devrait plutot valoir /test.cgi
 
A+

Reply

Marsh Posté le 27-04-2005 à 09:46:29    

oui c bien sa
elle nous redirige vers une nouvelle page
 
jevais essayer avec get
merci

Reply

Marsh Posté le 27-04-2005 à 09:52:12    

en faite ce que je doit faire  c  
 me connecter a ma base sql server  
et utiliser les informations sur le nom qui est dans ma base  
afin de valider ou non la connection  
 
jai essayer ce bout de code masi sa ne marche pas  
 
 
 
<?
 
// parametre perso
$dsn="sqlserver";
$username="sa";
$password="pwd";
 
//connection
$sqlconnect=odbc_connect($dsn,$username,$password);
$sqlquery="SELECT nom FROM utilisateur;";
$process=odbc_exec($sqlconnect, $sqlquery);
 
// recuperation des infos
$result = false;
 
while(odbc_fetch_row($process))
{
$nom= odbc_result($process,"nom" );
 
 if($_GET['login_name'] == $nom)
 {
 $result = true;
  elseif(isset($_GET['login_name']!= $nom))
  {
  $result = false;
  }
 }
}
if ($result == true)
{
Header("Location: http://127.0.0.1/testmoi/essai3.html" );
echo ' connection effectuer avec succes';
exit;
}
 
odbc_close($sqlconnect);
?>
 
 
 
ilme dis quil y a une erreur sur le elseif masi pourquoi??
merci
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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