Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] fopen, aggiungere righe all'inizio di un file [era: a+ r+ e il tag body?]

  1. #1
    Guest

    Predefinito [php] fopen, aggiungere righe all'inizio di un file [era: a+ r+ e il tag body?]

    Ciao a tutti...
    Oggi ho creato questo pagina: http://gismundo.altervista.org/
    Però ho un grandissimo sbattimento... Quando una persona inserisce un commento, il commento va sul fondo del frame...
    Io vorrei che andasse in cima; ho provato a cambiare il codice dell'action per il form da a+ (scrive in fondo al documento aggiungendo) con r+ (scrive in cima al documento aggiungendo), ma quando inserisco un messaggio con r+, mi cancella la prime 5/10 parole del rigo sotto... In questo caso mi cancella la parte superiore in cui c'è scritto <body style="background: url(img/ ... E così si ripresenta il frame con una parte di codice in meno...
    Questi qui sono i codici delle pagine, qualcuno sa come aggiustarli in modo che i commenti appena inseriti vadano in cima e non in fondo e senza cancellare nessuna parte di codice???

    index.html
    Codice HTML:
    <form action="invia.php" method="post">
    <table width="670px"><tr>
    <td><input type="text" style="width: 200px; background: #00fcff; border: 1px solid black;" name="Nome" value="Nome" onfocus="if(this.value == 'Nome') this.value = '';" onblur="if(this.value == '') this.value = 'Nome';"></td>
    <td><input type="text" style="width: 200px; background: #00fcff; border: 1px solid black;" name="Cognome" value="Cognome" onfocus="if(this.value == 'Cognome') this.value = '';" onblur="if(this.value == '') this.value = 'Cognome';"></td>
    <td rowspan="2" width="200px"><input type="image" src="img/submit.png" onmouseover="this.src='img/submit2.png'" onmouseout="this.src='img/submit.png'" onclick="this.src='img/submit2.png'"></td>
    </tr><tr>
    <td colspan="2"><input type="text" style="width: 432px; background: #00fcff; border: 1px solid black;" name="Commento" value="Commento" onfocus="if(this.value == 'Commento') this.value = '';" onblur="if(this.value == '') this.value = 'Commento';"></td>
    </table>
    </form>
    invia.php
    Codice PHP:
    <?php
    $var
    =fopen("file.html","a+");
    fwrite($var, "<b>");
    fwrite($var, "$Nome");
    fwrite($var, " ");
    fwrite($var, "$Cognome");
    fwrite($var, "</b>");
    fwrite($var, "<br>");
    fwrite($var, "$Commento");
    fwrite($var, "<br>");
    fwrite($var, "<br>");
    fclose($var);
    ?>
    <body onload="this.location='/XXX/'">
    file.html
    Codice HTML:
    <body style="background: url(img/sfondo.png); line-height: 20px; font-family: Tahoma, Courier New, Arial;" topmargin="0px">
    <b>Gismundo95</b><br>Sà, sà, prova, prova... xD<br><br>

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da gismundo Visualizza messaggio
    r+ (scrive in cima al documento aggiungendo)
    No. Scrive in cima al documento e basta, senza aggiungere. Quindi se c'è qualcosa dopo, viene sovrascritto. Quindi carichi e riscrivi tutto il file aggiungendo le righe all'inizio, oppure carichi il file e poi inverti l'ordine delle righe.

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    oppure carichi il file e poi inverti l'ordine delle righe.
    come faccio ad invertire le righe? a mano?

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Il modo più semplice è questo:
    - apri il file originale e ti scarichi il contenuto su una variabile, usando file_get_contents()
    - concateni in testa a questa variabile i nuovi contenuti del file
    - scrivi i nuovi contenuti sullo stesso file usando file_put_contents()

    Nella documentazione di file_put_contents() trovi praticamente l'esempio già fatto, con la sola differenza che l'esempio #1 aggiunge i file in coda, e non in testa... devi quindi cambiare la terza riga con questa:
    Codice PHP:
    $current = "John Smith\n" . $current;
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Il modo più semplice è questo:
    - apri il file originale e ti scarichi il contenuto su una variabile, usando file_get_contents()
    - concateni in testa a questa variabile i nuovi contenuti del file
    - scrivi i nuovi contenuti sullo stesso file usando file_put_contents()
    Nella documentazione di file_put_contents() trovi praticamente l'esempio già fatto, con la sola differenza che l'esempio #1 aggiunge i file in coda, e non in testa... devi quindi cambiare la terza riga con questa:
    Codice PHP:
    $current = "John Smith\n" . $current;
    Stammi bene...
    Grazie... xD
    Sembra che mi hai aiutato... Però il problema è che io non ci capisco di PHP... Faccio solo in HTML... Non è che mi potresti modificare i file allegati sopra? XD

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •