Bonjour,
Je recontre un veritable soucis sur mon code, je veut signifier à une page que si XXXX est supèrieur a 0 alors il me redirige vers une page. Seul problème mon if fonctionne parfaitement, et mon système de redirection également (sur les autres pages) or la il refuse totalement de s'executer....
Voici le code :
<?php if(!empty($_SESSION['error'])){ echo $_SESSION['error']; }
echo $actif['actif'];
echo $actif['id_membre'];
if($actif['actif'] == 1)
{
echo "test supèrieur à 0";
header('Location: '.pathView().'/page_vortex.php');
}
else
{
?>
Je planche totalement....
Cordialement, Merci!
Si ça marche dans les autres pages c'est que les sorties sont bufferisées avant d'être envoyées au client
vérifie la variable output_buffering (php.ini) , si elle est sur off alors pas de bufferisation
sinon c'est la taille en Ko du buffer
Si tes sorties dépassent la taille du tampon alors son contenu est envoyé au client, c'est peut être ce qui ce passe sur cette page en particulier.
Si ton output_buffering est sur off (php.ini) mets le sur 4096 pour voir si ça résoud ton pb.
Salut,
il refuse totalement de s'executer
Est-ce que le script te retourne une erreur ? (Laquelle).
mon if fonctionne parfaitement
Ça veut dire que ça t'affiche : test supèrieur à 0
?
Regarde ce que te retourne pathView()
.
Pourquoi est-ce qu'on a un else
sans accolade fermante ?
Les en-têtes doivent être envoyées avant tout autre contenu.
supprime les echo avant ton header.
Alors merci des réponses rapides, si le Else est fermé plus loin, je l'ai rajouté pour faire un test mais cela n'a rien changé.
Et je confirme il m'affiche bien mon echo, j'ai mis le echo pour verifier que mon if fonctionne et c'est le cas, et pour cette question je n'ai pas compris (Regarde ce que te retourne pathView().)
Je vais tester Huggy je te dis ca. (Si je retire ou change le echo de place, cela ne fonctionne pas quand meme)
Merci
Ah zut,
je pensais qu'Huggy avait résolu le truc.
et pour cette question je n'ai pas compris (Regarde ce que te retourne pathView().)
Eh bien j'imagine que la fonction pathView()
renvoie une chaine de caractères.
Je voulais juste qu'on s'assure qu'elle retourne bien la bonne chaine de caractères dont tu as besoin.
var_dump(pathView());
À tout hasard,
mets un exit()
après le header
pour voir ?
header('Location: '.pathView().'/page_vortex.php');
exit();
Alors le PathView renvoie bien les bons liens sur toute les autres pages du jeu. C'est pour ça que je pige pas :/ (j'ai fait le var dump et il me ressort le bon chemin)
Exit testé et ne change rien :/
Les echos c'était pour les essaies, lol il me reste les div, je viens de positionner les lignes de code dans la partie php au dessus mais rien n'y fait.
Bonjour,
Vous pouvez nous poster le code que vous fait avec les modifications qui ont étés demandés ?
<?php
$title="Portail Spatial";
require_once 'header.php';
$planete_utilise=htmlentities($_SESSION['planete_utilise']);
$id_membre=htmlentities($_SESSION['id']);
$req_ress = $bdd->prepare("SELECT * FROM ressource WHERE id_planete = ? ");
$req_ress->execute(array($planete_utilise));
$user_ress=$req_ress->fetch();
$energie=$user_ress['energie'];
$a=$bdd->prepare('SELECT * FROM portail WHERE id_planete = ? AND id_membre = ?');
$a->execute(array($planete_utilise,$id_membre));
$actif=$a->fetch();
if($actif['actif'] > 0)
{
header('Location: '.pathPhp().'retour_lien/lien.php');
}
else
{
?>
<div class="titre_page">
<ul>
</ul>
<div class="title">PORTAIL SPATIAL</div>
</div>
<?php if(!empty($_SESSION['error'])){ echo $_SESSION['error']; }
?>
ENERGIE DE VOTRE PLANETE : <?php echo $energie; ?> /1.000
</br>
VOIR DANS LE CLASSEMENT POUR OBTENIR L'ADRESSE DU JOUEUR EN ATTENDANT LA FINALISATION DE LA GALAXIE
</br>
<form method="POST" action="<?php echo pathPhp(); ?>vortex/traitement_ouverture_vortex.php">
<input type="text" name="coordonnee" placeholder=" ENTREZ LES COORDONNEES DE LA PLANETE CIBLE POUR OUVRIR UN VORTEX "/>
<input type="submit" name="ouvrir_vortex" value="Ouvrir un vortex" />
</form>
<form method="POST" action="<?php echo pathPhp(); ?>vortex/traitement_exploration_vortex.php">
<input type="submit" name="explorer" value="Explorer une planète" />
</form>
<?php
}
require_once '../footer.php';
?>
<?php
require_once '../include/connexion_bdd.php';
if(!isConnected()) // permet de verifier si le membre est connecté ou non
{
header('location: '.path());
}
$planete_utilise=htmlentities($_SESSION['planete_utilise']);
$idmembre=htmlentities($_SESSION['id']);
$reqmembre = $bdd->prepare('SELECT * FROM membre WHERE id = ? AND planete_utilise = ?');
$reqmembre->execute(array($idmembre, $planete_utilise));
$membre=$reqmembre->fetch();
$qRess=$bdd->prepare('SELECT * FROM ressource WHERE id_planete = ? ');
$qRess->execute(array($planete_utilise));
$ress=$qRess->fetch();
$qp=$bdd->prepare('SELECT * FROM point_evenement');
$qp->execute(array());
$pe=$qp->fetch();
$qResp=$bdd->prepare('SELECT * FROM population WHERE id_planete = ?');
$qResp->execute(array($planete_utilise));
$rep=$qResp->fetch();
// Va lire le nombre de message non lu
$msg=$bdd->prepare('SELECT * FROM messagerie WHERE lu = ? AND id_destinataire = ?');
$msg->execute(array(0,$id_membre));
$message=$msg->rowCount();
//Pour Faire raz de la galaxie
/*
<li><a href="<?php echo pathPhp(); ?>divers/raz_galaxie.php">RAZ</a></li>
*/
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>
<link href="<?php echo pathCss(); ?>style.css" rel="stylesheet" type="text/css" media="all">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="<?php echo pathJs(); ?>fonction_js.js"></script>
</head>
<body>
<header>
<div class="inner">
<div class="cl">
<div class="cl1">OR : <?php echo $ress['gold']; ?> </div>
<div class="cl2">TITANE : <?php echo $ress['titane']; ?></div>
<div class="cl3">CRISTAL : <?php echo $ress['cristal']; ?></div>
<div class="cl4">ORINIUM : <?php echo $ress['orinium']; ?></div>
</div>
<div class="cm">
<div class="cm1">ÉNERGIE</div>
<div class="cm2"><?php echo htmlentities($ress['energie']); ?> / 1000</div>
<div class="cm3"></div>
</div>
<div class="cr">
<div class="cr1">ORINIA : <?php echo htmlentities($ress['orinia']); ?></div>
<div class="cr2">POPULATION : <?php echo htmlentities($rep['population']); ?></div>
<div class="cr3">MATIÈRE ORGANIQUE : <?php echo htmlentities($ress['organique']); ?></div>
<div class="cr4">POINTS EVENEMENT : <?php echo htmlentities($pe['nombre_point']); ?></div>
</div>
</div>
</header>
<div class="position_planete">
<?php
include "../include/changement_planete.php";
?>
</div>
<div class="wrapper">
<div class="inner-wrap">
<aside>
<div class="menu_haut">GENERAL</div>
<div class="menu_milieu">
<ul>
<li><a href="<?php echo pathView(); ?>salle_de_controle.php">Salle de controle</a></li>
<li><a href="<?php echo pathView(); ?>messagerie/messagerie.php"><?php if($message <= 0){ echo " Messagerie ";}else{?><span class="nbr_msg"><?php echo "Messagerie (" . $message . ")";} ?></span></a></li>
<li><a href="<?php echo pathView(); ?>production/page_ressource.php">Production</a></li>
<li><a href="<?php echo pathPhp(); ?>divers/raz_galaxie.php">DIVERS</a></li>
<li><a href="<?php echo pathView(); ?>flotte/controle_flotte.php">Gestion de flotte</a></li>
<li><a href="<?php echo pathView(); ?>vortex/page_portail_spatial.php">Portail</a></li>
</ul>
</div>
<div class="menu_bas"></div>
<div class="menu_haut">GESTION</div>
<div class="menu_milieu">
<ul>
<li><a href="<?php echo pathView(); ?>population.php">Population</a></li>
<li><a href="<?php echo pathView(); ?>mines/mine_gold.php">Batiments</a></li>
<li><a href="<?php echo pathView(); ?>technologies/technologie_general.php">Technologies</a></li>
<li><a href="<?php echo pathView(); ?>caserne/caserne_general.php">Caserne</a></li>
<li><a href="<?php echo pathView(); ?>exploration/equipe_exploration.php">Equipe Exploration</a></li>
<li><a href="<?php echo pathView(); ?>hangar/hangar_<?php echo htmlentities($membre['race']);?>.php">Hangar Spatial</a></li>
<li><a href="<?php echo pathView(); ?>objet/objet.php">Objets</a></li>
<li><a href="<?php echo pathView(); ?>artefact/artefact.php">Entrepôt Artefacts</a></li>
<li><a href="<?php echo pathView(); ?>defense/defense_<?php echo htmlentities($membre['race']);?>.php">Defenses</a></li>
</ul>
</div>
<div class="menu_bas"></div>
<div class="menu_haut">INTERACTION</div>
<div class="menu_milieu">
<ul>
<li><a href="<?php echo pathView(); ?>arbre/technologie_commune.php">Pré-Requis</a></li>
<li><a href="<?php echo pathView(); ?>galaxie/page_galaxie.php">Galaxie</a></li>
<li><a href="<?php echo pathView(); ?>classement.php">Statistiques</a></li>
<li><a href="<?php echo pathView(); ?>/chat/chat.php">Chat</a></li>
<li><a href="<?php echo pathView(); ?>alliance/page_alliance.php">Alliance</a></li>
<li><a href="<?php echo pathView(); ?>diplomatie/pacte.php">Diplomatie</a></li>
<li><a href="<?php echo pathView(); ?>histoire/histoire.php">Histoire Univers</a></li>
<li><a href="<?php echo pathView(); ?>enigme/enigme.php">Enigmes</a></li>
<li><a href="<?php echo pathView(); ?>quete/quete.php">Quêtes</a></li>
</ul>
</div>
<div class="menu_bas"></div>
<div class="menu_haut">JOUEURS</div>
<div class="menu_milieu">
<ul>
<li><a href="http://expeditionwars.esy.es/forum/">Forum</a></li>
<li><a href="<?php echo pathView(); ?>profil/profil.php">Profil</a></li>
<li><a href="<?php echo pathPhp(); ?>users/deconnexion.php">Se déconnecter</a></li>
</ul>
</div>
<div class="menu_bas"></div>
</aside>
<section>
<div class="haut_corps">
<div class="light1"> </div>
<div class="light2"> </div>
<div class="light3"> </div>
<div class="light4"> </div>
</div>
<div class="milieu_corps">
Voilà le problème :
Comme vous l'a dit "Huggy", il ne doit y avoir AUCUN code html qui s'affiche avant un header(....);
Euh oui mais cette page est appellé à toute les pages, et les redirection fonctionne pourtant partout ailleurs. Donc je ne pense pas que ce soit cela, je dis bien je pense.
page de connexion
<?php
$host = ***
$user = '***
$base = '****
$passe = *****
try{
$bdd = new PDO('mysql:host='.$host.';dbname='.$base, $user, $passe, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch(Exception $e){
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
}
session_start();
# Augmenter la durée de la session à 3h
ini_set('session.gc_maxlifetime', 10800);
require_once('fonctions.php');
$up=$bdd->prepare('UPDATE ressource SET temps = NOW() WHERE id_membre = ? AND id_planete = ?');
$up->execute(array($id_membre,$planete_utilise));
?>
Peut être est ce cela :
Si ça marche dans les autres pages c'est que les sorties sont bufferisées avant d'être envoyées au client
vérifie la variable output_buffering (php.ini) , si elle est sur off alors pas de bufferisation
sinon c'est la taille en Ko du buffer
Si tes sorties dépassent la taille du tampon alors son contenu est envoyé au client, c'est peut être ce qui ce passe sur cette page en particulier.
Si ton output_buffering est sur off (php.ini) mets le sur 4096 pour voir si ça résoud ton pb.
Comme tu m'as dit car la j'ai un second lien qui ne veut pas fonctionner -_-
Et si tu mets le require_once 'header.php';
dans le else
?
$title = 'Portail Spatial';
...
if ($actif['actif'] > 0)
{
header('Location: ' . pathPhp() . 'retour_lien/lien.php');
}
else
{
require_once 'header.php';
...
}
PS :
Le forum utilise le Markdown,
pour faire une citation tu peux utiliser le caractère ">" en début de ligne.
http://commonmark.org/help/
Non le header doit absolument être en en tête, et la je viens de faire des test hier soir j'ai d'autres soucis de lien qui n'existait pas avant.
Donc j'étais sur le serveur d'un copain, qui à touché sans aucun doute à des réglages sur ses serveurs, car en migrant vers mon ancien serveur de test, tout refonctionne!
Je vous remercie ;)