Problème de lien avec mysql

Résolu
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010 - 15 déc. 2010 à 18:19
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?

11 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 déc. 2010 à 13:27
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'); 
} 

?>
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 déc. 2010 à 23:07
bonsoir

fait plutôt

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

a++
0
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010
15 déc. 2010 à 23:34
non ça fonctionne pas au contraire ça bloque le reste de mes pages, seul accueil s'affiche.
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 déc. 2010 à 23:57
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'
);
0

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

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 déc. 2010 à 00:07
ç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'); 
} 

?>

0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
16 déc. 2010 à 09:21
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'])).'
0
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010
16 déc. 2010 à 13:00
cela ne marche pas
0
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010
16 déc. 2010 à 15:09
oups dsl ça fonctionne faute de frappe merci pour tous
0
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010
16 déc. 2010 à 15:21
je nes pas compri par contre pourquoi c ce & qui fait que ça fonctionne et non ?
0
mathieuweb86 Messages postés 49 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 décembre 2010
16 déc. 2010 à 16:05
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>
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
17 déc. 2010 à 14:14
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.
0
Rejoignez-nous