Petit probleme php

Fermé
noko72 - 4 mars 2013 à 11:33
 noko72 - 7 mars 2013 à 19:24
Bonjour,
Je viens vers vous car j'ai un petit soucis. Je m'explique:
Je suis en train de créé mon site en php, donc le header et le footer son appelé avec un include_once jusque la pas de probleme, l'une des pages du site appel différents contenus ce qui donne une url du style http://site.com/page.php?page=page1, et dans cette page qui appel plusieurs contenus j'y ai inclu une pagination basique. Donc cette pagination est dans l'include du footer, j'y ai donc mis un if/else pour la faire apparaitre que sur la page voulue, par contre quand je met un autre if dans les balises <li></li> pour déterminer qui est la page active (et donc la mise en forme un peu differente du lien) ca ne marche pas, je n'ai aucun message d'erreur mais le style du lien actif ne s'applique pas, si le probleme venait de la variable contenant le nom de la page j'aurais une erreur de la part de php, avez vous une idée d'ou cela peut il provenir?
je joins le code de ma pagination si ca peut aider:

<ul <?php 
	if($thispage == 'construction') 
{
	echo 'class="const_pagin"';
}
	else
{
	echo ' class="hidden_class"';
}?>>
		 
<li><a <?php if($pagesOK == 'page01') {echo ' class="pagin_active"';} ?>href="monsite.php?page=page01">1</a></li>
<li><a <?php if($pagesOK == 'page02') {echo ' class="pagin_active"';} ?>href="monsite.php?page=page02">2</a></li>

</ul>

merci en tout cas


18 réponses

MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 4/03/2013 à 11:38
Bonjour,

Je ne sais pas si c'est bon d'ouvrir une balise sans la fermer pour la remplir dynamiquement.
Je verrais plus ça :
<?php  
 if($thispage == 'construction')  
{ 
 echo '<ul class="const_pagin">'; 
} 
 else 
{ 
 echo ' <ul class="hidden_class">'; 
}?> 


