Page 1 sur 4

Base de fichier et non base de données

Posté : 16 oct. 2006, 17:30
par 2501gigi
Bonjour à tous et à toute

Bon je rentre directement dans le vif du sujet je voudrais creer un base fichier pour stocker des données.

Exemple on a un texte en page d'accueil qui est stocker dans un fichier texte et se que je voudrais c'est faire un editeur (comme celui ou je suis en train d'ecrire se message) pour pouvoir modifier mon fichier texte et ainsi me retrouver avec mon texte modifier en page d'accueil.

Je sais pas si on à le droit de faire de la pub ou pas mais le logiciel GuppY utilise se proceder.

Merci de votre aide. A+ :lol:

Posté : 17 oct. 2006, 02:06
par Elie

Posté : 17 oct. 2006, 09:46
par Ryle
Regarde les fonction fopen() pour ouvrir un fichier et lire son contenu et fwrite() pour écrire dans un fichier... tu pourras ainsi proposer le contenu de ton fichier dans un champ textarea (ou un wysiwyg si tu veux un éditeur html), le modifier et enregistrer les modifications dans le fichier :)

Posté : 17 oct. 2006, 16:35
par 2501gigi
Merci a ryle et elie mais quand vous dite un champ textearea je voulais savoir si le gras, l'italique etc vous m'avez compris si se sont des fonction php ou plutot du javascript car moi ce que je voudrais faire c'est comme la pageou je suis en se moment (Poster une reponse) .

Merci beaucoup pour votre aide

Posté : 17 oct. 2006, 17:06
par Ryle
Le champ <textarea> c'est juste une boite dans laquelle tu peux mettre du texte, comme celle que tu utilises pour poster un message sur le forum.

Ici, la notion de gras, italique et autre est géré à l'aide du BBCode. Au lieu du tag html <b></b> pour mettre en gras, on utilise le code [ b ][ /b ]. Cela permet d'interdire le html (pour éviter que de petits malins n'en usent ou abusent) et autorise malgré tout un peu de mise en forme. Lorsque les messages sont affichés, les [ b ] sont remplacés automatiquement en php par des <b> pour obtenir le html affiché :)

La solution Wysiwyg (principallement javascript) te permet de générer directement du html dont tu vois le résultat directement à l'écran avant de l'enregistrer (ce qui est généralement plus agréable pour des néophytes : voir le gras est plus explicite que supposer que [ b ] mettra le texte en gras ;) )

Posté : 17 oct. 2006, 17:53
par 2501gigi
Merci ryle
Bon si j'ai bien tout compris le fonctionnement.

J'ai ma page news en php avec une endroit ou le texte s'affiche, je veut le change se texte donc je cree une page php avec un texte area puis des icons gras italique etc... puis un bouton changer texte.

Bon voila mais question :

Comment le bouton gras c'est que c'est le texte dans l'area qu'il faut mettre en gras?

Avec le bouton "changer texte" sa envoi le texte , le mieux et dans une base de donnée ou un fichier texte?

Et pour les couleur texte comment cela ce passe?

Et il possible d'integré des photos?

Je pose toutes ses question car au lieu de telecharger un script deja tout pret, l'installer sans rien comprendre au fonctionnement , ne favorise pas la comprehention du php ou autre et comme je suis dans la section debutant!!!

Posté : 18 oct. 2006, 12:45
par 2501gigi
Bon voila j'ai trouvé pour mettre le texte entre les balises [b][/b]

[code]
<a href="#" onclick="addText(' [b][/b] ');return(false)">
<imgsrc="../icones/images/bold.png" width="23" height="23" border="0"></a>
[/code]


Enfin quand je dis trouver par exemple pour le mot "merci" il me met

[b][/b] et non [b]merci[/b] comment cela ce fait?

Et est il possible de l'afficher directement en gras?

Et comment je recupere le message?

Posté : 18 oct. 2006, 14:18
par Ryle
Pour mettre tes balises autour du texte selectionné, il te faut capturer le texte et le remplacer en lui ajoutant tes balises. Ca se fait en javascript, ce n'est pas forcément ce qu'il y a de plus simple, ni ce qu'il y a de plus passionant, mais si cela t'interesse de le faire entièrement par toi même, il te faut chercher du côté de la fonction "document.selection.createRange()"

Pour l'afficher directement en gras, il ne faut pas simplement un champ textarea, mais un éditeur wysiwyg (What You See Is What You Get : Ce que tu vois correspond à ce que tu auras). Il se divise en fait en deux parties : la première est un champ (généralement caché) qui contient le code de ta page (avec les balises html), la seconde est l'apperçu (modifiable) du code généré. Ainsi, quand tu mets en gras une partie du texte, visuellement celui-ci apparait en gras, et dans ton code tu trouveras les balises html <b></b> autour du texte correspondant.

