• Super User

    php fopen () - inserire codice php

    Salve,
    sto cercando di crare uno script php che crea una nuova pagina web php (intesa proprio come file). Il problema è che lo script che voglia venga scritto nella nuova pagina viene invece eseguito dallo script che la crea... come posso evitare che venga eseguito?

    max


  • User Attivo

    Per impedire a PHP di riconoscere gli elementi del linguaggio, come le variabili devi precederne il nome con la barra "":

    Es:
    [php]
    $saluto = "Ciao";
    echo "$saluto a tutti!"; //Stampa "Ciao a tutti!"
    echo "$saluto a tutti!"; //Stampa "$saluto a tutti!"
    [/php]

    Ciao!


  • User

    Oppure utilizzi:
    [php]
    print ('$Ciao'); //Stamperà $Ciao[/php]


  • Super User

    Ma così non verrà scritto nel nuovo file anche le // impedendo al codice di venire eseguito anche nella nuova pagina? :mmm:


  • User

    Beh, allora le // servono solo per esplicare! E' un commento -.-

    ergo:
    // <- Commento su singola riga.
    /* <- Apertura commento su più righe.
    */ <- Chiusura commento su più righe.

    Comunque, per esaudire quello che vuoi te, ti esplico bene il codice:
    [php]$Filename = "C:\NewFile.php";

    $TXT = '<?php
    $Variabile1 = 1000;
    ?>';
    $Handle = fopen($Filename, 'w+');
    $Scrittura = fwrite($TXT, $Handle);
    fclose($Handle);
    if($Scrittura){
    print 'Scrittura riuscita';}
    else{
    print 'Errore!';}
    [/php]


  • Super User

    Si ma a un certo punto ho un codice tipo:

    print: '<div id="banner">';

    che dovrebbe diventare

    print "<div id="banner">;

    ma "" dentro "" genera errore... 😮


  • User

    print "<div id='banner'>";

    Per l'html è indifferente usare l'apice singolo o il doppio apice


  • Super User

    OK ce l'ho fatta 😄 ora però ho un'altra domanda... mettiamo che:

    $value="valore_ricevuto_da_un_form";

    come faccio a scrivere il valore della variabile nel file invee della variabile... perchè quando ci provo nel nuovo file viene

    <?php

    //altro codice

    $value

    //altro codice

    ?>

    mentre vorrei che fosse

    <?php

    //altro codice

    valore_ricevuto_da_un_form

    //altro codice

    ?>


  • User

    posta il tuo codice perche mi sembri un po confuso...


  • Super User
    <?php
    session_start();
    require('config.php');
    include('header.php');
    
    ?>
    
    <?php
    $name=$_POST['name'];
    $cat=$_POST['cat'];
    $content=$_POST['content'];
    $user=$_SESSION['login'];
    $con='
    <?php
    require("../config.php");
    mysql_select_db($dbname,$connection);
    $query=mysql_query("SELECT * FROM logo") or die ("Query error: " . mysql_error());
    $fetch=mysql_fetch_array($query);
    $logo=$fetch["path"];
    //la riga della variabile conte mi da un'errore: **Parse error**:  syntax error, unexpected T_STRING in **/home/praesele/public_html/p/mm.php**
    $conte = ' . $content .'
    $title = ' . $name .'
    ?>
    <<< <a href="../index.php">Home</a>
    <br />
    <br />
    <center>
    <img src="<?php print $logo; ?>">
    <br />
    <br />
    <h2><b> - <?php print $title; ?> -</b></h2>
    <br />
    <br />
    <?php print $conte; ?>
    </center>
    <?php
    include ("../footer.php");
    ?>
    ';
    mysql_select_db("$dbname",$connection);
    $seca=mysql_query("SELECT * FROM pcategory WHERE name='$cat'") or die ("5Query error: " . mysql_error());
    $fetch=mysql_fetch_array($seca);
    
    $id=$fetch['id'];
    
    $query="INSERT INTO pages (title, content, puser)
    VALUES
    ('$name', '$id', '$cat')";
    
    if(!mysql_query($query,$connection))
    {
        die('Error: ' . mysql_error());
    }
    
    $page=fopen("p/" .$name . ".php","w+") or exit ("Unable to create page.");
    fwrite($page,$con);
    fclose($page);
    ?>
    
    <?php
    include('footer.php');
    ?>
    

  • User

    @max0005 said:

    OK ce l'ho fatta 😄 ora però ho un'altra domanda... mettiamo che:

    $value="valore_ricevuto_da_un_form";

    come faccio a scrivere il valore della variabile nel file invee della variabile... perchè quando ci provo nel nuovo file viene

    <?php

    //altro codice

    $value

    //altro codice

    ?>

    mentre vorrei che fosse

    <?php

    //altro codice

    valore_ricevuto_da_un_form

    //altro codice

    ?>E' molto semplice.
    Supponiamo di avere questo codice che vuoi scrivere su file:
    [php]<?php
    $source = '<?php
    $variabile = $valoredaform;
    echo $variabile+4015;
    ?>';
    ?>
    [/php]In cui $valoredaform vuoi venga sostituito con l'effettivo valore della variabile.

    Allora, se sai che le variabili tra apici singoli non vengono valorizzate, modifica il codice così:
    [php]<?php
    $source = '<?php
    $variabile = '.$valoredaform.';
    echo $variabile+4015;
    ?>';
    ?>
    [/php]In pratica, concateni la parte iniziale del codice da scrivere con il valore che la variabile deve avere, concatenando il tutto poi con il resto della stringa da scrivere.

    Se qualcosa ti è oscura chiedi pure. 😃


  • Super User

    si... perchè il +4015?:bho:


  • Super User

    Comunque continuo a ricevere questo errore quando provo a visulaizzare la pagina creata:

    Parse error: parse error in C:\xampp\htdocs\nfs\p\test.php on line **8

    **La riga corrisponde a:$conte = ' . $content .';


  • User

    @max0005 said:

    si... perchè il +4015?:bho:Così, per dare un pò di colore. Niente di più. 🙂

    Potresti usare il tag PHP invece di Code? Non si capisce molto.


  • Super User

    [php]<?php
    session_start();
    require('config.php');
    include('header.php');

    ?>

    <?php
    $name=$_POST['name'];
    $cat=$_POST['cat'];
    $content=$_POST['content'];
    $user=$_SESSION['login'];
    $con='
    <?php
    require("../config.php");
    mysql_select_db($dbname,$connection);
    $query=mysql_query("SELECT * FROM logo") or die ("Query error: " . mysql_error());
    $fetch=mysql_fetch_array($query);
    $logo=$fetch["path"];
    $conte = ' . $content .';
    $title = ' . $name .';
    ?>
    <<< <a href="../index.php">Home</a>
    <br />
    <br />
    <center>
    <img src="<?php print $logo; ?>">
    <br />
    <br />
    <h2><b> - <?php print $title; ?> -</b></h2>
    <br />
    <br />
    <?php print $conte; ?>
    </center>
    <?php
    include ("../footer.php");
    ?>
    ';
    mysql_select_db("$dbname",$connection);
    $seca=mysql_query("SELECT * FROM pcategory WHERE name='$cat'") or die ("5Query error: " . mysql_error());
    $fetch=mysql_fetch_array($seca);

    $id=$fetch['id'];

    $query="INSERT INTO pages (title, content, puser)
    VALUES
    ('$name', '$id', '$cat')";

    if(!mysql_query($query,$connection))
    {
    die('Error: ' . mysql_error());
    }

    $page=fopen("p/" .$name . ".php","w+") or exit ("Unable to create page.");
    fwrite($page,$con);
    fclose($page);
    ?>

    <?php
    include('footer.php');
    ?>[/php]

    Parse error: parse error in C:\xampp\htdocs\nfs\p\d.php on line 10


  • Super User

    non capisco cosa c'è che non va nella variabile... il formato è uguale a quello dell'altra :mmm:


  • Super User

    Ragazzi ho risolto.

    da $conte = ' . $content .';

    a $conte = "' . $content .'";


  • User

    Ok, si giusto, stavo scrivendo altro..