besoin aide concrète PHP (niv débutant)
besoin aide concrète PHP (niv débutant)
Bonjour à tous,
J'ai mis en ligne un petit site sans prétention pour la bibliothèque municipale de mon lieu de résidence.
Site :
http://bibliothequeambon.free.fr
J'utilise Kompozer et j'ai appris les notions de base pour les CSS. Je voudrais maintenant m'attaquer au PHP car je suis conscient de son utilité. Pour le moment j'ai quelques notions : j'ai simplement crée un formulaire de contact en PHP (très simple et sans moyen de contrôle sur les champs).
Pour aller plus loin je souhaite utiliser du PHP sur la page "coup de coeur". L'idée est toute simple : chaque mois il faudrait trouver sur cette page le coup de cœur d'un bénévole. C'est à dire ses commentaires sur un livre + une image de la couverture du bouquin.
Plutôt que d'avoir 12 pages pour chaque mois de l'année, j'aimerais que le commentaire du mois se charge dans la même page. Je souhaite aussi que le visiteur puisse consulter le coup de cœur des mois précédents. J'imagine que l'usage du PHP est ici parfaitement adapté ?
Je souhaite coder moi même, mais pour débuter j'ai besoin de savoir ce dont j'ai besoin pour obtenir ce résultat. Je sollicite donc votre aide.
- Combien de pages me faudra-t'il ? (nombre de pages HTML et PHP)
- La page "coup de coeur" sera-t-elle en HTML ou en PHP ?
- Il me faudra une base de données. Puis-je renseigner la BDD directement depuis mon site (via un petit formulaire) ou bien faut-il aller remplir les tables directement dans mysql ?
- Pour la page d'archives (= mois précédents) quel extension faut-il choisir ? HTML ou PHP ?
Merci à qui pourra m'éclairer un peu.
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
J'ai mis en ligne un petit site sans prétention pour la bibliothèque municipale de mon lieu de résidence.
Site :
http://bibliothequeambon.free.fr
J'utilise Kompozer et j'ai appris les notions de base pour les CSS. Je voudrais maintenant m'attaquer au PHP car je suis conscient de son utilité. Pour le moment j'ai quelques notions : j'ai simplement crée un formulaire de contact en PHP (très simple et sans moyen de contrôle sur les champs).
Pour aller plus loin je souhaite utiliser du PHP sur la page "coup de coeur". L'idée est toute simple : chaque mois il faudrait trouver sur cette page le coup de cœur d'un bénévole. C'est à dire ses commentaires sur un livre + une image de la couverture du bouquin.
Plutôt que d'avoir 12 pages pour chaque mois de l'année, j'aimerais que le commentaire du mois se charge dans la même page. Je souhaite aussi que le visiteur puisse consulter le coup de cœur des mois précédents. J'imagine que l'usage du PHP est ici parfaitement adapté ?
Je souhaite coder moi même, mais pour débuter j'ai besoin de savoir ce dont j'ai besoin pour obtenir ce résultat. Je sollicite donc votre aide.
- Combien de pages me faudra-t'il ? (nombre de pages HTML et PHP)
- La page "coup de coeur" sera-t-elle en HTML ou en PHP ?
- Il me faudra une base de données. Puis-je renseigner la BDD directement depuis mon site (via un petit formulaire) ou bien faut-il aller remplir les tables directement dans mysql ?
- Pour la page d'archives (= mois précédents) quel extension faut-il choisir ? HTML ou PHP ?
Merci à qui pourra m'éclairer un peu.
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Re: besoin aide concrète PHP (niv débutant)
C'est toujours la grande question.jpv56 a écrit :- Combien de pages me faudra-t'il ? (nombre de pages HTML et PHP)
En php, on peut avoir une seule page avec un énorme code, à laquelle on passe tout plein de paramètres et qui va choisir ce qu'elle doit afficher ; ou alors tout plein de pages sur lesquelles on inclut simplement des bouts de codes tels que l'entête, le menu, le pied de page...
Le nombre de pages idéal est un savant compromis entre ces deux extrêmes.
A priori toutes tes pages seront en php...jpv56 a écrit :- La page "coup de coeur" sera-t-elle en HTML ou en PHP ?
Pas nécessairement. On peut tout à fait utiliser des fichiers texte constitués de bouts de HTML et les inclure dans la page principale. N'oublie pas qu'il existe des alternatives à MySQL. Si ton hébergeur a installé PostgreSQL, tu pourrais le préférer, ou alors SQLite, etc.jpv56 a écrit :- Il me faudra une base de données.
http://ch.php.net/manual/fr/refs.database.vendors.php
PS : pour mysql, utilise l'extension mysqli et pas mysql qui est "vieille".
Bien sûr que tu le peux, mais il faudra apprendre la syntaxe SQL (INSERT INTO).jpv56 a écrit :Puis-je renseigner la BDD directement depuis mon site (via un petit formulaire)
Cela risque d'être difficile, et pas forcément utile. Mieux vaut passer passer par une interface telle que phpmyadmin...jpv56 a écrit :ou bien faut-il aller remplir les tables directement dans mysql ?
pour moi, typiquement tu auras une page coeur.php à laquelle tu pourras passer les arguments "mois" et "an", avec des valeurs par défaut sur le mois/année courant (avec la fonction getdate) :
coeur.php?mois=03&an=2009
Avec cela, la page va aller chercher le coup de coeur du mois, soit dans la base de données, soit dans un fichier texte.
Pour afficher les archives tu appelleras
coeur.php?mois=02&an=2009 pour avoir celle de février par exemple. N'oublie pas de vérifier que le contenu existe (pour empêcher d'utiliser coeur.php?mois=03&an=1834 ou coeur.php?mois=13&an=43784

