Concatenation de chaine de carecteres

Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 1 déc. 2013 à 20:49
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 23 déc. 2013 à 23:36
Bonjour
Je voudrais pouvoir afficher les pages de mon site avec des includes.

Tout d'abord j'ai concatener des chaines de caracteres.


<?php
//corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) && $_GET['body'] != NULL)
$corps = 'page_contact/' . $_GET['body'] . '.php';
else
$corps = 'page_membre/' . $_GET['body'] . '.php';
?>

ensuite j'ai fait mon include pour l'affichage

<div id="contenu"><?php include($corps);?></div>

pour ma première concatenation ça marche mais pas pour la deuxième chaine.
Pouvez vous me donner votre avis où il y a une erreur.
Je vous remercie beaucoup
A voir également:

20 réponses

Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 2/12/2013 à 01:37
Pour commencer il y a une erreur dans ta condition :

<?php
//corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) && $_GET['body'] != NULL)
    $corps = 'page_contact/' . $_GET['body'] . '.php';
else
    $corps = 'page_membre/' . $_GET['body'] . '.php';
?>


Tu demande : Si $_GET['body'] est Set et n'est pas nul Alors page_contact/$_GET['body'], sinon page_membre/$_GET['body'], or Get body est forcément inexistant ou null à ce moment de la condition.

Si il est inexistant tu as une erreur, si il est null, et bien ton $corps prends comme valeur : 'page_membre/' . NULL . '.php'; soit en plus clair : page_membre/.php

Après comme je ne sais pas ce que tu veux faire exactement, difficile de te proposer une solution ... mais je vais essayer d'imaginer ..

Tu as des liens qui doivent rediriger sur page_contact, et d'autre sur page_membres, il te suffit d'ajouter une variable en get ..

$body = isset($_GET['body']) ? $_GET['body'] : NULL;
$type = isset($_GET['type']) ? $_GET['type'] : NULL;
$default = "une page par défaut en cas d'erreur"; $corps = $default;

if($body && $type) {
$corps_temp = "page_$type/$body.php";
$corps = is_file($corps_temp) ? $corps_temp : $default;
}


Le if(is_file()) ajoute une sécurité, pour éviter de l'injection de code, tu es sur que ce qui est appelé par cette variable Get est obligatoirement un fichier existant sur ton serveur.

Voila la forme de tes liens à l'avenir :
Pour les liens contact :
<a href="index.php?body=contact_sortie&type=contact"></a>
corps aura pour valeur : page_contact/contact_sortie.php

Pour les liens membres :
<a href="index.php?body=contact_sortie&type=membre"></a>
corps aura pour valeur : page_membre/contact_sortie.php
1
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
6 déc. 2013 à 18:54
Bonjour Xavierdu34,

S'il te plait je reviens vers toi concernant le script que tu m'as fait pour accéder à toutes mes pages. Toutes fonctionne très bien à l'exception de ma page d'accueil à l'ouverture du site.
Pourrait tu s'il te plait me dire que signifie
$default = "une page par défaut en cas d'erreur"; $corps = $default;


Je n'arrive pas à faire afficher ma page d'accueil, pourrait tu m'aider.
Je te remercie
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
7 déc. 2013 à 15:24
Bonjour
En fait tous mes liens fonctionne à exception lorsque j'ouvre mon site.
Peux tu me dépanner s'il te plait je te remercie
monsite/index.php
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
23 déc. 2013 à 13:51
Du dois remplacer le texte de la variable défault par une page par défaut, par exemple ta page d'accueil.
0
Utilisateur anonyme
1 déc. 2013 à 21:25
Il manque des { } dans tes conditions :

<?php
//corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) AND $_GET['body'] != NULL)
  {
    $corps = 'page_contact/' . $_GET['body'] . '.php';
  }
else
  {
    $corps = 'page_membre/' . $_GET['body'] . '.php';
  }
?>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 21:38
Bonjour
Non en fait il doit avoir autre chose car ces toujours pareil uniquement le if qui fonctionne et non le else.
Merci
0
Utilisateur anonyme
1 déc. 2013 à 21:53
Es-tu sur que les pages existent ?
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 22:04
oui bien sur puisque le if fonctionne et le else non

si je met page_membre dans le if ça fonctionne aussi
0

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

Posez votre question
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 22:06
ça me met cette erreur
Warning: include
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 1/12/2013 à 22:47
Ta condition n'a pas de sens !

Si $_GET['body'] n'existe pas ou est égale à nulle, tu l'utilises quand même.

PS : Concernant le message "Formulaire d'authentification", je ne sais pas pourquoi je n'ai pas pu poster de message dans ce post, donc vérifie tes messages privés.

