Problème de lien avec mysql [Résolu]

Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
- - Dernière réponse : Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
- 17 déc. 2010 à 14:14
Bonjour à tous,
J'explique mon problème un forum avec des liens include dynamique, du style:
<?php

  $pageOK = array( //page de base du site
                  'voyant' => 'accueil' => 'include/accueil.php',
          'debut' => 'forum/debut.php',
  'accueil_livre' => 'forum/index.php',
   'voirforum' => 'forum/voirforum.php',
  'voirprofil' => 'forum/voirprofil.php'
  );


  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);  
  } else {
    include('include/accueil.php');   
  }
?>

Et voici mon lien dans la page
index.php?page=voirforum?f='.$forum.'">'.stripslashes(htmlspecialchars($data1['forum_name'])).'

ou aussi
index.php?page=voirforum?f='.$data2['forum_id'].'

Lorsque je clique sur mon lien ça me ramène sur ma page d'accueil, pourtant sur ma barre d'adresse j'ai bien le numéro "id" de ma base de donnée.

comment puis je faire pour affichez ma page correctement s'il vous pait?
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
3
Merci
bonjour
cela ne marche pas ?
mon bout de code plus haut fonctionne
comme le dit ludwig59 deux ?
essaie de comprendre
a++


<?php

echo 'marche [?page=debut&f=blabli test]
';
echo 'marche[?page=voirforum&f=blabla test]
';
echo 'marche pas [?page=voirxxxxforum&f=blabla test]
';

$pageOK = array('accueil','debut','accueil_livre','voirforum','voirprofil');



if ( isset($_GET['page']) && in_array($_GET['page'],$pageOK ,true) ) { 
echo 'ok ça marche';
include('includes/'.$_GET['page'].'.php'); 
}else{ 
echo 'dead';
// ou
// include('include/accueil.php'); 
} 

?>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
bonsoir

fait plutôt

if ( isset($_GET['page']) && in_array($_GET['page'],$pageOK ,true) ) {
include($_GET['page']);
}else{
include('include/accueil.php');
}

a++
Commenter la réponse de cod57
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
0
Merci
non ça fonctionne pas au contraire ça bloque le reste de mes pages, seul accueil s'affiche.
Commenter la réponse de mathieuweb86
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
y a pas une erreur

$pageOK = array( //page de base du site
'voyant' => 'accueil' => 'include/accueil.php',
'debut' => 'forum/debut.php',
'accueil_livre' => 'forum/index.php',
'voirforum' => 'forum/voirforum.php',
'voirprofil' => 'forum/voirprofil.php'
);
Commenter la réponse de cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
ça c'est plus simple je vais dormir a++


<?php

echo '[?page=voirforum&f=blabla test]';

$pageOK = array('accueil','debut','accueil_livre','voirforum','voirprofil');



if ( isset($_GET['page']) && in_array($_GET['page'],$pageOK ,true) ) { 
echo 'ok';
include('includes/'.$_GET['page'].'.php'); 
}else{ 
echo 'dead';
// ou
// include('include/accueil.php'); 
} 

?>

Commenter la réponse de cod57
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
0
Merci
Bonjour,

Il y a un problème au niveau du lien

index.php?page=voirforum?f='.$forum.'">'.stripslashes(htmlspecialchars($data1['forum_name'])).'


Il y a 2 "?"

Mettre plutot

index.php?page=voirforum&f='.$forum.'">'.stripslashes(htmlspecialchars($data1['forum_name'])).'
Commenter la réponse de cs_ludwig59
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
0
Merci
cela ne marche pas
Commenter la réponse de mathieuweb86
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
0
Merci
oups dsl ça fonctionne faute de frappe merci pour tous
Commenter la réponse de mathieuweb86
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
0
Merci
je nes pas compri par contre pourquoi c ce & qui fait que ça fonctionne et non ?
Commenter la réponse de mathieuweb86
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
0
Merci
maintenant j'ai un autre problème lol, donc maintenant j'ai quelque chose qui s'affiche mais avec cet erreur You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-25, 25' at line 8
Et je n'arrive pas à men débarasser voici ma page
<?php