Pour récupérer le message, il te suffit simplement de mettre un formulaire autour, d'ajouter un bouton submit pour envoyer le formulaire à un script php qui enregistrera les informations en base ou dans ton fichier :)

Pour les photos, tu peux en inclure également en spécifiant leur url (aussi bien en bbcode qu'en wysiwyg). Cela implique donc que les photos soient déjà en ligne sur internet, mais rien ne t'empêche de proposer un système d'upload de fichier sur ton serveur pour pouvoir y déposer un fichier dont on utilisera l'url ensuite :)

Enfin, quant au choix base ou fichier, y a pas vraiment de meilleure solution, tout dépend de l'usage que tu en auras. Une recherche est plus rapide dans une base de données, mais pour de l'affichage simple l'inclusion d'un fichier demandera moins de ressource qu'une connexion à la base, etc.

Posté : 18 oct. 2006, 15:04
par 2501gigi
Merci tyle toute devient plus clair enfin moins trouble
.je vais voir tout ca et je vous tient au courant

Posté : 18 oct. 2006, 15:25
par 2501gigi
Bon voila je sais vous alez dire que je change d'avis comme de code php mais j'ai resolu mon probleme des b avec se code trouver

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> /*function storeCaret(text) { // voided } */ function AddText(startTag,defaultText,endTag) { with(document.poster) { if (message.createTextRange) { var text; message.focus(message.caretPos); message.caretPos = document.selection.createRange().duplicate(); if(message.caretPos.text.length>0) { //gère les espace de fin de sélection. Un double-click sélectionne le mot //+ un espace qu'on ne souhaite pas forcément... var sel = message.caretPos.text; var fin = ''; while(sel.substring(sel.length-1, sel.length)==' ') { sel = sel.substring(0, sel.length-1) fin += ' '; } message.caretPos.text = startTag + sel + endTag + fin; } else message.caretPos.text = startTag+defaultText+endTag; } else message.value += startTag+defaultText+endTag; } } </script>


Quelqun pourrait-il me l'explique car comme ryle me le disais il y a la fonction "document.selection.createRange()" bon je sais que c'est du javascript et que l'on est sur un site php mais bon j'essaye quand meme.


Petit complement d'info c'est pour changer mon message d'accueil quand je le veut donc en definitif je pense que je vais prendre une base de donnée.

ensuite pour recuperer le message j'ai deux trois questions a poser et sa c'est du php.

Comment le base de données recuperera t-elle mon texte avec les b(je suppose que oui)?

C'est dans la page qui affiche le texte dois je mettre un script particulier pour pouvoir afficher le texte avec les gras,italiques etc..?


Merci et a tres vite.

Posté : 18 oct. 2006, 17:42
par 2501gigi
bon j'arrive à enregistrer bans ma base de donnée un texte sous forme :

Salut les [b]loulous[/b]


Mais dans ma page ou doit s'affiche mon texte je n'arrive pas a transformer les[b][/b] en gras quel sera la syntax et la fonction à employer SVP

Merci d'avance

Posté : 18 oct. 2006, 17:55
par Ajoloca
Bonjour,
Avant l'affichage, tu peux par exemple utiliser
str_replace()
pour remplacer les [ b] par <b> et les [ /b] par </b>

Mais aussi les expressions régulières

Posté : 18 oct. 2006, 19:06
par 2501gigi
Merci mais qu'entend tu par expression reguliere

Pour le code j'ai utiliser ca mais sa ne marche pas:

Code : Tout sélectionner

$txt = preg_replace("!\[b\](.+)\[/b\]!isU" , "<strong>$1</strong>", $txt);

Posté : 18 oct. 2006, 20:15
par 2501gigi
j'ai essayé sa
<?php $txt =  preg_replace("/  /i" , "<strong>$txt</strong>", $txt);

?>
Mais sa m'affiche l'erreur

Warning: Unknown modifier 'b' in c:\program files\easyphp1-7\www\sitedebase\index.php on line 20

Auriez vous une idée SVP merci

Posté : 18 oct. 2006, 20:26
par 2501gigi
j'ai trouvai j'avais une boulette au debut mais avec celle la


$txt = eregi_replace("[b](.*)[/b]","<strong>\\1<strong>",$txt);


il m'affiche

Notice: Array to string conversion in c:\program files\easyphp1-7\www\sitedebase\index.php on line 20


toujours personne pour m'aider