Idem pour les <li> ;-)
0
Merci beaucoup je teste ca et je reviens aux nouvelles
0
En fait cela ne change rien, d'ailleurs d'ailleurs pour <li><a>, je suis obligé de mettre le php dans la balise a puisqu'il permet de faire apparaitre la class voulue a vrai dire quand je ne fait pas d'inclusion de page dans la page principale (du coup avec une url de base http://monsite.com/page.php), du coup le probleme doit etre plus compliqué
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mars 2013 à 16:53
C'est uniquement le style de tes liens qui ne s'affiche pas ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
exacte, c'est la seul chose qui n'apparait pas et pourtant la css coorespond bien, d'ailleurs quand j'utilise cette facon de faire sur une page ou il n'ya pas de contenu inclu, donc avec une url de base, et bien cela fonctionne, du coup je suis un peu paumé surtout que je n'ai pas de message d'erreur
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mars 2013 à 19:48
Est-ce que ça passe en mettant ton code php mais sans les conditions if pour tester ? Faire juste un echo...
0
Je viens de tester cela ne fonctionne pas non plus
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
4 mars 2013 à 20:46
Bon, ton test est hors de cause alors...
Et en HTML pur ?
0
Bon ca vient bien du php car en html pur tout fonctionne correctement, dommage que je n'ai pas de message d'erreur, ca aiderait bien
0
Salut, et quand tu affiches le code source de la page html, ça donne quoi?
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
5 mars 2013 à 16:21
As-tu accès aux logs php ?
Même s'il n'y a pas d'erreur générée, ça pourrait nous éclairer...
0
acige Messages postés 18 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 15 mars 2013 1
6 mars 2013 à 19:19
Tu as deux solutions à ton problème soit c'est à cause de PHP où il y a une erreur lorsqu'il récupère les variables $pagesOK ou que le contenu de la variable n'est pas égale à page01. Tu peux vérifier en faisant quelque part dans ton code
<?php echo "La variable PagesOK contient la valeur ".$pagesOK ;
?>

Si il n'affiche rien c'est que ta variable ne récupère pas le résultat "page01"

Dans le cas contraire cela peut être un problème css, ce qui est fréquent avec les liens.
C'est pourquoi donne nous le code CSS que tu as inscrit qui doit de préférence
s'appelait

const_pagin a {
color:orange;
}

0
Merci pour vos réponses,
@acige: je vais faire le test, en tous cas cela ne pas vient pas du css, car quand je vire le php pour ne garder que du html,la mise en forme fonctionne par ailleurs quand je dégage le contenu appelé dans la page au profit d'une page par contenu (en gardant quand meme les includes header, footer et navigation) cela fonctionne aussi, du coup il semble en effet que le menu ne parvienne pas a récupérer le contenu de la variable

@MrYAU31, oui je dois avoir acces aux logs vu que je suis en local mais je débute en php a vrai dire

@tidjool, que veux tu dire par la?
0
J'ai fait le test et j'obtiens ceci:

La variable PagesOK contient la valeur Array , j'en déduis que ma pagination ne parviens pas lire le contenu de l'array le code de la page principale est le suivant:


<?php 

$pagesOK['page01'] = 'includes/page01.php'; 
$pagesOK['page02'] = 'includes/page02.php'; 


$page = 'accueil'; 
if(!empty($_GET['page'])  
&& array_key_exists($_GET['page'], $pagesOK)) 
{ 
  
 $page = $_GET['page']; 
} 

?> 



le code qui appel le contenu est le suivant:

<?php include($pagesOK[$page]); ?> 


et ma pagination est la suivante:

<ul > 

<li><a <?php if($pagesOK == 'page01') {echo ' class="pagin_active"';} ?> href="monsite.php?page=page01">1</a></li> 
<li><a <?php if($pagesOK == 'page02') {echo ' class="pagin_active"';} ?> href="monsite.php?page=page02">2</a></li> 

</ul> 


si ca vient de l'array, je bloque car je début encore et ca me dépasse un peu
0
acige Messages postés 18 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 15 mars 2013 1
Modifié par acige le 7/03/2013 à 03:29
Voilà le code corrigé mais c'est vrai que tu aurais pu faire plus simple en dirigeant tout simplement les utilisateurs vers la page concerné plutôt que de réunir sur une même page
.
<?php
/*ATTRIBUTION DES VARIABLES DANS LE TABLEAU ASSOCIATIF PAGESOK*/
$pagesOK['accueil'] = 'includes/accueil.php'; 
$pagesOK['page01'] = 'includes/page01.php'; 
$pagesOK['page02'] = 'includes/page02.php'; 

/*VERIFIE SI GET SE TROUVE DANS LE TABLEAU*/

$page_du_get = $_GET['page'];
if(!empty($page_du_get) && !empty($pagesOK[$page_du_get]))  $page = $page_du_get;
else $page = 'accueil'; /*SI GET VIDE OU NON DANS LE TABLEAU

/*INCLURE LE CONTENU DE LA PAGE CONCERNE*/
include($pagesOK[$page]);

/*PAGINATION*/
echo '<ul>';
foreach($pagesOK as $nom_page => $valeur)
{
echo '<li><a href="monsite.php?page='.$nom_page.'" class="pagin_active" >'.$nom_page.'</a></li>';
}
echo '</ul>';
?>


ACIGE
Agence de communication et d'informatique
0
Merci pour la correction par contre le probleme est inversé, en effet ce coup là tous les items du menu recoivent la class pagin_active et pas seulement la page en cours du coup l'internaute ne voit pas dans le menu sur quelle page il se trouve
0
acige Messages postés 18 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 15 mars 2013 1
Modifié par acige le 7/03/2013 à 14:43
Il faut tout d'abord que tu essaies d'apprendre un peu plus sur PHP car tu vas vite être bloqué.

Change la partie suivante :

/*PAGINATION*/ 
echo '<ul>'; 
foreach($pagesOK as $nom_page => $valeur) 
{ 
if ($page == $nom_page) echo '<li><a href="monsite.php?page='.$nom_page.'" class="pagin_active" >'.$nom_page.'</a></li>'; 
else echo '<li><a href="monsite.php?page='.$nom_page.'">'.$nom_page.'</a></li>'; 
} 
echo '</ul>'; 


ACIGE
Agence de communication et d'informatique
0
Merci a toi effectivement j'aurais pu diriger les gens vers chaque page en plus c'est plus facile pour le seo, mais je pensai arriver a me débrouiller tout en apprenant toujours un peu plus le php mais j'ai été un peu gourmand du coup j'ai été un peu dépassé,

le code de la pagination, il ne fonctionne qu'avec deux pages?
0