[PHP] création automatique de pages

création automatique de pages [PHP] - PHP - Programmation

Marsh Posté le 11-08-2003 à 09:50:25    

Pour la réalisation d'un site, je vais devoir créer une partie uniquement accessible au webmaster afin qu'il puisse y gérer les données de son site.
Je compte donc créer une page non visible du site lui même, et de cette page, pouvoir avoir accès a des fonctions genre:
- mettre un ajout de photo automatique, où il s'agira de chercher la photo via un explorateur sur le HDD, et celle ci s'ajoutera automatiquement à la page. Si la page contient plus de 40 photos par exemple, alors il faudra en créer une nouvelle sur le même modèle et ainsi de suite. Bien sur, comme une nouvelle page est crée, les liens de la page sommaire devront prendre en compte que la dernière page a changé.
 
Est ce que cela est réalisable?, si oui pouvez vous m'aider un peu en m'indiquant comment. Est une bonne approche de mon problème ou voyez vous une meilleure méthode.
 
Merci d'avance :)


Message édité par nofx59 le 11-08-2003 à 09:51:53
Reply

Marsh Posté le 11-08-2003 à 09:50:25   

Reply

Marsh Posté le 11-08-2003 à 10:49:06    

Déjà pour ce qui est de l'envoi de fichiers, il y'a des fonctions prévues... alors si je me souviens bien, faut utiliser des trucs du genre....
 
première page un formulaire de ce type.
 

Code :
  1. <form enctype="multipart/form-data" action="sendpic.php" method="post">
  2. <input name="userfile" type="file">
  3. <input type="submit" value="Envoyer">
  4. </form>


 
qui envoie ça a une deuxième page ou tu utiliseras qqchose comme ça pour stocker l'image...
 

