Redirection

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Redirection

par tomypunk » 17 mars 2006, 12:33

tu envois pas déjà le header de ta page avant ?
avec des sessions par exemple ?
tu avais donc déja envoyer ton header !! :roll:

par ephemere » 17 mars 2006, 10:56

Avis à la population:
Il suffisait de mettre le code en haut de la page....En effet la fonction header() ne fonctionnera pas si quelque chose a déjà été envoyé au navigateur...en l'occurence du html !
Merci à Mario !

par tomypunk » 17 mars 2006, 10:24

J'ai essayé d'insérrer le bout de java script de la manière suivante mais il y a une erreur de syntaxe...si tu vois quoi...
if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;} 
elseif ($res['Fonction_user'] == 2)   {<SCRIPT LANGUAGE="JavaScript"> 
         document.location.href="http://www.google.fr" 
</SCRIPT >;}
elseif ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); } 
} 
else {  echo 'Login inconnu'; 

} 
Et ma requète est bonne c'est sur!
En tout cas merci d'essayer jazzfinder ! :wink:
pour le javascript essaye plutôt comme ça :
if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;} 
elseif ($res['Fonction_user'] == 2)   {echo "<SCRIPT LANGUAGE="JavaScript"> 
         document.location.href="http://www.google.fr" 
</SCRIPT >";}
elseif ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); } 
} 
else {  echo 'Login inconnu'; 

} 

par ephemere » 16 mars 2006, 15:21

J'ai essayé d'insérrer le bout de java script de la manière suivante mais il y a une erreur de syntaxe...si tu vois quoi...
if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;} 
elseif ($res['Fonction_user'] == 2)   {<SCRIPT LANGUAGE="JavaScript"> 
         document.location.href="http://www.google.fr" 
</SCRIPT >;}
elseif ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); } 
} 
else {  echo 'Login inconnu'; 

} 
Et ma requète est bonne c'est sur!
En tout cas merci d'essayer jazzfinder ! :wink:

par JazzFinder » 16 mars 2006, 15:08

---

par tomypunk » 16 mars 2006, 14:56

Alors déjà la combinaison if/elseif/else me donne une erreur. Sinon les guillemets ne changent rien puisque la récupération de la valeur de Fonction_user fonctionne déjà très bien....j'ai vraiment l'impression que le problème vient de header alors que je suis (quasi)sur que la syntaxe et bonne..
Y a pas certain cas ou il faut pas l'utiliser? ou peut être qu'en essayant une fonction équivalente...mais alors laquelle? :? :? :?
tu peux faire ta redirection en javascript comme ça en utilisant le code :

Code : Tout sélectionner

<SCRIPT LANGUAGE="JavaScript"> document.location.href="adr_de_la_page" </SCRIPT>

par ephemere » 16 mars 2006, 14:37

Alors déjà la combinaison if/elseif/else me donne une erreur. Sinon les guillemets ne changent rien puisque la récupération de la valeur de Fonction_user fonctionne déjà très bien....j'ai vraiment l'impression que le problème vient de header alors que je suis (quasi)sur que la syntaxe et bonne..
Y a pas certain cas ou il faut pas l'utiliser? ou peut être qu'en essayant une fonction équivalente...mais alors laquelle? :? :? :?

par tomypunk » 16 mars 2006, 14:22

et si tu essayais un truc comme ça :
$sql = "SELECT Login_user, Password_user, Fonction_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'";
$req = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($req) == "1") {
$res=mysql_fetch_assoc($req);

if ($res['Fonction_user'] == "1")  {  echo 'Bienvenue '.$login;}
elseif ($res['Fonction_user'] == "2")   {header ("Location: http://www.google.fr");}
else ($res['Fonction_user'] == "3"){ header ("Location: http://www.google.fr"); }
}
else {  echo 'Login inconnu';

} 

par ephemere » 16 mars 2006, 14:20

j'ai changé mais ça ne change rien, ce qui est logique puisque au risque de me répéter le echo fonctionne bien!
j'ai testé 20 000 fois le problème ne vient pas de $res["fonction_user"]

par JazzFinder » 16 mars 2006, 13:44

---

par tomypunk » 16 mars 2006, 13:32

dans ta base de donnée ils sont stocké dans koi tes numéro ?

par ephemere » 16 mars 2006, 13:16

rien à faire c'est pareil....
comme je l'avais déjà dit "si je met deux elseif y a plus d'erreur de syntaxe mais rien ne se passe"...j'avais déjà testé

par tomypunk » 16 mars 2006, 13:01

Alors là il me prend pas le else (après le elseif)...et si je met deux elseif y a plus d'erreur de syntaxe mais rien ne se passe...il me renvoi sur la même page comme si de rien était...je vous envoi le bout de code plus complet on sais jamais...
$sql = "SELECT Login_user, Password_user, Fonction_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'";
$req = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($req) == 1) { 
$res=mysql_fetch_assoc($req);

if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;}
elseif ($res['Fonction_user'] == 2)   {header ("Location: http://www.google.fr");}
else ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); }
} 
else {  echo 'Login inconnu';

} 

?>
PS: le echo marche toujours aussi bien...
essaye comme ça :
$sql = "SELECT Login_user, Password_user, Fonction_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'";
$req = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($req) == 1) { 
$res=mysql_fetch_assoc($req);

if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;}
elseif ($res['Fonction_user'] == 2)   {header ("Location: http://www.google.fr");}
elseif ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); }
} 
else {  echo 'Login inconnu';

} 

?>
on peut pas mettre de condition pour un simple else !!!

par ephemere » 16 mars 2006, 12:55

Alors là il me prend pas le else (après le elseif)...et si je met deux elseif y a plus d'erreur de syntaxe mais rien ne se passe...il me renvoi sur la même page comme si de rien était...je vous envoi le bout de code plus complet on sais jamais...
$sql = "SELECT Login_user, Password_user, Fonction_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'";
$req = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($req) == 1) { 
$res=mysql_fetch_assoc($req);

if ($res['Fonction_user'] == 1)  {  echo 'Bienvenue '.$login;}
elseif ($res['Fonction_user'] == 2)   {header ("Location: http://www.google.fr");}
else ($res['Fonction_user'] == 3){ header ("Location: http://www.google.fr"); }
} 
else {  echo 'Login inconnu';

} 

?>
PS: le echo marche toujours aussi bien...

par JazzFinder » 16 mars 2006, 12:33

---