8792 sujets

Développement web côté serveur, CMS

Bonjour a tous, ce soir le site du zero est indisponible et j'avait grand besoins de mettre des includes ( passage que j'ai sauter dans le PHP ). Bref je voudrais savoir comment inclure mon menu, mon mini chat ainsi que mon forum ( phpBB ) dans le design de mon site ....

Je vous mets mes sources pour être le plus clair possible ...

Sources de l'index PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

        <head>
                <title>...Underground PSP...</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
				<link rel="stylesheet" media="screen" type="text/css" title="Underground PSP Design" href="design1.css" />
        </head>
		
		
        <body>
		<div align="center"><img src="images/banniere.png"></img></div>
	

	<div id="menu"> //Mon menu que j'aimerais inclure 
		<div class="Element_Menu">
<div class="Fond_Menu">
	<h3>Menu</h3>
</div>
<ul>
	<li><a href="index.php">News/Actu PSP</a></li>
	<li><a href="tutos.php">Astuces et Tutos</a></li>
	<li><a href="telechargement.php">Telechargement</a></li>
	<li><a href="phpBB2/index.php">Forum</a></li>
	<li><a href="chat.html">Chat</a></li>
	<li><a href="contact.php">Contact</a></li>
</ul>
</div>
<div class="Element_Menu">

<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) 
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) 
    {
       
        mysql_connect("SGL", "Root", "MDP");
        mysql_select_db("BDD");

        
        $message = htmlentities ($_POST['message']);
        $pseudo = htmlentities ($_POST['pseudo']);

        
        mysql_query("INSERT INTO chat_box VALUES('', '$pseudo', '$message')");

                mysql_close();
    }
}



?>

<div class="Fond_Chatbox"> // Ma chat box que j'aimerais aussi inclure ...
<h3>Chat box</h3>
</div>
<form action="index.php" method="post">

<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message :  <input type="text" name="message" /><br />
<br />
<input type="submit" value="Envoyer" />
</p>

</form>



<?php

mysql_connect("SQL", "rOOt", "MDP");
mysql_select_db("BDD");

$reponse = mysql_query("SELECT * FROM chat_box ORDER BY ID DESC LIMIT 0,10");

mysql_close();

while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p> // Fin de mon include pour le bloc gauche 



<?php
}
?>
</div>	
</div>



	<div id="contenu">	// ICi dans mon bloc de contenu le forum 
	
<h3>News</h3>
<br />
<br />


<?php
mysql_connect("SQL", "root", "MDP");
mysql_select_db("BDD");

$retour = mysql_query('SELECT*FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="Titre_Date">
<b><?php echo $donnees['titre']; ?></b> poster le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?>
</div>
<p>
    <?php
    
    $contenu = nl2br(stripslashes($donnees['contenu']));
    echo $contenu;
    ?>
	<br />
	<br />
</p>
<?php
} 
?>

<div align="right"><a href="toutes_news.php">Voir toutes les news</a></div>
</div>
</div>

<div id="pied_de_page">
</div>



        </body>
</html>


Voila et je suis un peu perdu, j'ai essayer plusieurs chose mais je ne me retrouve qu'avec des erreurs .. Que faire de mes div ?? ECT bref je ne sais pas vraiment par ou commencer alors une petite indication de route ne serait pas de refus ...

Voila je vous met aussi mon CSS si ca peut aider :

body
{
	padding-left: 10px;
	padding-right: 10px;
   margin: 0 auto; 
   margin-top: 5px;
   margin-bottom: 20px;   
   background-color: #CFD1E5; 
}

a
{
   color: black;
   text-decoration: none;
   font-family: Comic sans MS, Arial, "Arial Black", "times New Roman", times, serif;
}

a:hover
{
	background-color: #E5E5ED;
	color: blue;
}

#banniere
{
	width: 600px;
	height: 200;
	background-image: url("images/banniere.png");
	background-repeat: no-repeat;
	
}

.Texte_Banniere
{
	text-align: center;
}

