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

Signaler
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010
-
Lyle56
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
-
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

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
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'); 
} 

?>
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonsoir

fait plutôt

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

a++
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010

non ça fonctionne pas au contraire ça bloque le reste de mes pages, seul accueil s'affiche.
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
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'
);
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
ç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'); 
} 

?>

Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
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'])).'
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010

cela ne marche pas
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010

oups dsl ça fonctionne faute de frappe merci pour tous
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010

je nes pas compri par contre pourquoi c ce & qui fait que ça fonctionne et non ?
Messages postés
49
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
16 décembre 2010

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>
Messages postés
240
Date d'inscription
jeudi 1 mai 2008
Statut
Membre
Dernière intervention
19 juillet 2012
2
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.