galerie en base de donnée

Eléphant du PHP | 77 Messages

30 mars 2011, 18:34

Salut,

J'ai la même page d'erreur si je veux faire apparaitre mon template...je comprends pas elle marchait cette page test avant

Eléphant du PHP | 241 Messages

30 mars 2011, 19:54

Bonsoir,
tu as mis en place le fichier .htaccess comme dans le tutoriel ? si oui essaye de l'enlever pour voir si ca fonctionne mieux.

Sur quel serveur fais-tu tes tests ? WAMP ?
Le serveur est bien démarré ?
Es-tu dans le dossier wamp/www/tuan-galerie ?
Si non as-tu ajouté un alias ?
Que faisais-tu dans la nuit du 11 Mai 2007 au 30 Juin 2008 ?
(oups...je m'égares :mrgreen: )

Eléphant du PHP | 77 Messages

30 mars 2011, 20:07

Bonsoir,

Non je n'ais pas de .htaccess, j'ai arrété le tuto avant. Pas du url rewriting et de .htaccess (je suis obligé de le faire ??)

Je fais les tests sur XAMPP
Serveur bien démarré
Oui bien placé ( vu que ça marchait avant et que je n'ai rien touché)
un alias ???

Eléphant du PHP | 77 Messages

30 mars 2011, 20:15

Si je test un autre site (j ai prestashop par exemple egalement en local) et bien ca marche
....

Eléphant du PHP | 241 Messages

30 mars 2011, 20:44

C'est vraiment bizarre :/
Il n'y a que la page ajoutphotos.php qui ne marche pas ?

Eléphant du PHP | 77 Messages

30 mars 2011, 20:51

Non plus rien du site ne marche (enfin il y avait que cette page qui servait de test a la decomposition en php)

ma page template situé a la racine du site :
// 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>&nbsp;</p>
    <p>- PHOTOS DU CARNAVAL DE VENISE -</p>
  </div>
  
  <!--fin bando -->
  <!--debut barre haut -->
  
  <div id="barrehaut">
  <p>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</p></td>
      </tr>
    </table>
  </div>
l'adresse en localhost :
http://localhost/tuan-galerie/galerie.p ... e/venise_1

je ne vois pas de quoi ca peut venir

Eléphant du PHP | 241 Messages

30 mars 2011, 21:26

Il faudrait que tu me montre l'architecture de tes dossiers stp.

Eléphant du PHP | 77 Messages

30 mars 2011, 21:42

www/content/
- autralie
+grandes
+ petites
- venise
+ grandes
+ petites
+ venise_1
- etc..

www/
galerie.php
template.php

Tu as besoins d'infos plus précises ?

Eléphant du PHP | 241 Messages

30 mars 2011, 22:32

Tes fichiers sont dans le dossier www/ c'est bien ca ?
Mais tu me dit que tu utilise ce lien pour accéder à ta page galerie.php : http://localhost/tuan-galerie/galerie.p ... e/venise_1
Le dossier tuan-galerie existe-t-il ?

De plus dans ton fichier galerie.php tu as une erreur.
<?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.)

Si tu entre comme tu l'as fait "venise_1.php", dans le if(!file_exists...) tu vas tester si le fichier content/venise_1.php.php existe.
Comme tu le remarque, il y a une extension .php en plus, il ne faut pas la mettre dans le $_GET, ou alors tu supprime le .".php" dans le file_exists et dans l'include !

Il manquait aussi le nom du dossier.

En plus quand tu écris toi même l'url, tu ne fais pas l'erreur :D

Eléphant du PHP | 77 Messages

31 mars 2011, 15:26

Salut !!!!!

Alors tout d'abord je tiens a m'excuser, l'erreur venait de moi !!! c'est tuan-gallery le nom du dossier et pas tuan-galerie !!!

Donc j'ai accès a la page ajoutphotos.php (beau boulot d'ailleurs)
Cependant, tous les dossiers de mes pays n'apparaissent pas (il doit en manquer la moitié alors qu'ils sont crées)

