Page 1 sur 2

boucle de redirection

Posté : 28 juin 2014, 17:40
par genesis17
Salut tout le monde. Voilà, j'ai une page d'index que j'ai mis sous filezilla et un hébergeur mais quand je lance la page, elle me dit qu'elle ne peut pas charger car elle contient une boucle de redirection. Le site du jeu (car c'est la page d'index d'un jeu en PHP) est : http://cycareer-evolution.olympe.in/
Le code php est :
<?php
session_start();
if( $_SERVER['HTTP_HOST'] == "cycareer-evolution.olympe.in")
{
header('location: http://cycareer-evolution.olympe.in/');
}
if( $_SERVER['HTTP_HOST'] == "cycareer.fr")
{
header('location: http://www.cycareer.fr/');
}
if($_GET['path'] != NULL AND $_SESSION['pseudo'] == NULL AND $_GET['path'] != 'inscription' &&$_GET['path'] != 'insc' AND $_GET['path']!='equipe' && $_GET['path']!='charte' AND $_GET['path']!='connexion3'AND $_GET['path']!='regle')
{
header('location:index.php');
echo '<META HTTP-EQUIV="Refresh" CONTENT="3; URL=index.php">';
}
if($_SESSION['pseudo'] == NULL)
{
if($_SESSION['langue'] == NULL)
{

$langue = $_SERVER['HTTP_ACCEPT_LANGUAGE']; // On cherche la langue du navigateur
 $langue = $langue[0].$langue[1]; // On ne retourne que les deux premières lettres
 if($langue != 'fr' AND $langue != 'en')
 {
 $langue='en'; 
 }
 //$date_expiration = time() + 365*24*3600; // Allez, soyons fou, un an !
 //setcookie('langue', $langue, $date_expiration); // On enregistre le cookie

  // Alors là, deux solutions...
  // 1 - On recharge la page : header('location: index.php');
  // 2 - On s'occupe des infos, simple copier/coller du dessus :


 $_SESSION['langue'] = $langue;

 }
 }

 //============================================================
 //Arreter le site en cas de bug/maintenance

 //===========================================================

//===============================================
//Système de langue et d'inclusion par r0seBa et APAN seulement pour cycareer !!!
//===============================================
//Ne pas oublier de mettre le session_start()

//Inclusion du fichier contenant les identifiants de connexion &agrave la base de donn&eacute;es.
require("config.inc.php");


//Connexion &agrave la base de donn&eacute;es.
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);


include('includes/index_requetes.php');




if($_GET['path'] == NULL AND $_SESSION['pseudo'] == NULL)
{
$page = 'index';
include('langue_index.php');

}
elseif($_GET['path'] == NULL AND $_SESSION['pseudo'] != NULL)
{
$page = 'accueil';
include('langue.php');
}
else
{
$pagea = mysql_real_escape_string($_GET['path']);//On fait gaffe aux injections
$page = htmlentities($pagea);//Et les failles XSS alors ?
include('langue.php');
}


$filename = '/corps/'.$page.'.php';
/*
if (file_exists($filename)) {
    echo "Le fichier $filename existe pas.";

}else{
echo 'existe po';
}*/


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo LANGUE; ?>" >




<head>


<title><?php echo $titre;?></title>

<?php include('includes/meta2.php');?>
<?php
//Fichier CSS pour les pages de classement
if($page== 'cci' || $page == 'cci_2' || $page == 'classement' || $page == 'classement_perso' || $page == 'co_classement' || $page == 'ce_classement' || $page=='division' || $page=='cl' || $page=='chercher'|| $page=='compare')
{
include('includes/classement_css.php');
}