Pour les commentaires tu auras une table "commentaire" avec un id (clé primaire), un champ "mois" et un "an" et finalement un "commentaire". Dans la page coup de coeur du mois, tu inclueras les commentaires en faisant un SELECT avec la clause WHERE qui va bien !
Bonjour Calimo,
Je te remercie d'avoir pris sur ton temps pour me répondre aussi précisément.
J'y vois plus clair mais je pensais que l'affaire serait moins compliquée
Il va falloir que j'apprenne et assimile pas mal de choses, notamment le langage SQL.
Pour débuter je pense découper en plusieurs pages PHP, sinon je risque de m'emmêler les pinceaux dans le code.
Je te remercie encore et je me mets au boulot !...
++
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Je te remercie d'avoir pris sur ton temps pour me répondre aussi précisément.
J'y vois plus clair mais je pensais que l'affaire serait moins compliquée

Il va falloir que j'apprenne et assimile pas mal de choses, notamment le langage SQL.
Pour débuter je pense découper en plusieurs pages PHP, sinon je risque de m'emmêler les pinceaux dans le code.
Je te remercie encore et je me mets au boulot !...
++
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Je suis assez d'accord avec Benoît. Apprendre tout d'un coup n'est pas si facile.Benoit a écrit :Si tu n'as que douze enregistrements par an, peut-être que tu peux utiliser de simples fichiers texte plutôt qu'une base de données, ce qui t'éviterait de devoir apprendre le SQL du moins dans un premier temps
Par exemple tu pourrais avoir une arborescence de type :
Code : Tout sélectionner
/coupsdecoeur
/coupsdecoeur/200901
/coupsdecoeur/200901/jaquette.jpg
/coupsdecoeur/200901/commentaire.txt (ou html)
/coupsdecoeur/200902
/coupsdecoeur/200902/jaquette.jpg
/coupsdecoeur/200902/commentaire.txt
Tu vérifies que le dossier /coupsdecoeur/annee-mois existe, et tu construis ta page en récupérant d'une part l'image de la jaquette, d'autre part le commentaire. Ici tu auras besoin des fonctions PHP de manipulation de fichiers (voir la doc)
Pour les mois précédents, tu peux construire des liens comme ceci :
Code : Tout sélectionner
<a href="/coupsdecoeur.php?mois=2009-01">Coup de cœur de janvier</a>
N'hésite pas à demander plus de précisions

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0 (.NET CLR 3.5.30729)
Voir ma configuration
Merci Benoit et Asumbaa pour vos précisions.
Je ne savais pas que le PHP pouvait lire le contenu d'autres fichiers texte. Décidément c'est un langage intéressant !
Vous avez raison, comme je n'ai que 12 livres par année je vais essayer d'appeler plutôt un fichier texte. Le SQL attendra un peu.
Pour afficher ces informations (voir ci dessous) pouvez-vous juste m'indiquer les fonctions essentielles à utiliser :
> le commentaire
> l'image de couverture du livre
> les archives (mois précédents)
Merci encore.
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Je ne savais pas que le PHP pouvait lire le contenu d'autres fichiers texte. Décidément c'est un langage intéressant !
Vous avez raison, comme je n'ai que 12 livres par année je vais essayer d'appeler plutôt un fichier texte. Le SQL attendra un peu.
Pour afficher ces informations (voir ci dessous) pouvez-vous juste m'indiquer les fonctions essentielles à utiliser :
> le commentaire
> l'image de couverture du livre
> les archives (mois précédents)
Merci encore.
JPV56
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Je pars du principe que tu as la maîtrise de l'arborescence et du contenu des dossiers / fichiers et que tu as fait comme j'ai indiqué plus haut.
Voici à peu près l'idée de ce que tu peux faire dans ta page coeur.php :
Voilà, il y a sans doute quelques erreurs, c'est pas facile de coder sans coloration et sans tester :p Tu devras bien entendu adapter (le "chemin" par exemple) et arranger à ta sauce la pagination.
N'hésite pas à consulter la doc PHP pour comprendre comment marchent les fonctions et à demander des précisions.
Précision utile : dans ton fichier commentaires.html, tu n'auras pas toute la structure d'un fichier HTML normal (avec balises html, head etc) : juste le code HTML que tu aurais mis à l'emplacement du commentaire. Quelques paragraphes, par exemple.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0 (.NET CLR 3.5.30729)
Voici à peu près l'idée de ce que tu peux faire dans ta page coeur.php :
Code : Tout sélectionner
// Tu commences par récupérer ou construire le mois demandé
// Si c'est dans l'adresse, tu prends le paramètre demandé, sinon tu construis la date sur l'année et le mois courant (fonction date)
$coeurDemande = isset($_GET['mois']) ? $_GET['mois'] : date(Y).'-'.date(m);
// Ensuite tu vérifies que ta variable correspond à un dossier chez toi. Sinon, tu afficheras une erreur
if (is_dir($_SERVER['DOCUMENT_ROOT'].'/chemin/.$coeurDemande)) {
// Le dossier est là, tu vas afficher le contenu (image + comm)
echo '<img src="/chemin/'.$coeurDemande.'/jaquette.jpg" alt="" />';
echo file_get_contents('/chemin/'.$coeurDemande.'/commentaires.html', FILE_TEXT);
}
else {
// Dossier inexistant
echo "erreur";
}
// La pagination, pour les autres coups de cœur
// Un lien par dossier trouvé dans /chemin/, sauf le dossier courant
$dh = opendir($_SERVER['DOCUMENT_ROOT'].'/chemin/);
while (($sousDir = readdir($dh)) !== false) {
// Traduction du nom du dossier en français
$annee = substr($sousDir, 0, 4);
$mois = substr($sousDir, 5, 2);
$moisFrancais = array('01'=>'Janvier', '02'=>'Février', ...... );
$quandFrancais = $moisFrancais[$mois].' '.$annee;
// Affichage du lien si tu n'es pas déjà sur la page
if ($sousDir != $coeurDemande) {
echo '<a href="coeur.php?mois='.$sousDir.'">Coup de cœur de '.$quandFrancais.'</a> | ';
}
}
closedir($dh);
N'hésite pas à consulter la doc PHP pour comprendre comment marchent les fonctions et à demander des précisions.
Précision utile : dans ton fichier commentaires.html, tu n'auras pas toute la structure d'un fichier HTML normal (avec balises html, head etc) : juste le code HTML que tu aurais mis à l'emplacement du commentaire. Quelques paragraphes, par exemple.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0 (.NET CLR 3.5.30729)
Voir ma configuration
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités