(résolu)redirection immédiate

redirection immédiate (résolu) - PHP - Programmation

Marsh Posté le 12-03-2008 à 17:24:56    

Salut à vous,
Je souhaite faire un site protégé par mot de passe en php , voilà le plan:
 
-login du visiteur avec mot de passe seulement (pas besoin de nom d'utilisateur)
-page (on va l'appeler affichage.php pour la bonne comprehension) qui fait: si pass correct, redirection vers A (la page A permet de mettre un cookie sur le visiteur), sinon redirection vers page B (message d'erreur)
 
Quand on rentre le pass sur la page de login, ça l'envoie à affichage.php, mais là je n'ai aucune redirection ... :s
Voilà le code de affichage.php:
 
<?php
 
if (isset($_POST['nb']))
{
 
 
if (mot de passe correct)
{
 
header('Location: A.php');
exit;
 
}
else
header('Location: B.php');
exit;
}
 
?>


Message édité par cybkiller le 12-03-2008 à 21:14:33
Reply

Marsh Posté le 12-03-2008 à 17:24:56   

Reply

Marsh Posté le 12-03-2008 à 18:01:53    

pas de message d'erreur?  
verifie qu'il n'y ait pas d'espace avant ton <? dans ton fichier php
 
sinon autant dire que cette méthode est tres obsolete mais bon...
 
 

Reply

Marsh Posté le 12-03-2008 à 18:03:29    

j'oubliai... tu es sur que ton $_POST['nb'] existe? tu peux regarder en faisant  
 
un  
?><pre>variable post : <? print_r($_POST) ?></pre><?  
 
juste au dessus de ton  if (isset($_POST['nb']))  

Reply

Marsh Posté le 12-03-2008 à 18:21:32    

La variable est bien transmise, un echo de la variable l'affiche correctement.
Dans mon code j'avais oublié quelques "}" , mais même après modification, ça ne marche pas :@
J'ai aussi fait gaffe à ne pas mettre de html avant la redirection.
Il y a du js plus bas dans la page, ça peut poser problème ?

 

Voilà mon code modifié:

 

<?php

 


if (isset($_POST['nb']))
{
$nb = $_POST['nb'];
Ici, un echo de la variable l'affiche sans problème.

 

if (pass correct)
{

echo 'ok';
le \\"ok\\" s'affiche
header('Location: url=A.php');

 

}
else
{
header('Location: url=B.php');
}
}
?>

 

ps: merci d'avoir répondu !


Message édité par cybkiller le 12-03-2008 à 18:23:46
Reply

Marsh Posté le 12-03-2008 à 18:44:16    

pas de url= dans ton header remet bien tes exit;  
enleve ton echo...
A.php se trouve bien dans le meme repertoire que cette page?

Reply

Marsh Posté le 12-03-2008 à 19:15:11    

J'ai enlevé les url et le echo, j'ai essayé de mettre des \\" à la place des ' , j'ai remis les exit; mais ça ne fait rien. On reste sur affichage.php, pas de redirection.Je déserpère ...edit: Voilà le code complet de ma page:

 

Code :
  1. <?php
  2. if (isset($_POST['nb']))
  3. {
  4. $nb = $_POST['nb'];
  5. ====================================
  6. Algorithme de décryptage du mot de passe codé
  7. ====================================
  8. if (round($nb,11) == $nb AND $nb <= un_nombre AND $nb >= un_autre_nombre)
  9. {
  10. header('Location: cookie.php');
  11. exit;
  12. }
  13. else
  14. {
  15. header('Location: err.php');
  16. exit;
  17. }
  18. }
  19. ?>
  20. ==================
  21. Fin du php, début du js
  22. ==================
  23. <script language=javascript>
  24. var is_ad_removed=false;
  25. if(!is_ad_removed && (top.document.body.clientWidth!=document.body.clientWidth || top.document.body.clientHeight!=document.body.clientHeight))
  26. {
  27. top.frames[1].location.href=\\"\\";
  28. var address=window.location;
  29. var s='<html><head><title>'+'</title></head>'+
  30. '<frameset cols=\\"*,0\\" frameborder=\\"0\\" border=\\"0\\" framespacing=\\"0\\" onload=\\"return true;\\" onunload=\\"return true;\\">'+
  31. '<frame src=\\"'+address+'?\\" name=\\"memberPage\\" scrolling=\\"auto\\" noresize>'+
  32. '<frame src=\\"\\" name=\\"LycosAdFrame\\" marginwidth=\\"0\\" marginheight=\\"0\\" scrolling=\\"auto\\" noresize>'+
  33. '</frameset>'+
  34. '</html>';
  35. top.document.write(s);
  36. }
  37. else
  38. {
  39. is_ad_removed=true;
  40. }
  41. </script>


Message édité par cybkiller le 12-03-2008 à 19:53:59
Reply

Marsh Posté le 12-03-2008 à 20:54:52    

Ca semble venir du serveur puisque en local avec WAMP, ça marche nickel.

Reply

Marsh Posté le 12-03-2008 à 21:14:13    

En fait lycos (mon hébergeur) semble interdire les fonctions header ...
Problème résolu avec du js. Voila le script:
 
Remplacer
 

  • header('Location: err.php');
  • exit;


par
 
echo "<script language='Javascript'>document.location='err.php'</script>";
 
Merci quand même !

Reply

Marsh Posté le 23-04-2013 à 11:01:47    

Hello,  
 
On peut utiliser ca aussi comme technique pour une redirection immédiate :  
 
http://forum.forumactif.com/t32778 [...] -immediate  
 
Bonne journée et à bientot  
 

Reply

Marsh Posté le 28-06-2013 à 11:37:48    

Faudrait arrêter de déterrer les topics
surtout pour proposer des solutions de merde :/


Message édité par gatsu35 le 28-06-2013 à 11:38:09

---------------
Blablaté par Harko
Reply

Sujets relatifs:

Leave a Replay

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