//Fichier CSS pour les pages des forums officiels
if($page== 'forum' || $page=='voirforum' || $page=='voirsousforum' || $page=='voirtopic' || $page == 'topic' || $page=='post' || $page=='f_edit'  || $page=='repondre' || $page=='postok')
{
include('includes/css/forum_css.php');
include('bbcode.php');
include('corps/code.php');
include('corps/couleur_enligne.php');

}
if($page=='creer_course')
{
include('corps/code.php');
}
//FOnction qui permet de v&eacute;rifier le pseudo
if($page == 'inscription')
{
include('includes/js/insc_verif.php');
}
if($page == 'ligue_admin_calendrier')
{
include('includes/include_ligue_admin_calen.php');
}
if($page == 'ligue_inscri')
{
include('includes/include_ligue_inscri.php');
}
if($page == 'testotrain')
{
include('includes/traintesto_css.php');
}
if($page == 'infoc')
{
include('includes/infoce.php');
}
if($page == 'accueil')
{
include('includes/css/accueil_css.php');
}
if($page == 'calen')
{
include('includes/css/calen_css.php');
}
if($page=='stage')
{
include('includes/js/stage_js.php');
}
if($page == 'equip')
{
include('includes/equip.php');
}
if($page == 'equipements')
{
?>
<style type="text/css">
#equip table, td, tr{
border: 1px dotted blue;
border-collapse:collapse;
padding: 4px;
}
/****
		STYLES DE LA BOITE DE SUGGESTION
****/
.texte{
width:350px;
border:1px #aaa solid;}

	#ac {
		position: absolute;
		left: 30px;
		margin: 10px 0px 0px 0px;
		width: 200px;
		background-color: #212427;
		-moz-border-radius: 7px;
		-webkit-border-radius: 7px;
		border:1px solid orange;	
		color: #fff;
		text-align:left;
	}
	
	#ac {
		margin: 0px;
		padding: 0px;
	}
	
	#ac li {
		
		margin: 0px 0px 3px 0px;
		padding: 3px;
		cursor: pointer;
		list-style:none;
		padding-left:0px;
		text-align:left;
	}
	
	#ac li:hover {
		background-color: #ffa800;
		color:#000;
	}

</style>
<?php
}

//include('includes/cate.php');
function dirigeant_acces($session, $equipe,$degre)
{
$pseudo = $_SESSION['pseudo'];
$result = mysql_query("SELECT idt,pseudo FROM joueur WHERE pseudo='".$pseudo."'");
$joueur = mysql_fetch_array($result);

if($joueur['idt'] != $equipe)
{
	echo 'Erreur';
	exit();
}
$popm = mysql_query("SELECT * FROM equipe_perso WHERE id=$equipe");
$unt = mysql_fetch_array($popm);

$pseuda = $joueur['pseudo'];
if($degre == 1)
{//Si c'est que pour le dirigeant
	if($unt['dirigeant'] != $pseuda)
	{
	echo 'Vous navez pas les droits';
	exit();
	}
}elseif($degre == 2)
{
	$diri = mysql_query("SELECT COUNT(*) AS oui FROM dirigeant WHERE nom='".$pseuda."' AND type='sd' AND idt=$equipe");
	$non = mysql_fetch_array($diri);
	if($unt['dirigeant'] != $pseuda && $non['oui'] != 1)
	{
	echo 'Vous navez pas les droits';
	exit();
	}
	
}elseif($degre==3)
{
	$diri = mysql_query("SELECT COUNT(*) AS oui FROM dirigeant WHERE nom='".$pseuda."' AND type='sd' AND idt=$equipe");
	$non = mysql_fetch_array($diri);
	$diria = mysql_query("SELECT COUNT(*) AS ouia FROM dirigeant WHERE nom='".$pseuda."' AND type='recrut' AND idt=$equipe");
	$nona = mysql_fetch_array($diria);
	if($unt['dirigeant'] != $pseuda && $non['oui'] != 1 && $nona['ouia'] != 1)
{
	echo 'Vous navez pas les droits';
	exit();	
}
	
}elseif($degre==4)
{//Sous dirigeant mais avec 1
	$diri = mysql_query("SELECT COUNT(*) AS oui FROM dirigeant WHERE nom='".$pseuda."' AND type='sd' AND idt=$equipe");
	$non = mysql_fetch_array($diri);
	$diria = mysql_query("SELECT COUNT(*) AS ouia FROM dirigeant WHERE nom='".$pseuda."' AND type='recrut' AND idt=$equipe");
	$nona = mysql_fetch_array($diria);
	if($unt['dirigeant'] != $pseuda && $non['oui'] != 1 && $nona['ouia'] != 1)
{
$hop=0;	
}else{
	$hop = 1;
}
	
return $hop;
	
}

}//Fin de la fonction
					  


//Couleur des notes
function couleur($x)
{
if($x >= 50 AND $x < 55)
{
echo '<font color="#00A58F">'.$x.'</font>';
}elseif($x >= 55 AND $x < 60)
{
echo '<font color="#003DA5">'.$x.'</font>';
}elseif($x >= 60 AND $x < 70)
{
echo '<font color="#6B00D5">'.$x.'</font>';
}elseif($x >= 70 AND $x < 85)
{
echo '<font color="#00137F">'.$x.'</font>';
}elseif($x >= 85 AND $x < 100)
{
echo '<font color="#E2009E">'.$x.'</font>';
}
elseif($x >= 100 AND $x < 125)
{
echo '<font color="#00E217">'.$x.'</font>';
}
elseif($x >= 125 AND $x < 145)
{
echo '<font color="#E27100">'.$x.'</font>';
}
elseif($x >= 145)
{
echo '<font color="#000000">'.$x.'</font>';
}


}

