Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: includere codice PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    62

    includere codice PHP

    Ragazzi esiste un modo per includere all'interno di una pagina del codice php così da poterlo eseguire ?

    La mia esigenza è quella di includere del codice che venga poi eseguito come parte della pagina e non quella di includere l'output generato dal codice php residente in una pagina esterna: ho bisogno infatti di includere del codice che sia in grado di accedere ai referer della pagina principale.

    Ripeto il codice deve prima essere incluso e poi eseguito e non deve essere prima eseguito e poi incluso.

    Se pò fa ?


  2. #2
    Tutto si può fare e quello che chiedi è semplicissimo:
    codice:
    <html>
    <head>
       <title>Pagina di test</title>
    </head>
    
    <body>
    
       
    
    Ciao mondo</p>
       <?PHP
             print "
    
    questo è stato stampato con codice php</p>";
       ?>
    
    </body>
    </html>
    Nella parte marcata dai tag PHP puoi inserire tutto il codice PHP che vuoi, volendo quella parte PHP la puoi mettere dove ti pare..anche prima di tutto il codice HTML (quindi del tag <html>)

  3. #3
    Potresti usare l'include.

    In pratica devi vedere l'include come un contenitore di comandi php. Lìddove chiami tale contenitore le istruzioni ke esso contiene vengono eseguite.

    parametro da dare all'include è un file in php.

    quindi se tu hai la pagina tua_pagina.inc contenente le istruzioni ke ti servono, fai:

    include('tua_pagina.inc');

    La comodità di include è ke puoi usare tua_pagina.inc in tutte le pagine ke vuoi, risparmiandoti la fatica di riscrivrere + volte lo stesso codice, oltre ke darti la possibilità di organizzarti meglio concettualmente il lavoro.

    Comunque un'ossevazione.
    Poiché i file .inc sono visti come file di testo, se qualcuno digita www.tuosito/tua_pagina.inc
    allora comparirà al video il contenuto del fiel tua_pagina.inc così come'è.

    Ci sono 2 soluzioni:

    1) rinominare tua_pagina.inc in tua_pagina.inc.php così il web-server interpreta la pagina come pagina php e non ne fa vedere il contenuto ma solo il risultato html.

    2) dire al tuo web-server di interpretare i files .inc come pagine php. In tal caso il nome del file rimane invariato; devi solo configurare il tuo web-server, che nel caso sia Apache, devi fare:

    AddType application/x-httpd-php .php .inc

    cioé aggiungere .inc alla fine della riga

    AddType application/x-httpd-php .php


    Ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    62
    Ma che io sappia l'include valuta il codice incluso e restituisce l'output prodotto dal codice incluso: io voglio che il codice venga eseguito come parte della pagina php che lo richiama (e quindi deve avere accesso alle variabili visibili dalla pagina richiamante).

    In poche parole devo realizzare un sistema di statistiche per il mio sito e quindi mi servono le informazioni che vengono inviate insieme ad una richiesta http (es. il referer); ogni pagina del mio sito include un header.php (quindi un'intestazione che è comune a tutte le pagine).

    Ora dal momento che tutte le pagine includono header.php io pensavo di inserire il riferimento al codice di statistica nell'header (evitando così di inserirlo in ogni pagina del sito) solo che in questo modo il codice di statistica viene richiamato dall'header e quindi non è in grado di accedere alle informazioni memorizzate nella richiesta http.

    es.


    paginaqualsiasidelsito.php
    ...
    include("../header.php");
    ...


    ---

    header.php
    ...
    include("./statistiche.php");
    ...

    ---
    statistiche.php
    ... mio codice...

    Il codice di statistiche.php deve essere in grado di accedere alle variabili memorizzate insieme alla richiesta http della pagina paginaqualiasidelsito.php.

    Meglio di così non so spiegarlo.

  5. #5
    Ma che io sappia l'include valuta il codice incluso e restituisce l'output prodotto dal codice incluso: io voglio che il codice venga eseguito come parte della pagina php che lo richiama (e quindi deve avere accesso alle variabili visibili dalla pagina richiamante).


    Ed è così:

    nel manuale si legge:

    http://it.php.net/manual/en/function.include.php


    When a file is included, the code it contains inherits the variable scope of the line on which the include occurs. Any variables available at that line in the calling file will be available within the called file, from that point forward. However, all functions and classes defined in the included file have the global scope.

    Ovviamente il file che includi vedrà solo le var.li che sono state definite prima dell'include.

    Cioé se hai:

    $prova = "ciao";

    poi fai
    include('prova.php');


    ed in prova hai
    echo $prova;

    a video uscirà ciao

  6. #6
    In italiano invece, il manuale php all'indirizzo:

    http://it.php.net/manual/it/function.include.php

    così recita (è la traduzione della frase inglese che ho postato prima)

    Quando un file viene incluso, il codice che esso contiene eredita lo scope delle variabili della riga in cui si verifica l'inclusione. Qualsiasi variabile disponibile in quella riga nella chiamata al file sarà disponibile all'interno del file chiamato, da quel punto in avanti. Tuttavia tutte le funzioni a le classi definite all'interno di un file di include hanno visibilità globale.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    62
    Originariamente inviato da gianf_tarantino
    In italiano invece, il manuale php all'indirizzo:

    http://it.php.net/manual/it/function.include.php

    così recita (è la traduzione della frase inglese che ho postato prima)

    Quando un file viene incluso, il codice che esso contiene eredita lo scope delle variabili della riga in cui si verifica l'inclusione. Qualsiasi variabile disponibile in quella riga nella chiamata al file sarà disponibile all'interno del file chiamato, da quel punto in avanti. Tuttavia tutte le funzioni a le classi definite all'interno di un file di include hanno visibilità globale.
    Però tornando all'esempio la pagina statistiche.php che viene inclusa da header.php che a sua volta viene inclusa da una qualsiasipaginadelsito.php non riesce ad accedere alle variabili di qualsiasipaginadelsito.php.

    Se io da statistiche.php prelevo $_SERVER['HTTP_REFERER'] ottengo header.php quando invece vorrei ottenere la pagina di provenienza di qualsiasipaginadelsito.php

  8. #8
    Mi sembra un pò strano:

    io ho provato con questo esempio.

    Pagina di partenza inizio.php

    <SCRIPT LANGUAGE="php">
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']) . "
    ";
    include("altro.php");
    </SCRIPT>


    altro.php


    <SCRIPT LANGUAGE="php">
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']) . "
    ";
    include("prova.php");
    </SCRIPT>


    infine prova.php

    <SCRIPT LANGUAGE='php'>
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']);
    </SCRIPT>


    a video esce:

    pagina corrente: inizio.php
    pagina corrente: inizio.php
    pagina corrente: inizio.php


    Ma http_referer prende l'indirizzo della pagina a cui fa riferimento lo user agent, giusto? In alternativa non potresti usare php_self che ho usato nell'esempio?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    62
    Originariamente inviato da gianf_tarantino
    Mi sembra un pò strano:

    io ho provato con questo esempio.

    Pagina di partenza inizio.php

    <SCRIPT LANGUAGE="php">
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']) . "
    ";
    include("altro.php");
    </SCRIPT>


    altro.php


    <SCRIPT LANGUAGE="php">
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']) . "
    ";
    include("prova.php");
    </SCRIPT>


    infine prova.php

    <SCRIPT LANGUAGE='php'>
    echo "pagina corrente: " . basename($_SERVER['PHP_SELF']);
    </SCRIPT>


    a video esce:

    pagina corrente: inizio.php
    pagina corrente: inizio.php
    pagina corrente: inizio.php


    Ma http_referer prende l'indirizzo della pagina a cui fa riferimento lo user agent, giusto? In alternativa non potresti usare php_self che ho usato nell'esempio?
    Ok ma se provo a sostituire $_SERVER['PHP_SELF'] con $_SERVER['HTTP_REFERER'] ottengo nell'ordine:

    paginadiprovenienza
    inizio.php
    altro.php

    quando vorrei ottenere

    paginadiprovenienza
    paginadiprovenienza
    paginadiprovenienza

  10. #10
    Se ho capito bene tu vuoi includere nella pagina A un'altra pagina B ma che il codice in B venga eseguito solo quando vuoi tu e con i dati che gli passi.

    Metti in B il codice sotto forma di funzioni, quando fai l'include queste vengono dichiarate e poi le potrai usare quando vuoi.

    esempio:

    A.php
    Codice PHP:
    <?php

    include("fileB.php");

    $variabiledaprocessare = .........

    ....


    ....

    //Faccio quel che mi pare e quando voglio eseguo il codice recuperato dalla pagina B
    $nuovavariabile funzioneInB($variabiledaprocessare);

    echo 
    $nuovavariabile....

    ?>
    B.php
    Codice PHP:
    <?php

    function funzioneInB($str) {
       ....
       return 
    $strmodificata;
    }

    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.