galerie en base de donnée

Eléphant du PHP | 241 Messages

25 mars 2011, 23:06

Mais au finale, y a-t-il besoin d'une base de données ? :mrgreen:
On peut très bien lister les fichiers présent dans un dossier !

Eléphant du PHP | 77 Messages

26 mars 2011, 09:44

L avantage c'est qu en plus j apprenne le fonctionnement et l utilisation dune base de donnée si par la suite j en ai encore besoin..

ViPHP
AB
ViPHP | 5818 Messages

26 mars 2011, 18:14

Oui et puis dans une bdd on peut avoir un champ "ordre" qui permettra de définir l'ordre d'affichage des photos, sinon en listant un dossier ce sera par ordre alphabétique et dépendra du nom des photos, ce qui n'est pas pratique.

Eléphant du PHP | 77 Messages

27 mars 2011, 15:32

Ok,
comment dois je procéder ??

Eléphant du PHP | 241 Messages

27 mars 2011, 20:26

Salut,
pour la bdd, je me disais qu'on pouvait peut-être modifier quelque chose.
Parce que de la façon dont tu veux ton site, tu as par exemple une galerie pour la france, toutes les photos de france iront au même endroit.
Donc en gros, une table avec 3 champs seraient suffisant.
Un champ id
Un champ pays
Et un champ image