//entrainement en cours?
if($_GET['path'] == 'pt')
{
include('includes/pta.php');
}
//

//Javascript pour info_course
if($page == 'info_course')
{
include('includes/ic.php');
}
//

//Javascript pour les tactiques
if($page == 'tact' || $page == 'pritact')
{
include('includes/tata.php');
}
//


//Javascript pour pas inscrire plus de 6 coureurs
if($page == 'inscriptions_2')
{
include('includes/inscriptions2.php');
}

//Javascript pour le calendrier
if($page == 'cal')
{
include('includes/cala.php');
}
//
//Javascript pour les règles
if($page == 'regle')
{
include('includes/regle.php');
}
//
//Javascript pour les règles
if($page == 'boutique')
{
include('includes/js/boutique_js.php');
}
//
//Pour l'inactivit&eacute;:
include('corps/inactif.php');
//?>
<script type="text/javascript">
/*function point_it(event){

	pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft;
	pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop;
	
	document.getElementById("cross").style.left = (pos_x-1) ;
	document.getElementById("cross").style.top = (pos_y-15) ;
	document.pointform.form_x.value = pos_x;
	document.pointform.form_y.value = pos_y;
	if(pos_x > 61 && pos_x<587)
	{
	document.getElementById("cross").style.visibility = "visible" ;
	
	}else{
	document.getElementById("cross").style.visibility = "hidden" ;
	}
}*/
function compZero(nombre) {
	var variable;
	if (nombre == 9 || nombre == 8 || nombre == 7 || nombre == 6 || nombre == 5 || nombre == 4 || nombre == 3 ||nombre == 2 || nombre == 1 || nombre == 0)
	{
		variable = '0'+nombre;
	}else{
		variable = nombre;
	}
    return variable;
}

