Accedi per seguire   
Seguaci 0
blueorange.sys

Postare In Un Punto Di Un File Htm

4 messaggi in questa discussione

Il problema è il seguente: sto creando una tagboard (o bacheca) tipo quelle di forumfree e mi serve un file php che, immesso un messaggio, lo posti sulla suddetta; tradotto, scrivi il messaggio, clicchi il pulsante invia e il messaggio viene scritto sulla bacheca.

Mi è chiaro come fare a raccogliere il messaggio mediante la variabile _POST, ma sto ammattendo per posizionarla in un punto diverso del file di arrivo (la pagina html) mediante le operazioni su file.

In realtà sono anche riuscito a posizionare il puntatore, il problema che mi si presenta è che il messaggio inserito sovrascrive i seguenti tag html, così invece di restituire (esempio, ciao=messaggio inviato, gli altri tag sono quelli generici della tabella) "<tag>ciao<tag2><tag3>..." mi restituisce "<tag>ciao2><tag3>..."

Il codice php del file è questo:

<?php
$forum = fopen ('board2.html', 'r+');	 --->apre il file
$pnt1 = ftell ($forum);			   --->memorizza la posizione del puntatore
$cod1 = fread ($pnt1, 167);		 --->legge il file dall' inizio al punto di scrittura
$pnt2 = ftell ($forum);			--->memorizza la posizione
$cod2 = fread ($pnt2, filesize(board2.html));	 --->legge dal punto di scrittura alla fine del file
fseek ($forum, 0, SEEK_SET);				  --->sposta all' inizio
fwrite ($forum, $cod1.' '.$_POST['testo'].' '.$cod2);		 --->scrive la prima parte, il messaggio e la seconda parte del file
fclose ($forum);						--->chiude
header("Location: board2.html");
header("Location: board2.html");		   --->aggiorna
?>

Il risultato è quello che ho citato prima: mi sovrascrive il codice con il messaggio inserito.

Perchè?

PS: Scusate se non mi sono presentato! Rimedierò

Modificato da blueorange.sys

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Benvenuto/a!
:) Ciao e Benvenuto/a nel forum, blueorange.sys.

Perché non personalizzi la tua presenza in WinInizio aggiungendo una firma e un'immagine al tuo profilo personale ? se non sai come fare, clicca qui.

Se sei una ragazza e vuoi essere aggiunta al gruppo delle WinGirls non dovrai fare altro che presentarti in questo thread o contattare un membro dello staff; se invece hai meno di 18 anni potresti far parte degli Juniores, per farlo presentati qui o contatta un membro dello staff.

Il gruppo WinGirls e Juniores offrono alcuni vantaggi speciali, scoprili nell'apposito thread di presentazione!

Ricordati, infine, che un titolo appropriato per dare visibilità alle tue nuove discussioni è essenziale: chiamare una discussione "Aiuto" o "Consiglio" non permette di capire subito la tua richiesta e rende più difficili le ricerche per gli altri utenti.

Link utili:

- Regolamento
- Netiquette
- Glossario
- Thread di Benvenuto
- Guida all'uso di WinInizio

Perchè usi un file di testo e non una tabella nel database?

Generalmente per questo genere di cose vengono usate delle apposite tabelle nel database, quindi ad ogni messaggio non fai altro che aggiungere un record ad una particolare tabella.

Nel punto dove vuoi che i messaggi siano visualizzati, non fai altro che eseguire una interrogazione al database SQL, nella tabella che conterrà le informazioni precedentemente memorizzate (nella fase precedente) e le stampa a schermo, sotto forma di tabella o di una qualsiasi altra cosa.

In tal modo di eviti la noia di dover aggiornare un file che ha un accesso sequenziale e del tutto scomodo se vuoi memorizzare differenti informazioni.

:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Benvenuto/a!
:) Ciao e Benvenuto/a nel forum, blueorange.sys.

Perché non personalizzi la tua presenza in WinInizio aggiungendo una firma e un'immagine al tuo profilo personale ? se non sai come fare, clicca qui.

Se sei una ragazza e vuoi essere aggiunta al gruppo delle WinGirls non dovrai fare altro che presentarti in questo thread o contattare un membro dello staff; se invece hai meno di 18 anni potresti far parte degli Juniores, per farlo presentati qui o contatta un membro dello staff.

Il gruppo WinGirls e Juniores offrono alcuni vantaggi speciali, scoprili nell'apposito thread di presentazione!

Ricordati, infine, che un titolo appropriato per dare visibilità alle tue nuove discussioni è essenziale: chiamare una discussione "Aiuto" o "Consiglio" non permette di capire subito la tua richiesta e rende più difficili le ricerche per gli altri utenti.

Link utili:

- Regolamento
- Netiquette
- Glossario
- Thread di Benvenuto
- Guida all'uso di WinInizio

Perchè usi un file di testo e non una tabella nel database?

Generalmente per questo genere di cose vengono usate delle apposite tabelle nel database, quindi ad ogni messaggio non fai altro che aggiungere un record ad una particolare tabella.

Nel punto dove vuoi che i messaggi siano visualizzati, non fai altro che eseguire una interrogazione al database SQL, nella tabella che conterrà le informazioni precedentemente memorizzate (nella fase precedente) e le stampa a schermo, sotto forma di tabella o di una qualsiasi altra cosa.

In tal modo di eviti la noia di dover aggiornare un file che ha un accesso sequenziale e del tutto scomodo se vuoi memorizzare differenti informazioni.

:P

Database sql?! Ehm.. :P

Non so se si è capito che sono un neofita del php, e comunque credo che non sia chiaro il problema che sto cercando di risolvere.

Avete presente le tagboard (o bacheche) di forumfree? Quelle che stanno nella home?

Vorrei in pratica crearne una, che funzioni nel modo seguente: scrivo il messaggio nel campo, premo il pulsante di invio che spedisce il messaggio immesso ad un file (php evidentemente) che lo raccoglie (metodo post), lo elabora e lo scrive in un punto ben preciso della tagboard, ovvero del file html dove la tagboard si trova.

Questo procedimento funziona, ma il messaggio invece di venire scritto correttamente viene scritto nel punto esatto epr poi sovrascrivere il codice (i tag) seguenti a lui.

Io vorrei sapere (lavorando esclusivamente in php, e NON con database e strumenti a me ignoti) se è possibile fare questo, e precisamente evitare che il messaggio immesso sovrascriva quanto scritto dopo di esso.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Si.. ho capito cosa intendi fare.. solo che la soluzione del file testale è inadeguata per grandi quantità di dati. Devi adottare una soluzione migliore e maggiormente performate, quali sono i database tramite MySQL.

Ad ogni modo.. nel tuo caso devi in un punto inviare le informazioni, e nel punto in cui le vuoi stampare semplicemente recuperarle e stamparle nella pagina html.

Puoi rimuovere i tag da un test (quando lo ricevi o lo pubblichi) tramite la funzione strip_tags();.

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
?>

---
Ti mostra:
Test paragraph. Other text

Ti rimando alla guida per la corretta sintassi e funzionalità: http://php.net/manual/en/function.strip-tags.php

Oppure, se vuoi che vengano visualizzati a schermo i caratteri html, puoi convertire il testo prima di salvarlo con la funzione:

htmlspecialchars($string_da_convertire);

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>
---
Ti mostra:
<a href='test'>Test</a>

( http://www.php.net/manual/en/function.htmlspecialchars.php )

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0