Pour l'utiliser, je mets donc toutes mes photos (toutes destinations confondues) dans le dossier upload (vignettes et grandes ??)
Je vois qu'en suite je peux choisir horizontale, verticale et l ordre d'apparition..comment je fais le tri avec les verticales, comme j ai plus d’horizontales que de verticales, elles vont être positionnées quand ? l id des verticales doit se suivre alors ?? (enfin oui c'est logique je suis bête je pense)
Besoin de faire la manip pour les grandes également ???

Il y a un soucis dans les accents ca fait des trucs bizarre (page ajoutphotos.php) j ai essayé en rajoutant
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> dans le code mais ca n'a pas solutionné !!

Du coup, comment je fais pour mes pages


je mets le code de galerie bdd dans venise_1 ?
je vais avoir besoin de faire une page pour chaque pays ou je garde la même (toutes les photos peuvent y être traitées ?)

je pense que je me suis très mal exprimés, je ne sais pas comment dire exactement, mais il y a des zones floues pour moi..lol

PS : merci, merci, merci, merci


EDIT : je viens d'essayer de placer tout ca, mais dès que j'envois dans la bdd j'obtiens cette erreur :

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

Eléphant du PHP | 241 Messages

31 mars 2011, 23:03

Bonsoir,
c'est de ma faute !!
je viens de voir que dans le fichier de traitement.php en haut du fichier j'ai une ligne avec un include, include("inc/sql_connect.inc.php");
En fait dans ce fichier je mets la connexion à la bdd, mais je ne t'ai pas fait créer ce fichier #-o
Donc, soit tu crées un fichier sql_connect.inc.php que tu place dans le dossier inc/ (ou ailleur c'est toi qui vois !), et dedans tu fais la connexion, puis ensuite en haut de tous tes fichiers tu fais un appel de ce fichier.


Donc au lieu d'avoir ca sur tous tes fichiers en haut
<?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.

Eléphant du PHP | 77 Messages

01 avr. 2011, 20:05

Salut,

j'ai donc cree mon fichier sql_connect.inc.php, situé dans le dossier inc
<?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>&nbsp;</p>
    <p>- PHOTOS DU CARNAVAL DE VENISE -</p>
  </div>
  
  <!--fin bando -->
  <!--debut barre haut -->
  
  <div id="barrehaut">
  <p>&nbsp;</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>&nbsp;</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>

mon fichier galeriebdd
<?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>

Et lorsque je vais sur ajoutphotos, j ai au dessus de mes pays (dont il en manque toujours la moitié) ces erreurs

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 4
et quand je clic sur un pays, j'ai ces erreurs

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 4 Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\tuan-gallery\ajoutphotos.php on line 74
Désolé j'ai pas réussi a tout faire marcher du premier coup :(

Eléphant du PHP | 241 Messages

01 avr. 2011, 22:43

Bonsoir,
comme tu utilise le système de template, l'appel du fichier sql_connect.inc.php tu peux le faire que dans ton fichier galerie.php, comme de toute façon le code qu'il y dans ton fichier galerie.php sera exécuter, tu n'as pas besoin de le rappeler à chaque page.
Ensuite, si ce fichier est dans le dossier inc/, il faut penser à la mettre dans la fonction include !
include("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.
Il faut justement que tu rajoutes les pays qui seront autorisés dans cette variable, il faut faire de même dans le fichier traitement.php dans la variable $liste_pays.
<?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.
Et fait attention dans ton fichier galerie.php tu n'as pas corrigé l'erreur du
if(!isset($_GET["p"])){$_GET["p"]=venise/venise_1.php;}
//Qui doit être corrigé en
if(!isset($_GET["p"])){$_GET["p"]='venise/venise_1';}

Eléphant du PHP | 77 Messages

02 avr. 2011, 11:48

Salut,

Alors les modifications pour l'appel de la base de donnée, le rajout de pays, et la correction de l'erreur dans galerie.php ont marché.

Les photos ajoutées avec succès, mais impossible de les voir....

Une fois ajouté je suis renvoyé sur la page index.php....qui est pour moi la page galerie.php
j'ai donc modifié a la fin de galeriebdd.php
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

Je ne vois pas ou je me trompe dans le tuto,
la page index pour lui c'est galerie pour moi
et je n'ai pas besoin d'index dans mon dossier content, ( a moins que je puisse m en servir pour faire "acceuil_galerie" ? )
son dossier article c'est venise (ou autre pour moi) et le fichier article_1 c'est venise_1. D'ailleurs je ne sais pas si j'ai besoin de garder cette configuration la, il me faut une page par pays ?? en fait je suis en train de me perdre la, je vois plus du tout l'architecture, l'influence que va avoir ton code etc..

Eléphant du PHP | 241 Messages

02 avr. 2011, 13:42

Salut,
la page index.php c'est en fait la page recherché par défaut par Apache, tu peux très bien en définir une autre (tu as choisi galerie.php c'est très bien).
ta page galeriebdd.php est-elle dans le dossier content/ ?
car lors de ton test dans le fichier galerie.php tu vérifie que le fichier existe bien, et tu le cherche dans le dossier content/
Fichier galerie.php
...
if(!file_exists("content/".$_GET["p"].".php")){$_GET["p"]=404;}
...