Torna indietro   AlterVista | Spazio web gratis, hosting free php mysql > L'angolo del webmaster > PHP, MySql e Apache (.htaccess)

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 07-02-2009, 20.08.02
L'avatar di TurkoSoft
AlterGuru
 
Data registrazione: 02-09-2004
Residenza: catania
Messaggi: 1,368
Predefinito [PHP] problema fopen() r+

Ciao a tutti, dopo un bel pezzo che non mi faccio vivo qua torno a scrivere con un piccolo dilemma (per me ovviamente )

In pratica ho utilizzato la funzione fopen("","r+"); per scrivere in un database (*.txt) di testo dove il mio scopo è (attraverso un apposito form) scrivere devi nuovi messaggi sopra quelli "vecchi".
La mia pratica si ferma a metà in quanto r+ mi cancella parte del vecchio messaggio

Ora vi posto un pò di codice
Codice PHP:
...

if (!
$p_file fopen("database.txt","r+")) {
echo 
"Spiacente, ma non hai i permessi per aprire il database";

if(
$nick=="") {
  echo 
"Inserisci un <b>nome</b> o <b>nickname</b>";
}
else { 
$risp stripslashes(stripslashes($risp)); 
require_once(
"code_html.php"); 


fputs($p_file,"<p class=\"evidenzia\"><i>" $data "</i>");
fputs($p_file,"<b>" $nick "</b></p>");
fputs($p_file,$write);
fputs($p_file,$risp=fBBCode($risp));
fclose($p_file);
}

... 
al posto di fwrite() ho voluto usare fputs() che è la stessa cosa, va bene?

Ah, il testo che si dovrebbe scrivere nel database è composto in parte anche da HTML, forse è per questo che il risultato va per metà a buon fine? Se si, come ovviare il problema???

Grazie per il vostro aiuto
__________________
  • Prodotti TurkoSoft:
  • Mail Server - Il sistema più completo per inviare mail dal tuo sito web.
  • Velocity Search 2.10 - Un motore di ricerca semplicissimo e leggero da poter appliccare all'interno del proprio sito, blog o in qualsiasi pagina web!
  • Live Content! - è uno strumento utile per amministratori di siti e blog che vogliono inserire contenuti "al volo" come news, pensieri o magari suggerimenti.


t u r k o s o f t
web products & small software
Rispondi citando
  #2 (permalink)  
Vecchio 07-02-2009, 20.43.20
L'avatar di dreadnaut
Super Moderatore
 
Data registrazione: 22-02-2004
Messaggi: 4,251
Invia un messaggio via MSN a dreadnaut
Predefinito

quando apri un file con r+, ti posizioni all'inizio del file, e da li sovrascrivi, carattere per carattere. Se il primo messaggio nel file era lungo 50 caratteri, e quello con cui vuoi aggiornarlo è lungo 55, sforerai di 5 caratteri "sopra" la riga successiva, mangiandotene l'inizio (ed in effetti, anche il ritorno a capo, qiundi finisci per unire due righe)
__________________
chezDreadnautdailyDreadnautQualcosa da leggere:
"Un <BR/> è impuro, punto."
"I <P>&nbsp;</P> non hanno diritto di esistere."
Rispondi citando
  #3 (permalink)  
Vecchio 07-02-2009, 21.04.29
L'avatar di TurkoSoft
AlterGuru
 
Data registrazione: 02-09-2004
Residenza: catania
Messaggi: 1,368
Predefinito

grazie dreadnaut, non lo avevo proprio capito :)
Quindi diciamo che l'unico che "mantiene intatto" il database è il valore a o a+ in quanto scrive sotto il contenuto già presente :P

Ma allora come posso ovviare il problema? Cioè come posso lasciare invariati i precedenti contenuti e scriverne dei nuovi nella riga sopra?

grazie ancora
__________________
  • Prodotti TurkoSoft:
  • Mail Server - Il sistema più completo per inviare mail dal tuo sito web.
  • Velocity Search 2.10 - Un motore di ricerca semplicissimo e leggero da poter appliccare all'interno del proprio sito, blog o in qualsiasi pagina web!
  • Live Content! - è uno strumento utile per amministratori di siti e blog che vogliono inserire contenuti "al volo" come news, pensieri o magari suggerimenti.


t u r k o s o f t
web products & small software
Rispondi citando
  #4 (permalink)  
Vecchio 07-02-2009, 21.11.45
L'avatar di dreadnaut
Super Moderatore
 
Data registrazione: 22-02-2004
Messaggi: 4,251
Invia un messaggio via MSN a dreadnaut
Predefinito

in questo caso purtroppo ti toccherebbe riscrivere tutto il file, eliminando il primo pezzo.

Se la cosa è per te troppo dispendiosa, ripensa un attimo a quello che vuoi fare, e prova a riprogettare il sistema in modo che il contenuto posso finire in fondo.
__________________
chezDreadnautdailyDreadnautQualcosa da leggere:
"Un <BR/> è impuro, punto."
"I <P>&nbsp;</P> non hanno diritto di esistere."
Rispondi citando
  #5 (permalink)  
Vecchio 08-02-2009, 10.24.53
L'avatar di TurkoSoft
AlterGuru
 
Data registrazione: 02-09-2004
Residenza: catania
Messaggi: 1,368
Predefinito

Citazione:
Originalmente inviato da dreadnaut Visualizza messaggio
in questo caso purtroppo ti toccherebbe riscrivere tutto il file, eliminando il primo pezzo.
ti dispiacerebbe farmi un esempio?
qualsiasi cosa basta che la capisco

Citazione:
Originalmente inviato da dreadnaut Visualizza messaggio
Se la cosa è per te troppo dispendiosa, ripensa un attimo a quello che vuoi fare, e prova a riprogettare il sistema in modo che il contenuto posso finire in fondo.
beh il contenuto potrebbe aggiornarsi a fondo pagina però poi un utente ogni volta deve andare a fare lo scroll della pagina e... che seccatura!

Grazie dreadnaut sei stato gentilissimo!
__________________
  • Prodotti TurkoSoft:
  • Mail Server - Il sistema più completo per inviare mail dal tuo sito web.
  • Velocity Search 2.10 - Un motore di ricerca semplicissimo e leggero da poter appliccare all'interno del proprio sito, blog o in qualsiasi pagina web!
  • Live Content! - è uno strumento utile per amministratori di siti e blog che vogliono inserire contenuti "al volo" come news, pensieri o magari suggerimenti.


t u r k o s o f t
web products & small software
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato



Tutti gli orari sono GMT +1. Adesso sono le 06.43.35.