Même plus besoin de se casser la tête avec une table externe pour les pays, et plus besoin de mettre toutes les photos dans un seul champ pour le pays.
CREATE TABLE `galerie`.`galerie_photos` (
`gal_id` INT NOT NULL ,
`gal_pays` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`gal_photo` VARCHAR( 300 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `gal_id` ) 
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
PS : j'avais dis que je posterai un début de code, ca va venir promis :D

Eléphant du PHP | 77 Messages

27 mars 2011, 20:37

Il faut que je supprime ce qu'on a fait ??
Ou je crée cette table en plus et on va s'occuper en fait que de celle-ci ??

Après pour le fait que les photos ne vont que dans leur catégorie, je ne sais pas, je pense que oui, je réfléchissais pour la boutique mais c'est trop au dessus de mes compétences de le faire en php, donc je mettrais les photos (moins que dans les pays) en html, avec juste un bouton paypal !

Donc a moins que je me trompe, oui les photos apparaitront juste dans leur catégorie comme tu le disais !

Et ne t’inquiètes pas , c'est pas grave pour le code, je pense bien que tu ne passes pas ta vie a faire du code pour tout le monde, et heureusement LOL, c'est déjà très gentil de ta part de m'aider, je ne vais donc pas être exigeant en plus !

ViPHP
AB
ViPHP | 5818 Messages

28 mars 2011, 01:15

Donc en gros, une table avec 3 champs seraient suffisant.
Un champ id
Un champ pays
Et un champ image

Même plus besoin de se casser la tête avec une table externe pour les pays, et plus besoin de mettre toutes les photos dans un seul champ pour le pays.
CREATE TABLE `galerie`.`galerie_photos` (
`gal_id` INT NOT NULL ,
`gal_pays` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`gal_photo` VARCHAR( 300 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `gal_id` ) 
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
PS : j'avais dis que je posterai un début de code, ca va venir promis :D
Effectivement comme une photo ne peut provenir que d'un seul pays, pas besoin de seconde table avec les pays.
Perso je rajouterais un champ "catégorie" pour pouvoir faire un tri par catégorie (toujours si une même photo ne peut appartenir qu'à une seule catégorie).

Eléphant du PHP | 241 Messages

28 mars 2011, 11:56

Salut,
pas bête du tout, surtout qu'il y a l'histoire des photos verticales et horizontales, puis aussi celui du trajet !
4) pour l'apparition c'est assez complexe dans mon cas
pour un pays, il faut trier horizontales ensemble et verticales ensembles, puis il y a une continuité dans la progression du voyage, un "trajet". C'est possible d'arriver a choisir tout ça ?? (dans ce cas la ce serait donc par numéro d'id non ?)
Le champ supplémentaire pourrait donc être celui du sens de l'image.
Pour le trajet, soit on garde l'id, ce qui oblige à rentrer les photos dans l'ordre, soit on rajoute un autre champ trajet.

Eléphant du PHP | 77 Messages

28 mars 2011, 12:24

Et le champs trajet en gros ça revient au même qu'avec id_pays pour la table photos qu'on avait réalisée ? un numéro qui va donner l'ordre d'apparition en gros, et ce opur chaque pays..

Eléphant du PHP | 241 Messages

28 mars 2011, 12:40

Salut,
mouai en très gros :mrgreen:
C'est un champ qui servira pour un tri lors de l'affichage des photos

Mais je suis en train de peser le pour et le contre de rajouter un champ trajet, je pense que ca pourrait être plus utile que d'utiliser le champ id pour l'ordre d'affichage !

Eléphant du PHP | 77 Messages

28 mars 2011, 12:58

Oups, salut c'est vrai !!

Ok, trop hate que ca marche :D :mrgreen:

ViPHP
AB
ViPHP | 5818 Messages

28 mars 2011, 22:24

Un champ id tel qu'on l'entend couramment sert à identifier une ligne de la bdd (ici une photo), cet identifiant doit donc être unique et doit ne pas servir à autre chose .

Concernant le trajet, c'est comme une catégorie cela fait simplement un champ de plus (rien n'empêche de faire les deux).

Pour ordonner l'affichage des images, si vous souhaitez pouvoir les ordonner par trajet ou par catégorie, il faudra un champ "ordre" pour chacun.
Normalement pas besoin de champ "ordre" par pays si vous en avez un (ou deux) pour les sous critères (trajet ou/et catégorie).

On a souvent aussi un (ou deux) champ "dimension" pour indiquer les dimensions des images.

Ensuite rien n'empêche de rajouter une table "catégorie" et une table "trajet" pour pouvoir ordonner les catégories ou les trajets entre eux, faire des commentaires par rubrique etc.

Eléphant du PHP | 241 Messages

29 mars 2011, 15:40

Salut salut,
merci pour ces précisions AB, je pensais bien que d'utiliser l'id pour l'histoire du trajet n'était pas une bonne idée, et ton explication me rassure dans le choix final !!

Tout ce que je mets peut bien évidemment être modifié, je ne dis pas que ma méthode est la meilleur ou quoi que ce soit !
Si vous avez des idées pour améliorer le code, la façon de faire etc. pas de problème, faites nous en part !!

Tout d'abord, on utilise une seule table, les deux qu'on avait fait au début peuvent être supprimées !
CREATE TABLE IF NOT EXISTS `galerie_photos` (
  `gal_id` int(11) NOT NULL AUTO_INCREMENT,
  `gal_pays` varchar(30) NOT NULL,
  `gal_photo` varchar(100) NOT NULL,
  `gal_sens` enum('horizontal','vertical') NOT NULL DEFAULT 'horizontal',
  `gal_trajet` int(11) NOT NULL,
  PRIMARY KEY (`gal_id`),
  UNIQUE KEY `gal_photo` (`gal_photo`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
On dispose du champ gal_pays pour renseigner le pays de la photo, le champ gal_photo qui correspond au nom de la photo, le champ gal_sens pour choisir vertical ou horizontal, et enfin le champ gal_trajet qui permet de définir un ordre d'apparition des photos.


Tout d'abord il y a quelques trucs à mettre en place avant de commencer.
Je suis parti du principe que les photos en grandes et petites tailles ont le même nom, mais séparer dans des dossiers grandes et petites pour chaque pays.
Il y aura un dossier uploads avec lui aussi deux dossiers grandes et petites, dans le quel tu viendras uploader les photos que tu devras rajouter dans ta bdd.
www/
  • uploads/
    • grandes/
    • petites/
  • france/
    • grandes/
    • petites/
    etc...
Il faudra d'abord créer tous les dossiers de tous les pays avant de pouvoir ajouter des photos dans la bdd.


Première page, l'ajout des photos dans la BDD
Page ajoutphotos.php
<?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());
}
?>

<!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>
Au début du fichier, il y a un tableau qui contient le nom des pays autorisés dans la bdd.


Le traitement d'ajout des photos est situé dans un autre fichier, ce sera plus pratique pour comprendre, que de tout mettre dans le même fichier :mrgreen:
Page traitement.php
<?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>
Et enfin, la page qui permet de voir ces galeries de photos
Page galeriebdd.php
<?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('<html><body><h1>Erreur de connexion à la BDD</h1></body></html>');
}

$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>

J'ai mis du css et autre truc javascript dans les pages, c'est pour permettre d'avoir quelque chose d'un minimum structuré avant de commencer à tout modifier
Donc si ca t'intéresse :
http://www.digitalia.be/software/slimbox2#download, c'est un effet sur les images pour les agrandir.
Si jamais ca ne t'intéresse pas, dans les quelques liens des photos <a> il y a une propriété rel="lightbox-atomium", il faut simplement supprimer cette attribut.


Si il y a des choses qui conviennent pas, que tu as besoin d'explications, d'aide, ou quoi que ce soit d'autre, n'hésite pas !


Comme je l'ai déjà dit, si des personnes veulent aider, (même un petit truc tout bête) ce n'est pas un problème ! (AB m'a déjà bien servit :P )

Eléphant du PHP | 77 Messages

29 mars 2011, 21:25

merci, merci

Table crée, j'ai bien crée mes dossier
- france
petites
grandes
etc..

j'ai placé les fichiers ajoutphotos.php , traitement.php , galeriebdd.php a la racine de mon site (en local)
voila ce que j'ai rempli dans ajoutphotos.php
$db_host = "localhost"; //Lieu où est héberger la BDD

        $db_name = "tuan-galerie"; //Nom de la BDD

        $db_login = "root"; //Login de connexion à la BDD  (j'ai aussi testé "root@localhost")

        $db_mdp = ""; //Mot de passe de connexion à la BDD
et j'arrive sur ca comme page

Code : Tout sélectionner

Objet non trouvé! L'URL requise n'a pu etre trouvée sur ce serveur. Si vous avez tapé l'URL à la main, veuillez vérifier l'orthographe et réessayer. Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site. Error 404 localhost 29/03/2011 21:15:32 Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
Pourtant c'est les infos basique que j'ai rentré...je me rappel pas avoir mit un pass...je peux voir ca dans ma bdd les infos ??
Mon phpmyadmin

Code : Tout sélectionner

Serveur: localhost via TCP/IP Version du serveur: 5.1.41 Version du protocole: 10 Utilisateur: root@localhost Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) Serveur web Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 Version du client MySQL: 5.1.41 Extension PHP: mysqli
comme adresse je tape http://localhost/tuan-galerie/ajoutphotos.php
ou est je fais une erreur ?

Sinon pour galeriebdd.php, si j'ai suivi ce tuto pour decomposer mon site en php (http://www.grafikart.fr/tutoriels/decom ... te-php-102), je dois placer mon code ou ?

Si tu as besoin de plus amples infos dis moi

Eléphant du PHP | 241 Messages

30 mars 2011, 12:22

Salut,
Pour l'erreur de chargement de la page, si tu ajoutes une autre page est-ce que cette nouvelle page peut-être ouverte ou as tu la même erreur ?

Pour l'histoire du tutoriel, tu fais comme dans le tuto, tu ne prends que la partie de la page ajoutphotos.php que tu veux mettre dans ton template (avec la variable $content dans l'exemple).
En gros, tu ne garde que le code entre la balise <div id="corps">...</div>, et tu efface le reste.
<div id="corps">
<!-- On ne garde que ce code, le reste peut être effacé (y compris la balise <div id="corps">)-->
</div>
Ensuite comme dans le tutoriel, dans ton index.php, selon l'appel en $_GET tu vas inclure la page demandé.
<?php
...
if (isset($_GET['p']) && file_exists($_GET['p'] . '.php')) {
	ob_start();
	include($_GET['p']);
	$content = $ob_get_content();
	ob_end_clean();
}
/*
	Donc si $_GET['p'] = 'ajoutphotos' et que le fichier existe
	on va chercher le code de cette page contenu dans le fichier ajoutphotos.php
*/
...
?>