function date_heure() {
    const infos = new Date();


    //Date
    const mois = new Array('Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
    const jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    document.getElementById('date_heure').innerHTML = '' + jours[infos.getDay()] + ' ' + infos.getDate() + ' ' + mois[infos.getMonth()] + ' ' + infos.getFullYear() + '';
	
	    //Heure
    document.getElementById('date_heure').innerHTML += '    ' + compZero(infos.getHours()) + ':' + compZero(infos.getMinutes()) + ':' + compZero(infos.getSeconds());

}

window.onload = function() {
   setInterval("date_heure()", 1000); //Actualisation de l'heure
};

//Auto compl&eacute;ition:
function ac()
{ 
var texte = document.getElementById("texte").value;
var obj = document.getElementById("ac");
var xhr; 
try{
   xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
  xhr = new XMLHttpRequest();
}
xhr.onreadystatechange  = function(){ 
  if(xhr.readyState  == 4){
    if(xhr.status  == 200){
      obj.innerHTML = xhr.responseText;
      if(xhr.responseText == ""){
        obj.style.display = "none";
      }
      else{
        obj.style.display = "block";
      }
    }
  }
};

xhr.open("GET", "includes/ajax_comple.php?var=" + texte,  true);
xhr.send(null); 
if(texte == ""){
  obj.style.display = "none";
}
}

//Fin de l'auto compl&eacute;ition

</script>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-31051369-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
<script type="text/javascript" src="http://c.ad6media.fr/l.js"></script>

</head>
<?php
if($page == 'pt')
{
echo '<body onload="Init();">';
}
else{
echo'<body>';
}

if($page== 'forum' || $page=='voirforum' || $page=='voirtopic')
{
include('includes/online.php');

}
?>



	




<?php
$now = time();



if($_SESSION['pseudo']!= NULL || $page == 'equipe' || $page == 'inscription' || $page == 'insc' || $page=='charte' || $page=='connexion3'|| $page=='regle')
{
?>

<div id="header">
<?php include('includes/design/head.php');?>
</div>
<div class="pub">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2338748590749942";
/* Actu-web */
google_ad_slot = "6455870815";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

<div class="haut"><div id="date_heure" align="left"><?php echo date("H:i:s", $now);?></div></div>

<div id="conteneur"><br />
<div class="menu">
<?php include('includes/design/menue.php');?>
</div>

<div class="corps">

<?php include('corps/'.$page.'.php');?>
<br /><br /><br /><br />

</div>

</div>


<div class="bas"></div>



 
<div id="foot">
<?php include('includes/design/foot.php');?>
</div>

<?php
}
else
{
?>
<div id="header">
<?php include('includes/design/head.php');?>
</div>

<div class="haut"><div id="date_heure" align="left"><?php echo date("H:i:s", $now);?></div></div>

<div id="conteneur"><br />
<div class="menu">
<?php include('includes/design/menue.php');?>
</div>

<div class="corps">



<div align="center"><p class="titreprinci"><?php echo $welcome;?></p></div>

<p id="newstexta"><i>Dans le nouveau <b>Cycareer</b>, vous devrez créer votre coureur, l'entraîner et faire de lui une légende.
</p>		

<br />&nbsp;<br />
<div align="center"><p class="titreprinci">Dernières News</p></div>

<?php
$lange = $_SESSION['langue'];

$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 3');
$a = 0;
while ($donnees = mysql_fetch_array($retour))
{
$a++;
$now_dayza = $donnees['timestamp'];
$now = time();
$day =  $now;
if(($day - $now_dayza) < 604800 AND $a == 1)
{
$vara = 'i';
}else{
$vara = '';
}
?>
<table width="100%">
<tr>
<td width="80%" style="text-align:left;">
<p class="newstitre<?php echo $vara;?>"><strong><?php echo stripslashes($donnees['titre_'.$lange.'']); ?></strong>
</p>
</td>
<td style="text-align:right;" width="20%">
<p class="date_news"><?php echo date('d/m/Y', $donnees['timestamp']); ?></p>
</td>
</tr>
</table>


    <p class="newstext<?php echo $vara;?>">
    <?php
	
    // On enlève les &eacute;ventuels antislash PUIS on cr&eacute;e les entr&eacute;es en HTML (<br />)
    $contenu = nl2br(stripslashes($donnees['contenu_'.$lange.'']));
    echo $contenu;
    ?>    </p><br /><div class="fin_news" align="center" width="70%"></div>

<?php
} // Fin de la boucle des news
?>


</div>
</div>


<div id="foot">
<?php include('includes/design/foot.php');?>
</div>
<?php
}
?>
</body></html>
Merci à ceux qui m'aideront, j'espère que je pourrais m'en sortir là-dedans :)

Re: boucle de redirection

Posté : 28 juin 2014, 18:20
par Elie
Bah déjà c'est bien il te dit le problème.
Met des echo 'La redirection est là"; exit(); a la place des header() pour comprend ou est-ce que cela cloche.

Apres j'aime pas trop ton code
if($_GET['path'] != NULL AND $_SESSION['pseudo'] == NULL AND $_GET['path'] != 'inscription' &&$_GET['path'] != 'insc' AND $_GET['path']!='equipe' && $_GET['path']!='charte' AND $_GET['path']!='connexion3'AND $_GET['path']!='regle')
{
header('location:index.php');
echo '<META HTTP-EQUIV="Refresh" CONTENT="3; URL=index.php">';
}
Le header et le meta font la meme chose ... Et je trouve ta conditon un peu chaud et je mettrais des () un peu partout ... et remplacerai tes AND par des &&
if(($_GET['path'] != NULL) && ($_SESSION['pseudo'] == NULL) && ($_GET['path'] != 'inscription') && ($_GET['path'] != 'insc') && ($_GET['path']!='equipe') && ($_GET['path']!='charte') && ($_GET['path']!='connexion3') && ($_GET['path']!='regle'))
Meme si c'est pas beaucoup plus clair son utilité.

Re: boucle de redirection

Posté : 28 juin 2014, 18:36
par genesis17
Alors tout d'abord, merci pour cette réponse rapide, je n'attendais pas mieux. J'ai pris le bout de code que tu m'as passé. J'ai aussi remplacé les header() par des exit()
Quand je mets
exit('location: http://cycareer-evolution.olympe.in/');
j'obtiens le message :
location: http://cycareer-evolution.olympe.in/

Quand je mets
exit('location: http://www.cycareer.fr/');
je tombe sur une boucle de redirection

Maintenant je ne sais pas quoi faire, je ne suis pas vraiment dans mon point fort.
Cordialement,
Genesis17

Re: boucle de redirection

Posté : 28 juin 2014, 18:43
par Elie
On s'est mal compris ...
if( $_SERVER['HTTP_HOST'] == "cycareer-evolution.olympe.in")
{
header('location: http://cycareer-evolution.olympe.in/');
}
devient
if( $_SERVER['HTTP_HOST'] == "cycareer-evolution.olympe.in")
{
echo 'La redirection est sur cycareer-evolution.olympe.in car host = '.$_SERVER['host'];
exit();
}
Mais je pense que le probleme vient de a redirection sur la page index.

Re: boucle de redirection

Posté : 28 juin 2014, 18:47
par genesis17
En mettant ton code, la page web m'affiche :

La redirection est sur cycareer-evolution.olympe.in car host =

Je ne sais pas vraiment quoi faire. Genesis17

Re: boucle de redirection

Posté : 28 juin 2014, 18:50
par Elie
Met $_SERVER['HTTP_HOST'] a la place de $_SERVER['host'].
Il faut essayer de comprendre en fait et pas juste faire copier coller mais c'est de ma faute

Re: boucle de redirection

Posté : 28 juin 2014, 18:53
par genesis17
Je venais de le faire avant avoir lu ton message ^^
Le site m'affiche donc : La redirection est sur cycareer-evolution.olympe.in car host = cycareer-evolution.olympe.in

C'est donc ça qui entraîne une boucle de redirection. Mais je ne vois toujours pas comment résoudre le problème alors que je pense que la solution est juste devant mes yeux

Re: boucle de redirection

Posté : 28 juin 2014, 19:42
par Elie
Bah en gros tu veux faire quoi ? Obligé les www. ?

Je le fais en httaccess moi :

Code : Tout sélectionner

RewriteCond %{HTTP_HOST} ^parkingroissydiscount.fr$ RewriteRule ^(.*) http://www.parkingroissydiscount.fr/$1 [QSA,L,R=301] RewriteRule ^accueil.html$ http://www.parkingroissydiscount.fr/? [L,R=301]

Re: boucle de redirection

Posté : 28 juin 2014, 19:44
par genesis17
Bah je veux juste que ma page d'index apparaisse quand je lance mon site ^^

Re: boucle de redirection

Posté : 29 juin 2014, 14:33
par moogli
Salut,

Quel est l'intérêt de ces deux redirections ?
La première fait effectivement une boucle.
La seconde je ne suis pas certain mais il y a des chances je ne sais plus si le sous domaine est pris en compte ou pas

[php
<?php
if( $_SERVER['HTTP_HOST'] == "cycareer-evolution.olympe.in")
{
header('location: http://cycareer-evolution.olympe.in/');
}
[/php]
Pourquoi vouloir forcer un / en fin d'url ?
As tu testé ce que cela donne lorsque tu met ce / en plus ? (En clair est ce que tu le retrouve réellement ?)
<?php
if( $_SERVER['HTTP_HOST'] == "cycareer.fr")
{
header('location: http://www.cycareer.fr/');
}
Forcer le sous domaine, j'en vois pas l'utilité mais sinon c'est plus de la conf de serveur oui de dns (l'utilisation classique d'un nom de domaine c'est la redirection de www et du nom de domaine se vers la même chose. Sur httpd c'est le serverName et le serverAlias).

La solution d'Elie me semble la plus pertinente même si, perso, je virerais tous cela.

@+

Re: boucle de redirection

Posté : 29 juin 2014, 17:25
par genesis17
L'intéret est que le jeu initialement créé avait été transféré plusieurs fois sur des domaines différents. Je suis vraiment mauvais en php donc mes codes sont assez brouillons, j'essaye de faire le mieux possible. Virer tout celà, pourquoi pas mais comment faire en sorte que ma page d'index se charge dans ce cas ? Merci, Genesis17

Re: boucle de redirection

Posté : 29 juin 2014, 22:52
par Elie
Bah en fait, il faut faire un fichier index différent pour chaque domaine qui ne sert plus pour le rediriger vers le domaine actuel.
Tu mélanges un peu tout non ?

Re: boucle de redirection

Posté : 30 juin 2014, 14:04
par genesis17
Ouai je comprends pas tout. En fait, en imaginant que l'unique domaine soit cycareer-evolution.olympe.in comment faire pour que quand on charge ce lien, on puisse atterrir sur l'index. Quand je me relis je me trouve vraiment nul :(

Re: boucle de redirection

Posté : 30 juin 2014, 14:06
par Elie
En fait tout les hebergeurs renvoit vers index.php ou index.html :)
Donc en ne faisant rien ca devrait marcher non ?

Re: boucle de redirection

Posté : 30 juin 2014, 14:10
par genesis17
J'ai jamais pensé à essayer :?
Du coup j'enlève tout le début en commençant par
if($_GET['path'] != NULL AND $_SESSION['pseudo'] == NULL AND $_GET['path'] != 'inscription' &&$_GET['path'] != 'insc' AND $_GET['path']!='equipe' && $_GET['path']!='charte' AND $_GET['path']!='connexion3'AND $_GET['path']!='regle')
{
C'est ça ?