Redirection de liens PHP [Résolu]

Messages postés
26
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
17 février 2019
- - Dernière réponse : robby94
Messages postés
26
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
17 février 2019
- 24 janv. 2019 à 17:52
Bonjour,

J'ai un souci que j'arrive pas à régler.

En résumé:

J'ai des liens PHP qui ouvrent des pages à un endroit précis de mon site.

liens:
<a href="index.php?var1=accueil.php">ACCUEIL</a>
<a href="index.php?var2=forum.php">FORUM</a>


Endroit:

if(!empty($_GET['var1']))
{
if($_GET['var1'] == 'accueil.php')
{require('accueil.php');}
}

elseif(!empty($_GET['var2']))
{
if($_GET['var2'] == 'forum.php')
{require('forum.php');}
}


Illustration:




Mon problème:

1/Une fois à l’intérieur de mes pages, les liens s'ouvrent sur une autre page, et non au même endroit.
2/ Quand je vais sur "FORUM", la page s'ouvrent pas à l'endroit que je veux (elle s'ouvre "toute seul)

Comment puis-je faire en sorte que mes liens s'ouvrent systématiquement à tel ou tel endroit?

Merci de votre aide
ps: je suis débutant (vous l'aurez compris)
Afficher la suite 

3 réponses

Messages postés
26116
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
1756
0
Merci
Bonjour,

Déjà.. pourquoi faire deux variables var1 et var2 ?
Une seule suffit ... par exemple : "p"
<a href="index.php?p=accueil.php">ACCUEIL</a>
<a href="index.php?p=forum.php">FORUM</a>


Ensuite, (je vous invites à lire ceci ça expliqera certaines choses : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code )

//a l'endroit voulu :

$page = !empty($_GET['p']) ? $_GET['p'] : NULL;
if(file_exists($page)){
  include_once $page;
}else{
 echo "Page inconnue !";
}


Maintenant... si le contenu s'ouvre dans une nouvelle page.. c'est que le souci se trouve ailleurs....
Un fichier htacess par exempe ?
Lorsque vous examinez les liens dans la page, qu'est ce qu'ils contiennent exactement ?
et quand vous cliquez sur le lien. qu'est-ce qu'il s'affiche dans la barre d'adresse du navigateur ?



Salut,
Il manque peut être un target _blank sur les balises <a>.
Cdt
Commenter la réponse de jordane45
Messages postés
26
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
17 février 2019
0
Merci
Bonjour,

tout d'abord merci à Jordan45 pour la simplification de mes liens :-)

Ça n'a pas résolu mon problème de fond
------
Comment fonctionnerai un .htacces, dans mon cas de figure?
J'ai vu pas mal de vidéo sur la réécriture de lien (si on parle bien de ça) mais j'ai pas bien compris.
------

En ce qui concerne le reste du site...


Voici une "arborescence" de mes liens.



- Infos:
  • Toutes les pages sont sur la même racine

(A la base j'avais fait un répertoire FORUM avec toutes mes pages dedans, mais lorsque je voulais aller chercher les pages via mon lien forum, ça ne fonctionnait pas - surement un souci dans ma syntaxe)

Les liens "accueil", "annonce"...etc, pour l'instant ça fonctionne.
(car j'ai pas fini de coder. lol)

Mais la partie FORUM, ça pointe pas ou je veux... Le forum fonctionne quand je vais sur chaque page.
Mais je n'arrive pas à faire en sorte que toutes les pages du forum s'ouvre sur la page de mon index.

En gros, quand je clique sur Forum, ça devrai m'orienter vers l'accueil du forum (forum.php)
or, là, non seulement ça m'oriente vers "connexion", (pourquoi pas...) mais surtout ça me l'ouvre dans une page nouvelle,
Et quand je suis sur les pages du forum, bah c'est des pages dans une nouvelle fenêtre

En gros, ce que je voudrais, c'est que TOUTES mes pages, via mes liens, s'ouvrent sur un endroit précis de la page d'accueil (pour pouvoir garder tout l'aspect de mon site
jordane45
Messages postés
26116
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
1756 -
D'après ce que tu nous montres.. tu n'as pas de fichiers htaccess...
donc le souci ne vient pas de là.

Par contre, tu n'as pas répondu à mes autre questions...

En attendant, Pourrais tu nous fournir :

- Le code php/html complet de ta page index.php (celui que tu as écris )

- Le code (html) de cette même page lorsqu'il est dans le navigateur ( en faisant : CTRL + U pour en afficher le code source "généré" )
Commenter la réponse de robby94
Messages postés
26
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
17 février 2019
0
Merci
Alors,

1/déjà, grâce à ton 1er post, j'ai modifié mes liens, et simplier la chose;

<a href="index.php?p=accueil.php">ACCUEIL</a>

$page = !empty($_GET['p']) ? $_GET['p'] : NULL;
if(file_exists($page)){
include_once $page;
}else{
echo "Page inconnue !";
}


2/ Sur mes pages forum.php / connexion.php / inscription.php, j'ai rajouté "index.php?p="
du cout, ses 3 pages pointes bien là ou je veux

Maintenant, mon souci est QUAND JE SUIS CONNECTÉ

Quand je vais sur les Catégories et Messages du forum, ça pointe pas sur la page index.php?p

quand je survole l'une de mes catégories de forum ça me fait ça:

http://MON-SITE.FR/forum.php?categorie=FOOTBALL%20MASCULIN


Ce qu'il faudrai que j'arrive à faire, dans l'indée ce serai ça:

http://MON-SITE/index.php?p=forum.php?categorie=FOOTBALL%20MASCULIN


mais, ça marche pas. lol

voici mon code index.php:

<!--MENU-->

<div class="row">
<div class="col-1"></div>
<div class="col-10 menu btn-group">


<a href="index.php?p=accueil.php" class="button">ACCUEIL</a>
<a href="index.php?p=forum.php" class="button">FORUM</a>
<a href="index.php?p=doctype.php" class="button">DOCUMENTS</a>
<a href="index.php?p=sherch.php" class="button">RECHERCHE</a>
<a href="index.php?p=annonces.php" class="button">ANNONCES</a>
<a href="index.php?p=media.php" class="button">MEDIAS</a>
<a href="index.php?p=technique.php" class="button">TECHNIQUE</a>
<a href="index.php?p=acces.php" class="button">ACCES</a>
<a href="index.php?p=contact.php" class="button">CONTACT</a>


</div>
<div class="col-1"></div>
</div>




<!-- CORPS DE TEXTE 1-->
<div class="row">
<div class="col-1"></div>
<div class="col-10 article">

<?php
$page = !empty($_GET['p']) ? $_GET['p'] : NULL;
if(file_exists($page)){
include_once $page;
}else{
echo "Page inconnue !";
}
?>


</div>
<div class="col-1"></div>
</div>


Je te met aussi le code de forum.php



<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
?>
<?php session_start();
include_once 'function/function.php';
include_once 'function/addPost.class.php';
$bdd = bdd();

if(!isset($_SESSION['id'])){

header('Location: index.php?p=connexion.php');
}
else {

if(isset($_POST['name']) AND isset($_POST['sujet'])){

$addPost = new addPost($_POST['name'],$_POST['sujet']);
$verif = $addPost->verif();
if($verif == "ok"){
if($addPost->insert()){

}
}
else {/*Si on a une erreur*/
$erreur = $verif;
}

}


?>
<!DOCTYPE html>
<head>


</head>
<body>
<div class="title">
Forum
</div>

<div class="article">
<div id="Cforum" class="col-12">
<?php

echo 'Bienvenue : '.$_SESSION['pseudo'].' :) - <a href="deconnexion.php">Deconnexion</a> ';
if(isset($_GET['categorie'])){ /*SI on est dans une categorie*/
$_GET['categorie'] = htmlspecialchars($_GET['categorie']);
?>
<div class="categories">
<h1><?php echo $_GET['categorie']; ?></h1>
</div>
<a href="addSujet.php?categorie=<?php echo $_GET['categorie']; ?>">Ajouter un sujet</a> <!-- liens pour Ajouter un sujet -->
<?php
$requete = $bdd->prepare('SELECT * FROM sujet WHERE categorie = :categorie ');
$requete->execute(array('categorie'=>$_GET['categorie']));
while($reponse = $requete->fetch()){
?>
<div class="categories">
<a href="forum.php?sujet=<?php echo $reponse['name'] ?>"><h1><?php echo $reponse['name'] ?></h1></a>
</div>
<?php
}
?>


<?php
}

else if(isset($_GET['sujet'])){ /*SI on est dans une categorie*/
$_GET['sujet'] = htmlspecialchars($_GET['sujet']);
?>
<div class="categories">
<h1><?php echo $_GET['sujet']; ?></h1>
</div>

<?php
$requete = $bdd->prepare('SELECT * FROM postSujet WHERE sujet = :sujet ');
$requete->execute(array('sujet'=>$_GET['sujet']));
while($reponse = $requete->fetch()){
?>
<div class="post">
<?php
$requete2 = $bdd->prepare('SELECT * FROM membres WHERE id = :id');
$requete2->execute(array('id'=>$reponse['propri']));
$membres = $requete2->fetch();
echo $membres['pseudo']; echo ': <br>';

echo $reponse['contenu'];
?>
</div>
<?php

}
?>

<form method="post" action="forum.php?sujet=<?php echo $_GET['sujet']; ?>">
<textarea name="sujet" placeholder="Votre message..." ></textarea>
<input type="hidden" name="name" value="<?php echo $_GET['sujet']; ?>" />
<input type="submit" value="Ajouter à la conversation" />
<?php
if(isset($erreur)){
echo $erreur;
}
?>
</form>
<?php
}
else { /*Si on est sur la page normal*/



$requete = $bdd->query('SELECT * FROM categories');
while($reponse = $requete->fetch()){
?>
<div class="categories">
<a href="forum.php?categorie=<?php echo $reponse['name']; ?>"><?php echo $reponse['name']; ?></a>
</div>

<?php
}

}
?>





</div>
</div>
</body>
</html>
<?php
}
?>

jordane45
Messages postés
26116
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
1756 -
Déjà.. dans le lien que je t'ai donné expliquant comment poster ton code... relis le bien..ça parle de la coloration syntaxique !

Ensuite... quand tu as plusieurs variables dans l'url.. tu les sépare avec des & (la première avec un ? , les suivantes avec des & )

Comme ceci :
http://infos-clubs.fr/index.php?p=forum.php&categorie=FOOTBALL%20MASCULIN



Au passage.. vu que tu utilises PDO, prends l’habitude d'appliquer ceci : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
robby94
Messages postés
26
Date d'inscription
jeudi 24 janvier 2019
Statut
Membre
Dernière intervention
17 février 2019
> jordane45
Messages postés
26116
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
-
Merciiiiiii beaucoup, t'es un chef.

j'vais continuer à apprendre. tu m'a super bien aider.
J'vais aussi aller voir tes liens.
thank's à toi, vraiment sympa
Commenter la réponse de robby94