Mettez en résolu quand c'est résolu -.- ...
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:05
oui parce que il affichera toujours des pages

ok pour le formulaire je vais jeter un oeil à mes MP
Merci
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:08
en fait comme cela ça marche


//si la valeur "body" de $_GET existe et est différent de NUL
//alors $corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) && $_GET['body'] != NULL)
$corps = 'page_membre/' . $_GET['body'] . '.php';
else
$corps = 'page/accueil.php';
?>

mais il faut que je rajoute un dossier page_contact
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 1/12/2013 à 23:12
Moi j'ai lu ceci ...

<?php
if (isset($_GET['body']) && $_GET['body'] != NULL)
    $corps = 'page_contact/' . $_GET['body'] . '.php';
else
    $corps = 'page_membre/' . $_GET['body'] . '.php';
?>
0
Utilisateur anonyme
1 déc. 2013 à 23:13
C'est pas exactement la même chose avec les commentaires en plus ?
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
1 déc. 2013 à 23:18
@labourette Que contient la variable $_GET['body'] ?
Qu'essayes tu de faire ?
0
Utilisateur anonyme
1 déc. 2013 à 23:09
Il faut séparer les 2 conditions qui ne peuvent pas se cumuler...
if ( isset ...)
{
if( $_GET['lkjml'] != NULL )
{
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:21
en fait pour être un peu plus précis...

j'ai 2 dossier différent il faut que je puisse afficher les fichiers de chaque dossier avec les mêmes conditions.

<?php
//si la valeur "body" de $_GET existe et est différent de NUL
//alors $corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) AND $_GET['body'] != NULL)
	{
	$corps = 'page_contact/' . $_GET['body'] . '.php';
	}
else
	{
	$corps = 'page_membre/' . $_GET['body'] . '.php';
	}
?>
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
1 déc. 2013 à 23:34
Mais en fonction de quoi tu décides d'afficher le contenu du premier ou deuxième répertoire ?

En d'autres termes, quand est ce que tu inclus la page php du répertoire "page_contact", et quand est ce que tu inclus la page php du répertoire "page_membre" ?
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:29
Merci joos pour le formulaire.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:40
en fait je fait un include
<div id="contenu"><?php include($corps);?></div>


ensuite j'ai mes liens comme ceux ci

<a href="index.php?body=contact_sortie"></a>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
1 déc. 2013 à 23:40
mais le problème c'est que je souhaite avoir mes pages dans 2 dossiers différent
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
1 déc. 2013 à 23:46
Désolé, je ne comprends pas ton problème.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 déc. 2013 à 00:00
je ne sais plus trop comment expliquer......
voici ce qui fonctionne toutes les pages qui se trouve dans le dossier "page_membre" s'affiche bien
<?php
//si la valeur "body" de $_GET existe et est différent de NUL
//alors $corps prend pour valeur les 3 chaines de caractéres concaténé, qui représente l'url que je veux afficher
if (isset($_GET['body']) && $_GET['body'] != NULL)
    $corps = 'page_membre/' . $_GET['body'] . '.php';
else
    $corps = 'page/accueil.php';
?>
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 déc. 2013 à 00:02
maintenant je voudrais également afficher aussi les pages qui se trouve dans le dossier "page_contact"

et avec la même variable $corps
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
2 déc. 2013 à 00:29
Tu veux les afficher en meme temps ?
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 déc. 2013 à 00:47
de quoi les afficher en même temps?
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
2 déc. 2013 à 01:08
Est ce que tu veux afficher le contenu du répertoire "page_contact" et "page_membre" en même temps ?

Tu es en train de répéter la même chose, essaye d'utiliser d'autre mots pour expliquer ce que tu essayes de faire !

Que contient la variable $_GET['body'] ?
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 déc. 2013 à 09:04
Pour te répondre Joos non ça n'affiche pas en même temps c'est soit les pages contact soit les pages membre.

la variable Body contiens le contenu du site soit ce que je veux afficher via mes liens des menus
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 déc. 2013 à 10:37
Bonjour
Un très grand merci à tous pour essayer de me sortir de mon problème c'est formidable, à Xaierdu34 ta solution fonctionne à merveille malgré mes explications hasardeuse.

Merci pour votre implication à tous.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
23 déc. 2013 à 23:36
Bonjour Xavierdu34

En faire quand mon site est ouvert que je navigue la page d'accueil s'affiche bien mais mon problème c'est lorsque j'ouvre le site ça n'affiche pas par défault la page d'accueil du coup un Warning.

à l'ouverture du site c'est localhost/mon_site.
Peux tu me donner ton avis.
Merci beaucoup
0