Code :
  1. $imgarray = array("image/pjpeg", "image/jpeg", "image/gif" );
  2. $filename=$_FILES['userfile']['name'];
  3. IF ($_FILES['userfile']['error']!=0)
  4. {  choose_text_lang("An error has happened, please try again","Une erreur est arrivée, veuillez réessayer",$lang);
  5.  echo "<br><a href=\"javascript:history.go(-1)\">";
  6.  choose_text_lang("Back","Retour",$lang);
  7.  echo"</a>";
  8. }
  9. ELSEIF (file_exists("images_site\\$filename" ))
  10. {  choose_text_lang("File already exists, please rename your file<br>or delete the one with the same name first","Le fichier existe déjà, veuillez changer son nom<br>ou effacer l'image déjà présente avant",$lang);
  11.  echo "<br><a href=\"javascript:history.go(-1)\">";
  12.  choose_text_lang("Back","Retour",$lang);
  13.  echo"</a>";
  14. }
  15. ELSEIF (!$filesize=$_FILES['userfile']['size'])
  16. {
  17. choose_text_lang("File empty","Fichier vide",$lang);
  18.  echo "<br><a href=\"javascript:history.go(-1)\">";
  19.  choose_text_lang("Back","Retour",$lang);
  20.  echo"</a>";
  21. }
  22. ELSEIF (!in_array($_FILES['userfile']['type'],$imgarray))
  23. {
  24. choose_text_lang("File must be a .jpg .jpeg or .gif","Le fichier doit être un .jpg .jpeg ou .gif",$lang);
  25.  echo "<br><a href=\"javascript:history.go(-1)\">";
  26.  choose_text_lang("Back","Retour",$lang);
  27.  echo"</a>";
  28. }
  29. ELSE
  30. {
  31. $filesize=round($filesize/1024);
  32. if (move_uploaded_file($_FILES['userfile']['tmp_name'], "chemindestockage\\" . $_FILES['userfile']['name'])) {
  33. echo "image uploadée<br>";
  34. echo "<img src=\"images_site\\$filename\"><br>$filename ($filesize Ko)";
  35. } else {
  36. choose_text_lang("Error","Erreur",$lang);
  37. }


 
(fais pas attention aux choose_text_lang() c'est un truc a moi http://llc-compagny.serveftp.net/pub/sm/KaLiS/grindrop.gif)
j'ai en partie repiqué ce script quelque part sur php.net je crois et en partie modifié un peu, il y'a des vérifications d'erreurs, de taille, d'extension de fichier etc...
 
après il y'a des fonctions permettant de regarder le contenu d'un dossier et d'afficher les images qu'il y'a dedans... encore une fois j'ai récupéré un script qqpart sur le net et un peu modifié afin de toutes les afficher dans un tableau
(j'avoue ne pas avoir cherché à comprendre comment ça fonctionnait exactement http://llc-compagny.serveftp.net/pub/sm/KaLiS/grindrop.gif)
 

Code :
  1. <table width=95% align=center border="1" cellpadding="0" cellspacing="0"><?
  2. $tab_row=0;
  3. while (false !== ($files = readdir($dir))) {
  4. foreach ($exts as $value) {
  5. if (CheckExt($files, $value)) {
  6. $filesize=filesize("images_site\\$files" );
  7. $filesize=round($filesize/1024);
  8. IF ($tab_row==0)
  9. {echo "<tr><td width=50% align=center><img src=\"images_site\\$files\"><br>$files ($filesize Ko)
  10. <br><a href=main.php?page=pic_delete&pic_target=$files>";
  11. choose_text_lang("Delete","Effacer",$lang);echo"</a></td>";
  12. $tab_row=1;}
  13. ELSE
  14. {{echo "<td width=50% align=center><img src=\"images_site\\$files\"><br>$files ($filesize Ko)
  15. <br><a href=main.php?page=pic_delete&pic_target=$files>";
  16. choose_text_lang("Delete","Effacer",$lang);echo"</a></td></tr>";
  17. $tab_row=0;}}
  18. $count++; //Keep track of the total number of files.
  19. break; //No need to keep looping if we've got a match.
  20. }
  21. }
  22. }
  23. echo "</table>";
  24. echo"<br>$count images.";
  25. //Be a good script and clean up after yourself...
  26. closedir($dir);
  27. clearstatcache();


 
Après chaque image peut être effacée avec une commande de type...
 

Code :
  1. unlink("images_site\\$pic_target" );


 
Donc bon , c'est peut être pas les meilleurs scripts (ceci dit encore une fois ils ne sont pas originairement de moi) mais a partir de ça , en jouant sur le "count" des images du répertoire tu devrais pouvoir générer des pages différentes, etc...
(tiens maintenant que je regarde le script d'affichage ne ferait pas la différence entre une image ou un autre fichier, faudrait ptet insérer des vérifications à ce niveau là...)


Message édité par KaLiS le 11-08-2003 à 10:50:59
Reply

Marsh Posté le 11-08-2003 à 10:58:08    

nofx59 a écrit :

Pour la réalisation d'un site, je vais devoir créer une partie uniquement accessible au webmaster afin qu'il puisse y gérer les données de son site.
Je compte donc créer une page non visible du site lui même, et de cette page, pouvoir avoir accès a des fonctions genre:
- mettre un ajout de photo automatique, où il s'agira de chercher la photo via un explorateur sur le HDD, et celle ci s'ajoutera automatiquement à la page. Si la page contient plus de 40 photos par exemple, alors il faudra en créer une nouvelle sur le même modèle et ainsi de suite. Bien sur, comme une nouvelle page est crée, les liens de la page sommaire devront prendre en compte que la dernière page a changé.
 
Est ce que cela est réalisable?, si oui pouvez vous m'aider un peu en m'indiquant comment. Est une bonne approche de mon problème ou voyez vous une meilleure méthode.
 
Merci d'avance :)


 
Moi, j'avais dû créer avec un copain un outil permettant de gérer une revue en ligne : les auteurs soumettaient leurs articles via le site web (et les lecteurs les lisaient via ce même site) et le directeur de la revue avait un outil d'administration permettant de paramètrer l'interface graphique du site (système de claques), générer le fichier CSS, gérer le workflow de relecture des articles soumis, composer un nouveau numéro de la revue (mise en page du sommaire), mettre en ligne un numéro, archiver un numéro (le retirer du site), rendre payant un numéro, etc.
 
Donc, le mieux, c'est que tu crées 2 sites : un site d'aministartion protégé par mot de passe dans lesquel tu mettras toutes les fonctions nécessaires à l'administrateur pour composer le site web ET le site web proprement dit. Par ailleur, tu devrais peut-être utiliser une BD pour gérer ton site (mais bon, je sais pas quelles infos tu veux gérer...).

Reply

Marsh Posté le 11-08-2003 à 14:15:34    


 
Merci beaucoup KaLiS, je viens de parcourir tout ca, je ne l'ai pas encore utilisé mais ca semble correspondre à ce que je voulais.
trop cool!  :jap:

Reply

Marsh Posté le 11-08-2003 à 14:17:29    

rufo a écrit :


 
Moi, j'avais dû créer avec un copain un outil permettant de gérer une revue en ligne : les auteurs soumettaient leurs articles via le site web (et les lecteurs les lisaient via ce même site) et le directeur de la revue avait un outil d'administration permettant de paramètrer l'interface graphique du site (système de claques), générer le fichier CSS, gérer le workflow de relecture des articles soumis, composer un nouveau numéro de la revue (mise en page du sommaire), mettre en ligne un numéro, archiver un numéro (le retirer du site), rendre payant un numéro, etc.
 
Donc, le mieux, c'est que tu crées 2 sites : un site d'aministartion protégé par mot de passe dans lesquel tu mettras toutes les fonctions nécessaires à l'administrateur pour composer le site web ET le site web proprement dit. Par ailleur, tu devrais peut-être utiliser une BD pour gérer ton site (mais bon, je sais pas quelles infos tu veux gérer...).


 
pour le stockage des données, je vais effectivement utiliser une bdd : MySQL.
Sinon, l'avantage des séparer en 2 le site est-il juste par soucis de sécurité du site?

Reply

Marsh Posté le 11-08-2003 à 15:11:30    

nofx59 a écrit :


 
pour le stockage des données, je vais effectivement utiliser une bdd : MySQL.
Sinon, l'avantage des séparer en 2 le site est-il juste par soucis de sécurité du site?


 
"séparer en 2", ça dépend du point de vue : c'était la même adresse http (www.monsite.fr) mais après, y'avait un répoertoire pour chacun des 2 sites (www.monsite.fr/admin/ et www.monsite.fr/revue/).
 
Je pense qu'au niveau architecture, c'est plus clair et au niveau sécurité, ça a peut-être des avantages... Je suis aps assez expert pour te répondre.

Reply

Marsh Posté le 11-08-2003 à 15:14:46    

rufo a écrit :


 
"séparer en 2", ça dépend du point de vue : c'était la même adresse http (www.monsite.fr) mais après, y'avait un répoertoire pour chacun des 2 sites (www.monsite.fr/admin/ et www.monsite.fr/revue/).
 
Je pense qu'au niveau architecture, c'est plus clair et au niveau sécurité, ça a peut-être des avantages... Je suis aps assez expert pour te répondre.


 
 :) je comptais procéder comme tel, c'est ce que j'appellais de manière abusive un "intranet caché": la gestion du site non visible par les utilisateurs.

Reply

Marsh Posté le 11-08-2003 à 15:19:26    

nofx59 a écrit :


 
 :) je comptais procéder comme tel, c'est ce que j'appellais de manière abusive un "intranet caché": la gestion du site non visible par les utilisateurs.


 
Ah? Alors ok...:)

Reply

Marsh Posté le 11-08-2003 à 17:44:19    

nofx59 a écrit :


Merci beaucoup KaLiS, je viens de parcourir tout ca, je ne l'ai pas encore utilisé mais ca semble correspondre à ce que je voulais.
trop cool!  :jap:  


 
No problemo :)
 
Sinon oui, je confirme qu'IMHO faire la partie admin dans un sous répertoire avec un .htaccess limitant les accès serait une des solutions avec le meilleur rapport sécurité/complexité

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed