• User

    Creazione di una pagina con fwrite

    Ciao ragazzi ho un problemino... sto creando un sistema di amministrazione per un amico che mi ha chiesto una funzione che crea una pagina uguale alle altre del sito con titoli e contenuti a suo piacimento...

    Il sito e' strutturato cosi:

    • file variabili.php che contiene l'istruzione switch($pagina) { ... }
    • file .htaccess con dentro i vari RewriteBase che trasformano la pagina in html

    Quando creo la pagina tramite il form apposito nell'area privata, mi crea una pagina che viene salvata in /pagine/paginacreata.php.

    Oltre a questo vorrei anche che aprisse .htaccess e mi scrivesse la regola per riscrivere l'url... fino a qui nessun problema, oltre che nonostante il \n non va a capo.
    Per ora adotto questo metodo:

    
    fwrite($fp, "RewriteRule ^$pagina.html$ $pagina.php \n");  
    $fp = fclose($fp);
    
    

    Altro problema:
    Nel file variabili ho i vari case, aprendo il file variabili.php, mi scrive proprio in fondo al file, mentre io vorrei che mi scrivesse la nuova riga in una posizione specifica tipo:

    
    <?php
    switch ($pagina) {
    case "homepage":
    include('homepage.php');
    break;
    qui la nuova riga
    }
    ?> 
    
    

    Ecco, vorrei che scrivesse la nuova istruzione al posto del rosso.

    Per ora aiutatemi a risolvere questi problemi, poi vi posto il terzo ed ultimo...
    Grazie!

    EDIT: problema dell'htaccess dell'andare a capo, risolto... non so perche', ma la stringa che ho postato prima funziona adesso. mha'.


  • ModSenior

    Ciao Dczeta,

    Per scrivere in un punto specifico dovresti leggere il file fare un explode e riscrivere l'intero file.
    Sia il rewrite che il file php sono convinto possano essere strutturati in maniera molto più ottimale di questa, stai facendo una marea di operazioni per una cosa che in php è normale.


  • User

    Infatti lo so che sono un sacco di operazioni in piu', ma non avendolo mai fatto mi sembra la soluzione adatta a me...

    Potrei anche fare un semplice un fwrite con il contenuto di tutta la pagina, ma il problema e' che quella pagina ha degli include che non riesco a far scrivere all'interno del fwrite...

    tipo:

    
    <html>
    <head>
    <title>aa</title>
    </head>
    <body>
    <?php include('header.php'); ?>
    [...]
    
    

    se faccio scrivere l'include al fwrite, giustamente in quel modo non lo scrive...


  • ModSenior

    Visto che tutte queste pagine hanno parti in comune, perchè scrivere nuovamente queste parti piuttosto che mettere 2 include sopra e sotto
    L'htaccess puoi anche modificarlo con un unica regola del tipo *.html punta a *.php invece di aggiungere continuamente regole.


  • User

    Cioe' io adesso creo la pagina prova.php che verra' richiamata tramite index.php?pagina=prova, modificando variabili.php aggiungo case "prova" ecc...

    Poi modifico l'htaccess aggiungendo la regola per prova.php che diventa prova.html.

    fino a qui tutto ok, l'unico problema e' inserire la nuova variabile...
    non riesco a capire come fare l'explode e sistemare il nuovo case in variabili.php 😞