#menu
{
   float: left; 
   width: 200px; 
   margin-bottom: 30px;
   background-color: #CFD1E5;
}

.Fond_Menu
{
	
	width: 192px;
	height: 40px;
	text-align: center;
	background-image: url("images/titre_menu.png");
	
}

.Element_Menu
{
   background-repeat: repeat-x;
   border-style: outset;
}

.Element_Menu h3 
{   
   font-family: Arial, "Arial Black", "Times New Roman", Times, serif;
   text-align: center;
}

.Fond_Chatbox
{
	width: 192px;
	height: 40px;
	text-align: center;
	background-image: url("images/titre_menu.png");
}

#contenu
{
   
   margin-left: 200px;
   padding: 5px; 
   color: black;
   background-color: #CFD1E5; 
   border-style: outset;   
}

.Element_Contenu h3
{
	text-align: center;
	font-family: Arial, "Arial Black", "Times New roman", Times, serif;
}

.Titre_Date
{
	border-style: outset 1px;
	width: 500px;
	height: 20px;
	text-align: center;
	background-image: url("images/titre_news.png");
}
	
/*Separation_News
{
	border-bottom:#777 outset 1px;
	padding-bottom:0.5em;
	margin-bottom:0.5em;
}
*/


Et bien sur je suis ouvert a toutes suggestion quant a l'optimisation de mon site ( encore tres faible niveau pas mal de chose )

Voila le lien : http://underground-psp.ifrance.com
Rebonjour tout le monde !!

Je suis incapable de faire marcher une include.. Dans moon index PHP, je met le code suivant :

<?php
    $page = $_GET['page'];
    include("$page.php");
    ?>    


Ce code est dans le contenu de mon index.php ( page de base pour mon site ) je voudrai que quand on arrive sur mon site, le visiteurs soit directement sur les news du site mais il ne s'affiche pas ... Il m'affiche une erreur dans le contenu.. Quand je modifi mon URL bien evidemment ca marche, je dooit mettre : http://underground-psp.ifrance.com/index.php?page=news
Comment coriger cela ?? Sachant que je voudrais une page "noyau" qui incluerai mon menu ( ca marche ca ), ma chat box ( ca marche aussi ) ma banniere ( ca fonctionne ) et mon contenu qui lui ne marche pas a la premiere visite du site... Voila voila .. N'hesitez a me demander du code et a me proposer des solutions, vous me faites beaucoup avancer Smiley smile
Si j'ai bien compris, ce que tu veux c'est que si le paramètre 'page' n'est pas passé par GET, ça t'inclue quand même un élément par défaut (les news)...

Dans ce cas, tu fait un test d'existance :

if (!isset($_GET['page']))
{
    $_GET['page'] = 'news';
}


Ca fera en sorte de définir $_GET['page'] à 'news' si elle n'a déjà pas été définie...

Tu peux encore améliorer ça en utilisant empty() au lieu d'isset(), ce qui fera en sorte que si la variable est déclarée dans GET mais qu'elle a une valeur nulle, 'news' lui sera attribuée Smiley cligne
Modifié par superjun (16 Oct 2006 - 17:25)
immat a écrit :
<?php
    $page = $_GET['page'];
    include("$page.php");
    ?>    

/!\ /!\ Faille de sécurité importante /!\ /!\

Ca m'étonne de voir encore ce genre de code, il y a je sais pas combien d'article qui parles de cette faille de sécurité si répandue Smiley decu

Il faut à tout prix tester l'existance de la page, et supprimer les trucs chelou genre ../, sinon on peut inclure tout ce qu'on veux, y compris des scripts distants qui permetteraient de compromettre le serveur

$page = dirname(__FILE__) . '/' . basename($_GET['page']) . '.php';
if(is_file($page)) {
  require $page;
} else {
  header('HTTP/1.1 404 Not Found');
  exit();
}
ou simplement ne pas utiliser d'include pour le contenu des pages mais seulement pour le header / menu / footer