$titre =  "Voir un forum";
include("include/debut.php");






include("include/includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);




$forum = (int) $_GET['f'];


$requete1 mysql_query("SELECT forum_name, forum_topic, auth_view, auth_topic FROM forum_forum WHERE forum_id '".$forum."'") or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);

$totalDesMessages = $data1['forum_topic'] + 1;
$nombreDeMessagesParPage = 10;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);




echo'[?page=voirforum&f='.$forum.' '.stripslashes(htmlspecialchars($data1['forum_name'])).']';

if (isset($_SESSION['pseudo'])) 
{
       

        echo'Vous êtes connecté en tant que 
        [./voirprofil.php?m='.intval($_SESSION['id']).'&action=consulter 
        '.stripslashes(htmlspecialchars($_SESSION['pseudo'])).']

        [./voirprofil.php?action=modifier Modifier mon profil]

        [./messagesprives.php Consulter mes messages privés]

        [./connexion.php Se connecter]

        [./register.php Pas encore inscrit ?]

';
}


if (isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;
}

echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    if ($i == $page) 
    {
    echo $i;
    }
    else
    {
    echo '
    [?page=voirforum&f='.$forum.'&amp;page='.$i.' '.$i.']';
    }
}
echo '

';


$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;


echo ''.stripslashes(htmlspecialchars($data1['forum_name'])).'

';



echo'[./poster.php?action=nouveautopic&amp;f='.$forum.' 
]';



       

$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic 
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur    
WHERE topic_genre "Annonce" AND forum_topic.forum_id "'.$forum.'" 
ORDER BY topic_last_post DESC');


if (mysql_num_rows($requete3) > 0)
{
     
           |
Titre |
Réponses |
Vus |
Auteur |
Dernier message |

while ($data3  = mysql_fetch_assoc($requete3))
{

echo'----
,

Annonce :

'.stripslashes(htmlspecialchars($data3['topic_titre'])).',

'.$data3['topic_post'].',

'.$data3['topic_vu'].',

'.stripslashes(htmlspecialchars($data3['membre_pseudo_createur'])).', ';

$nombreDeMessagesParPage =  15;
$nbr_post = $data3['topic_post'] +1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);

echo 'Par

'.stripslashes(htmlspecialchars($data3['membre_pseudo_last_posteur'])).'

A '.date('H\hi \l\e d M y',$data3['post_time']).', ';
}


}



$requete3 = mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,
Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur   
WHERE topic_genre <> "Annonce" AND forum_topic.forum_id = "'.$forum.'"
ORDER BY topic_last_post DESC
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage .'')
or die (mysql_error());

if (mysql_num_rows($requete3) > 0)
{

           |
Titre |
Réponses |
Vus |
Auteur |
Dernier message   |

while ($data3  = mysql_fetch_assoc($requete3))
{

echo'----
,

'.stripslashes(htmlspecialchars($data3['topic_titre'])).',

'.$data3['topic_post'].',

'.$data3['topic_vu'].',

'.stripslashes(htmlspecialchars($data3['membre_pseudo_createur'])).', ';

//Selection dernier message
$nombreDeMessagesParPage = 15;
$nbr_post = $data3['topic_post'] +1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);

echo 'Par

'.stripslashes(htmlspecialchars($data3['membre_pseudo_last_posteur'])).'

A '.date('H\hi \l\e d M y',$data3['post_time']).', ';

}

   
}
else 
{
        echo'Ce forum ne contient aucun sujet actuellement

';
}
?>


</html>
Commenter la réponse de mathieuweb86
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
0
Merci
Bonjour,

Cela doit venir de cette requête

mysql_query('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post,

Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur
WHERE topic_genre <> "Annonce" AND forum_topic.forum_id = "'.$forum.'"
ORDER BY topic_last_post DESC
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage .'')

A mon avis il te manque un control; car ta variable $premierMessageAafficher doit forcément être positive ( donc valeur mini à 0.

Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
Commenter la réponse de Lyle56