// Conception and Creation : Cro_mag
// Theme name : Black edition
// Version : 1.0
// Date of creation : September 2009
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Photos du carnaval de Venise, portraits sensationnels. portofolio de Tuan-Gallery, passionné de photographie et de voyages, il capture des moments de la vie dans ces voyages, des émotions, mais aussi des paysages a couper le souffle, tout ce qui se trouve sur son chemin. " lang="fr">
<meta name="description" content="Pictures of Venise Carnaval.portofolio of Tuan-Gallery, passionate in photograph and in trips, it captures instants of life in these trips, émotions, but also landscapes has cut breath, all that is on its way" lang="en">
<meta name="keywords" content="voyage, australie, etats-unis, usa, inde, cuba, paris, venise, carnaval, panoramique, insectes, portrait, animaux, architecture, urbaine, gens, moments, photographe,canon, numerique, portfolio, galeries, paysages, france, photographie, aborigenes, sydney, route 66, las vegas, californie, boutique, tirage photos, carnaval,venise,place saint marc,saint marco." lang="fr">
<meta name="keywords" content="travel, Australia, united states, employed, india, cuba, paris, Venice, carnival, pan, insects, portrait, animals, architecture, urban, people, instants, photographer, cannon, numerique, portfolio, gallery, landscapes, France, photographs, aborigenes, Sydney, sorts for mailing 66, weary vegas, California, shop, printing photographs" lang="en">
<title>Photographies du Carnaval De Venise</title>
<style type="text/css">
<!--
-->
</style>
<style type="text/css">
<!--
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
-->
</style>
<style type="text/css">
<!--
body {
background-color: #000;
}
-->
</style>
<link href="style_galerie.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
<link rel="stylesheet" type="text/css" href="/shadowbox/shadowbox.css">
<script type="text/javascript" src="/js/jquery-latest.pack.js"></script>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/tooltip.js"></script>
<script type="text/javascript" src="/shadowbox/shadowbox.js"> </script>
<script type="text/javascript">
Shadowbox.init ();
</script>
<link rel="shortcut icon" href="/images/appareil.ico" />
</head>
<!--code google analytics -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-13270017-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<!--fin du code Google analytics -->
<body>
<div id="page">
<!--debut bando -->
<div id="bando">
<p><a href="../../menu_francais.html"><img src="images/banniere_tuan_gallery_photographie.jpg" width="750" height="39" alt="Tuan-Gallery Photographie" /></a></p>
<p> </p>
<p>- PHOTOS DU CARNAVAL DE VENISE -</p>
</div>
<!--fin bando -->
<!--debut barre haut -->
<div id="barrehaut">
<p> </p>
<img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
<!--fin barre haut -->
<!--debut image -->
<?php
echo $content;
?>
<!--fin image -->
<!--debut droite -->
<!--fin droite -->
<!--debut barre bas -->
<div id="barrebas"><img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /><p></p></div>
<!--fin barre bas -->
<!--debut tableau -->
<div id="tableau">
<div class="pagination">
<ul>
<li class="currentpage">1</li>
<li><a href="galerie_photo_venise_2.html" class="screenshot" rel="/fr/venise/screen/screen_ven_2.jpg">2</a></li>
<li><a href="galerie_photo_venise_3.html"class="screenshot" rel="/fr/venise/screen/screen_ven_3.jpg">3</a></li>
<li><a href="galerie_photo_venise_4.html"class="screenshot" rel="/fr/venise/screen/screen_ven_4.jpg">4</a></li>
<li><a href="galerie_photo_venise_5.html"class="screenshot" rel="/fr/venise/screen/screen_ven_5.jpg">5</a></li>
<li><a href="galerie_photo_venise_6.html"class="screenshot" rel="/fr/venise/screen/screen_ven_6.jpg">6</a></li>
<li><a href="galerie_photo_venise_7.html"class="screenshot" rel="/fr/venise/screen/screen_ven_7.jpg">7</a></li>
<li><a href="galerie_photo_venise_8.html"class="screenshot" rel="/fr/venise/screen/screen_ven_8.jpg">8</a></li>
<li><a href="galerie_photo_venise_9.html"class="screenshot" rel="/fr/venise/screen/screen_ven_9.jpg">9</a></li>
<li><a href="galerie_photo_venise_10.html"class="screenshot" rel="/fr/venise/screen/screen_ven_10.jpg">10</a></li>
<li><a href="galerie_photo_venise_11.html"class="screenshot" rel="/fr/venise/screen/screen_ven_11.jpg">11</a></li>
<li class="nextpage"><a href="galerie_photo_venise_2.html">Suivant »</a></li>
</ul>
</div><p></p>
</div>
<!--fin tableau -->
<!--debut bas -->
<div id="bas"><img src="images/barre horizontale.jpg" width="500" height="1" alt="barre" /></div>
<!--fin bas -->
<!--debut explications -->
<div id="explications">
<p> </p>
<img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" />
</div>
<!--fin explications -->
<!--debut pied de page -->
<div id="menu">
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="../../menu_francais.html">Menu</a></li>
<li><a href="../accueil_galerie.html">Galerie Photos</a></li>
<li><a href="../boutique.html">Boutique</a></li>
<li><a href="../art&essais/art&essais_1.html">Art & Essais</a></li>
<li><a href="../presentation.html">A propos</a></li>
<li><a href="#" onclick="MM_openBrWindow('../contact.html','Contact','scrollbars=yes,width=500,height=350')">Contact</a></li>
<li><a href="../liens.html">Liens</a></li>
</ul>
</div>
<div id="barrefin"><img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../../SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
<!--fin pied de page -->
<div id="pub">
<br/>
<script type="text/javascript"><!--
google_ad_client = "pub-7590267161782096";
/* 728x15, date de création 05/02/10 */
google_ad_slot = "3043799783";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<br/>
<div id="barrefin"><img src="../../images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
</div>
</body>
</html>
ma page galerie (aussi situé a la racine)<?php
if(!isset($_GET["p"])){$_GET["p"]=venise_1.php;}
if(!file_exists("content/".$_GET["p"].".php")){$_GET["p"]=404;}
ob_start();
include "content/".$_GET["p"].".php";
$content=ob_get_contents();
ob_end_clean();
include "template.php";
?>
et apres une des pages "contenu" (dans content/venise) la page se nomme venise_1<div id="image">
<table width="850">
<tr>
<td><p><a href="grandes images/VENPO_3790.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_3790.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
<td><p><a href="grandes images/VENPO_3881.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_3881.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
<td><p><a href="grandes images/VENPO_3912.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_3912.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
</tr>
<tr>
<td><p><a href="grandes images/VENPO_4077.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_4077.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p>
</td>
<td><p><a href="grandes images/VENPO_3928.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_3928.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p>
</td>
<td><p><a href="grandes images/VENPO_3945.jpg" rel="shadowbox[Venise]" title="Venise"><img src="vignettes/VENPO_3945.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
</tr>
<tr>
<td>
<p><a href="grandes images/VENPO_3946.jpg" rel="lightbox[Venise]" title="Venise"><img src="vignettes/VENPO_3946.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
<td>
<p><a href="grandes images/VENPO_4049.jpg" rel="lightbox[Venise]" title="Venise"><img src="vignettes/VENPO_4049.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
<td>
<p><a href="grandes images/VENPO_4065.jpg" rel="lightbox[Venise]" title="Venise"><img src="vignettes/VENPO_4065.jpg" alt="carnaval de Venise, costumes"/></a></p>
<p> </p></td>
</tr>
</table>
</div>
l'adresse en localhost :<?php
//if(!isset($_GET["p"])){$_GET["p"]=venise_1.php;} //Erreur
if(!isset($_GET["p"])){$_GET["p"] = 'venise/venise_1';} // Correct
if(!file_exists("content/".$_GET["p"].".php")){$_GET["p"]=404;}
ob_start();
include "content/".$_GET["p"].".php";
$content=ob_get_contents();
ob_end_clean();
include "template.php";
?>
Il faut bien penser à passer tous les paramètres dans le $_GET["p"] (dossier etc.)Code : Tout sélectionner
Warning: include(sql_connect.inc.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\tuan-gallery\traitement.php on line 3
Warning: include() [function.include]: Failed opening 'sql_connect.inc.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\tuan-gallery\traitement.php on line 3
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\tuan-gallery\traitement.php on line 72<?php
//Connexion à la BDD
try
{
$db_host = ""; //Lieu où est héberger la BDD
$db_name = ""; //Nom de la BDD
$db_login = ""; //Login de connexion à la BDD
$db_mdp = ""; //Mot de passe de connexion à la BDD
$bdd = new PDO("mysql:host=$db_host;dbname=$db_name",$db_login,$db_mdp);
}
catch(Exception $e)
{
exit('Erreur : ' . $e->getMessage());
}
?>
Tu crées un fichier sql_connect.inc.php et dedans tu mets ce code ci, puis en haut de tes fichiers tu efface ce try...catch()... tu ajoutes ceci
include("sql_connect.inc.php");
//<!DOCTYPE etc etc...
//le reste de ta page...
C'est plus pratique, si jamais tu change le lieu/mot de passe/nom pour ta bdd, tu fais la modif une seule fois dans ce fichier ci (sql_connect.inc.php), au lieu de le faire dans tous les fichiers où tu as une connexion à la bdd.<?php
//Connexion à la BDD
try
{
$db_host = "localhost"; //Lieu où est héberger la BDD
$db_name = "tuan-galerie"; //Nom de la BDD
$db_login = "root@utilisateur"; //Login de connexion à la BDD
$db_mdp = ""; //Mot de passe de connexion à la BDD
$bdd = new PDO("mysql:host=$db_host;dbname=$db_name",$db_login,$db_mdp);
}
catch(Exception $e)
{
exit('Erreur : ' . $e->getMessage());
}
?>
fichier galerie.php
<?php
//Fichier de connexion à la bdd
include('sql_connect.inc.php');
?>
<?php
if(!isset($_GET["p"])){$_GET["p"]=venise/venise_1.php;}
if(!file_exists("content/".$_GET["p"].".php")){$_GET["p"]=404;}
ob_start();
include "content/".$_GET["p"].".php";
$content=ob_get_contents();
ob_end_clean();
include "template.php";
?>
mon fichier template
// Conception and Creation : Cro_mag
// Theme name : Black edition
// Version : 1.0
// Date of creation : September 2009
<?php
//Fichier de connexion à la bdd
include('sql_connect.inc.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Photos du carnaval de Venise, portraits sensationnels. portofolio de Tuan-Gallery, passionné de photographie et de voyages, il capture des moments de la vie dans ces voyages, des émotions, mais aussi des paysages a couper le souffle, tout ce qui se trouve sur son chemin. " lang="fr">
<meta name="description" content="Pictures of Venise Carnaval.portofolio of Tuan-Gallery, passionate in photograph and in trips, it captures instants of life in these trips, émotions, but also landscapes has cut breath, all that is on its way" lang="en">
<meta name="keywords" content="voyage, australie, etats-unis, usa, inde, cuba, paris, venise, carnaval, panoramique, insectes, portrait, animaux, architecture, urbaine, gens, moments, photographe,canon, numerique, portfolio, galeries, paysages, france, photographie, aborigenes, sydney, route 66, las vegas, californie, boutique, tirage photos, carnaval,venise,place saint marc,saint marco." lang="fr">
<meta name="keywords" content="travel, Australia, united states, employed, india, cuba, paris, Venice, carnival, pan, insects, portrait, animals, architecture, urban, people, instants, photographer, cannon, numerique, portfolio, gallery, landscapes, France, photographs, aborigenes, Sydney, sorts for mailing 66, weary vegas, California, shop, printing photographs" lang="en">
<title>Photographies du Carnaval De Venise</title>
<style type="text/css">
<!--
-->
</style>
<style type="text/css">
<!--
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
-->
</style>
<style type="text/css">
<!--
body {
background-color: #000;
}
-->
</style>
<link href="style_galerie.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
<link rel="stylesheet" type="text/css" href="/shadowbox/shadowbox.css">
<script type="text/javascript" src="/js/jquery-latest.pack.js"></script>
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/tooltip.js"></script>
<script type="text/javascript" src="/shadowbox/shadowbox.js"> </script>
<script type="text/javascript">
Shadowbox.init ();
</script>
<link rel="shortcut icon" href="/images/appareil.ico" />
</head>
<!--code google analytics -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-13270017-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<!--fin du code Google analytics -->
<body>
<div id="page">
<!--debut bando -->
<div id="bando">
<p><a href="../../menu_francais.html"><img src="images/banniere_tuan_gallery_photographie.jpg" width="750" height="39" alt="Tuan-Gallery Photographie" /></a></p>
<p> </p>
<p>- PHOTOS DU CARNAVAL DE VENISE -</p>
</div>
<!--fin bando -->
<!--debut barre haut -->
<div id="barrehaut">
<p> </p>
<img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
<!--fin barre haut -->
<!--debut image -->
<?php
echo $content;
?>
<!--fin image -->
<!--debut droite -->
<!--fin droite -->
<!--debut barre bas -->
<div id="barrebas"><img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /><p></p></div>
<!--fin barre bas -->
<!--debut tableau -->
<div id="tableau">
<div class="pagination">
<ul>
<li class="currentpage">1</li>
<li><a href="galerie_photo_venise_2.html" class="screenshot" rel="/fr/venise/screen/screen_ven_2.jpg">2</a></li>
<li><a href="galerie_photo_venise_3.html"class="screenshot" rel="/fr/venise/screen/screen_ven_3.jpg">3</a></li>
<li><a href="galerie_photo_venise_4.html"class="screenshot" rel="/fr/venise/screen/screen_ven_4.jpg">4</a></li>
<li><a href="galerie_photo_venise_5.html"class="screenshot" rel="/fr/venise/screen/screen_ven_5.jpg">5</a></li>
<li><a href="galerie_photo_venise_6.html"class="screenshot" rel="/fr/venise/screen/screen_ven_6.jpg">6</a></li>
<li><a href="galerie_photo_venise_7.html"class="screenshot" rel="/fr/venise/screen/screen_ven_7.jpg">7</a></li>
<li><a href="galerie_photo_venise_8.html"class="screenshot" rel="/fr/venise/screen/screen_ven_8.jpg">8</a></li>
<li><a href="galerie_photo_venise_9.html"class="screenshot" rel="/fr/venise/screen/screen_ven_9.jpg">9</a></li>
<li><a href="galerie_photo_venise_10.html"class="screenshot" rel="/fr/venise/screen/screen_ven_10.jpg">10</a></li>
<li><a href="galerie_photo_venise_11.html"class="screenshot" rel="/fr/venise/screen/screen_ven_11.jpg">11</a></li>
<li class="nextpage"><a href="galerie_photo_venise_2.html">Suivant »</a></li>
</ul>
</div><p></p>
</div>
<!--fin tableau -->
<!--debut bas -->
<div id="bas"><img src="images/barre horizontale.jpg" width="500" height="1" alt="barre" /></div>
<!--fin bas -->
<!--debut explications -->
<div id="explications">
<p> </p>
<img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" />
</div>
<!--fin explications -->
<!--debut pied de page -->
<div id="menu">
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="../../menu_francais.html">Menu</a></li>
<li><a href="../accueil_galerie.html">Galerie Photos</a></li>
<li><a href="../boutique.html">Boutique</a></li>
<li><a href="../art&essais/art&essais_1.html">Art & Essais</a></li>
<li><a href="../presentation.html">A propos</a></li>
<li><a href="#" onclick="MM_openBrWindow('../contact.html','Contact','scrollbars=yes,width=500,height=350')">Contact</a></li>
<li><a href="../liens.html">Liens</a></li>
</ul>
</div>
<div id="barrefin"><img src="images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../../SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
<!--fin pied de page -->
<div id="pub">
<br/>
<script type="text/javascript"><!--
google_ad_client = "pub-7590267161782096";
/* 728x15, date de création 05/02/10 */
google_ad_slot = "3043799783";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<br/>
<div id="barrefin"><img src="../../images/barre horizontale.jpg" width="800" height="1" alt="barre" /></div>
</div>
</body>
</html>
fichier ajoutphotos
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include('sql_connect.inc.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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" href="css/slimbox2.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/slimbox2.js"></script>
<script type="text/javascript">
function cocher(liste,bouton) {
var i = 0;
var coche = false;
if (bouton.value == 'Tout cocher') {
coche = true;
bouton.value = 'Tout décocher';
} else {
coche = false;
bouton.value = 'Tout cocher';
}
while (liste[i]) {
liste[i].checked = coche;
i++;
}
}
</script>
<style type="text/css" media="screen">
img {
width: 100px;
height: 100px;
margin: 0px;
padding: 0px;
border: 0px;
}
table, td {
border-collapse: collapse;
}
td {
width: 200px;
height: 100px;
text-align: center;
}
tr {
border: 1px solid black;
}
h3 {
color: red;
}
#btn_valider {
padding: 10px;
color: maroon;
}
</style>
<title>Ajout de photos</title>
</head>
<body>
<div id="corps">
<?php
//Liste des pays autorisés dans la bdd
$pays = array('france','usa','inde','australie','java','japon');
//Si $_GET['pays'] est appelé alors on affiche la liste des photos qui peuvent être ajoutées pour ce pays
if (isset($_GET['pays']) && in_array($_GET['pays'],$pays)) {
//On récupère le numéro du dernier trajet pour ce pays
$req = $bdd->prepare("SELECT max(gal_trajet) FROM galerie_photos WHERE gal_pays=:pays");
$req->bindValue('pays',$_GET['pays'],PDO::PARAM_STR);
$req->execute();
$last_trajet = $req->fetch();
$req->closeCursor();
/*
La requête si dessous va compter les enregistrements pour un nom de photo,
afin de vérifier que cette photo n'est pas déjà présente dans la bdd
*/
$req = $bdd->prepare("SELECT count(gal_id) FROM galerie_photos WHERE gal_photo=:photo");
if ($ouvre = @opendir('uploads/petites/')) { //On ouvre le dossier uploads des petites photos pour lister les photos du dossier et les comparer avec celle déjà dans la bdd
?>
<form method="post" action="traitement.php?pays=<?php echo $_GET['pays']; ?>">
<table>
<?php
while (false !== ($fic = readdir($ouvre))) {
$req->bindParam('photo',$fic,PDO::PARAM_STR);
$req->execute();
if (($fic != ".") && ($fic != "..") && ($fic != 'petites')) { //On enlève le listage de dossier courant et précedent
$existe = $req->fetchColumn(); //Retourne le nombre d'enregistrement trouvé
if ($existe === '0') { //Si ne renvoi pas d'enregistrement alors on affiche les info pour ajouter la photo
?>
<tr>
<td>
<a href="<?php echo "uploads/petites/$fic"; ?>" rel="lightbox-atomium"><img src="<?php echo "uploads/petites/$fic"; ?>" alt="" /></a><br />
<?php echo $fic; ?>
</td>
<td>
Ajouter pour <strong><?php echo htmlspecialchars($_GET['pays']); ?></strong><input type="checkbox" name="fic[]" value="<?php echo $fic; ?>" />
</td>
<td>
<h4>Sens :</h4>
<p>
Horizontal <input type="radio" name="<?php echo "sens" . $fic; ?>" value="horizontal" /><br />
Vertical <input type="radio" name="<?php echo "sens" . $fic; ?>" value="vertical" />
</p>
</td>
<td>
<p>
Dernier numéro de trajet pour ce pays : <?php echo $last_trajet[0]; ?><br />
Ordre du trajet : <input type="text" name="trajet[]" maxlength="10" size="5" />
</p>
</td>
</tr>
<?php
} else { //Sinon une photo avec ce nom existe déjà
?>
<tr>
<td><a href="<?php echo "uploads/petites/$fic"; ?>" rel="lightbox-atomium"><img src="<?php echo "uploads/petites/$fic"; ?>" alt="" /></a></td>
<td colspan="3">
<h3>Une photo avec ce nom est déjà présente</h3>
</td>
</tr>
<?php
}
}
}
?>
<tr>
<td><a href="ajoutphotos.php">Retour au menu d'ajout</a></td>
<td><input type="button" value="Tout cocher" name="bouton" onclick="cocher(this.form.elements['fic[]'],this);"/></td>
<td>
Tout Horizontal<input type="radio" name="sens" value="horizontal" /><br />
Tout Vertical<input type="radio" name="sens" value="vertical" /><br />
Plusieurs choix <input type="radio" name="sens" value="plusieurs" checked="checked" />
</td>
<td><input type="submit" name="Valider" value="Valider" id="btn_valider" /></td>
</tr>
</table>
</form>
<?php
$req->closeCursor();
} else {
echo "<h1>Impossible d'ouvrir le dossier 'uploads/'</h1>";
}
} else {
?>
<h1>Choisissez le pays où ajouter des photos</h1>
<ul>
<?php
foreach ($pays as $lien_pays) {
?>
<li><a href="?pays=<?php echo $lien_pays; ?>"><?php echo ucfirst($lien_pays); ?></a></li>
<?php
}
?>
</ul>
<a href="index.php">Retour à l'accueil</a>
<?php
}
?>
</div>
</body>
</html>
mon fichier traitement
<?php
//Fichier de connexion à la bdd
include('sql_connect.inc.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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<style type="text/css" media="screen">
.error_sens {
color: red;
}
.error_fic {
color: blue;
}
</style>
<title>Traitement</title>
</head>
<body>
<div id="corps">
<?php
//Liste des pays dans la bdd
$liste_pays = array('france','usa','inde','australie','java','japon');
$pays = $_GET['pays'];
if (isset($_POST['Valider'])) {
$i = 0; //Ne pas toucher
$ajout = 0; //Ne pas toucher
//On vérifie que les champs importants sont remplis
if (isset($_GET['pays'])
&& in_array($_GET['pays'],$liste_pays)
&& isset($_POST['fic'])
) {
//Pour chaque photo cochée on va l'ajouter dans la bdd
foreach ($_POST['fic'] as $photo) {
$sens = ''; //Ne pas toucher
//Recupère le trajet s'il est défini, sinon on le met à zéro
if (isset($_POST['trajet'][$i]) && is_numeric($_POST['trajet'][$i])) {
$trajet = $_POST['trajet'][$i];
} else {
$trajet = 0;
}
//On remplace les . par des _ car dans les $_POST les . sont automatiquement modifiés en _
if (isset($_POST['sens']) && ($_POST['sens'] != 'plusieurs')) {
$sens = $_POST['sens'];
} else {
if (isset($_POST['sens' . strtr($photo,".","_")])) {
$sens = $_POST['sens' . strtr($photo,".","_")]; //Sens choisi pour la photo
} else {
?>
<span class="error_sens">La photo <?php echo $photo; ?> a été cochée mais aucun sens ne lui ai défini.</span><br />
<?php
}
}
if ($sens != '' ) {
$ajout++;
$petites = 'uploads/petites/' . $photo; //Chemin et nom des photos en petites
$grandes = 'uploads/grandes/' . $photo; //Chemin et nom des photos en grandes
if (file_exists($petites) && file_exists($grandes)) {
//On déplace la miniature
rename('uploads/petites/' . $photo, $pays . '/petites/' . $photo);
//On déplace la photo en grande taille
rename('uploads/grandes/' . $photo, $pays . '/grandes/' . $photo);
//On ajoute la photo dans la bdd
$req = $bdd->prepare("INSERT INTO galerie_photos VALUES('',:pays,:photo,:sens,:trajet)");
$req->bindValue('pays',$pays,PDO::PARAM_STR);
$req->bindValue('photo',$photo,PDO::PARAM_STR);
$req->bindValue('sens',$sens,PDO::PARAM_STR);
$req->bindValue('trajet',$trajet,PDO::PARAM_INT);
$req->execute();
} elseif (file_exists($petites) && !file_exists($grandes)) {
echo "<span class=\"error_fic\">La photo $photo n'est pas présente en grande taille</span><br />\n";
} elseif (!file_exists($petites) && file_exists($grandes)) {
echo "<span class=\"error_fic\">La photo $photo n'est pas présente en petite taille</span><br />\n";
}
} else {
}
$i++;
}
if ($ajout > 0) {
?>
<h1>Photos ajoutées avec succès</h1>
<a href="index.php">Retour à l'accueil</a>
<?php
}
} else {
header('Location: ajoutphotos.php?pays=' . $pays);
}
} else {
header('Location: ajoutphotos.php?pays=' . $pays);
}
?>
</div>
</body>
</html>
<?php
//Fichier de connexion à la bdd
include('sql_connect.inc.php');
$i = 0; //Ne pas toucher !
$req = $bdd->prepare("SELECT DISTINCT gal_pays FROM galerie_photos");
$req->execute();
while ($donnees = $req->fetch()) {
$liste_pays[$i] = $donnees['gal_pays']; //Liste des pays
$i++;
}
//On sécurise le $_GET['pays']
if (isset($_GET['pays'])
&& in_array($_GET['pays'],$liste_pays)
&& isset($_GET['page'])
&& is_numeric($_GET['page']))
{
$pays = $_GET['pays']; //On enregistre le pays dans une variable
$nb_photos_page = 5; //Nombre de photos par page
/*
$_GET['page'] permet de savoir sur quel page on est positionnee
$start permet de savoir à partir de quel moment on commence l'affichage des fichiers sur la page
*/
if ($_GET['page']>0) {
$start = $_GET['page'] * $nb_photos_page - $nb_photos_page;
$page = $_GET['page'];
} else {
$_GET['page'] = str_replace("-",'',$_GET['page']);//on enleve le/les - si quelqu'un les ecrits...
$start = $_GET['page'] * $nb_photos_page - $nb_photos_page;
$page = $_GET['page'];
}
?>
<!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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" href="css/slimbox2.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/slimbox2.js"></script>
<style type="text/css" media="screen">
body {
margin: 0px auto 0px auto;
padding: 0px;
width: 1024px;
}
#galerie {
width: 1024px;
margin: 0px auto 0px auto;
text-align: center;
}
img {
height: 100px;
width: 100px;
}
</style>
<title>Contenudossier</title>
</head>
<body>
<div id="galerie">
<?php
/*
On va afficher la galerie pour le pays choisi
Et pour le numéro de la page sur laquelle on est
*/
$nb_fichiers_total = 0; //Ne pas toucher
$req = $bdd->prepare("SELECT gal_photo FROM galerie_photos WHERE gal_pays=:pays ORDER BY gal_trajet LIMIT $start,$nb_photos_page");
$req->bindValue('pays',$pays,PDO::PARAM_STR);
$req->execute();
echo "<p>\n";
while ($donnees = $req->fetch()) {
$photo = $donnees['gal_photo'];
?>
<a href="<?php echo "$pays/grandes/$photo"; ?>" rel="lightbox-atomium"><img src="<?php echo "$pays/petites/$photo"; ?>" alt="" /></a>
<?php
}
echo "</p>\n";
//Mise en place de la pagination
$nb_total = $bdd->prepare("SELECT COUNT(*) AS nb_total FROM galerie_photos WHERE gal_pays=:pays");
$nb_total->bindValue('pays',$pays,PDO::PARAM_STR);
$nb_total->execute();
$nb_total = $nb_total->fetch();
$nb_total = $nb_total['nb_total'];
$nb_pages = ceil($nb_total / $nb_photos_page);
?>
<p>[
<?php
for ($i=1;$i<=$nb_pages;$i++) {
if ($i == $page ) {
?>
<span class="page_focus"><?php echo $i; ?></span> -
<?php
} else {
?>
<a href="?pays=<?php echo $pays; ?>&page=<?php echo $i; ?>" class="page_non_focus"><?php echo $i; ?></a> -
<?php
}
}
?>
]</p>
<?php
} else {
header("Location: index.php");
}
?>
<a href="index.php">Retour à l'accueil</a>
</div>
</body>
</html>
Code : Tout sélectionner
Warning: include(sql_connect.inc.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 4
Warning: include() [function.include]: Failed opening 'sql_connect.inc.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 4Code : Tout sélectionner
Warning: include(sql_connect.inc.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 4
Warning: include() [function.include]: Failed opening 'sql_connect.inc.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 4
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 74include("inc/sql_connect.inc.php");
Pour ce qui est des pays, dans ton fichier ajoutphotos.php, vers le début, juste après le <div id="corps">, tu as une variable $pays qui liste les pays autorisés dans la bdd.<?php
//Liste des pays autorisés dans la bdd
$pays = array('france','usa','inde','australie','java','japon','unautre','encoreunautre');
Par contre tu utilise mal le système de template qui est décrite dans le tutoriel, tu devrais peut-être le revoir pour bien voir la façon dont on intègre les différents pages par la suite.if(!isset($_GET["p"])){$_GET["p"]=venise/venise_1.php;}
//Qui doit être corrigé en
if(!isset($_GET["p"])){$_GET["p"]='venise/venise_1';}
header("Location: index.php");
//par
header("Location: galerie.php");
mais ca ne solutionne pas le problème..j'arrive sur ma page 404 "page introuvable"; pourtant le template s'affiche bien, il manque juste le contenu.. donc les photos lool...
if(!file_exists("content/".$_GET["p"].".php")){$_GET["p"]=404;}
...