Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    iframe src generato da file php non viene 'parsato'

    Ciao.
    Ho provato e riprovato a cercare sul web la soluzione al mio problema ma non ho trovato niente, provo a spiegare:

    ho la necessità di fornire all'esterno un codice html che visualizzi un iframe che 'punta' ad un file che risiede sul mio server.
    Il percorso del file in questione però ho necessita di leggerlo da un db mysql (sennò sarebbe troppo facile .

    Questi sono i passaggi che ho fatto:

    ho un file 'functions.php' che contiene la funzione 'getsource($mykey)'. dove $mykey è la chiave per ottenere il percorso del file da visualizzare nell'iframe.

    questo è il codice della funzione getsource($key), contenuta nel file 'functions.php:
    codice:
    function get_source($proj_key){
        //Funzione per ottenere il sorgente da inserire nel codice html dell'iframe
        //del progetto da visualizzare, il cui codice identificativo è fornito
        //come argomento ($proj_key).
        
        //Connessione al db
        require_once 'maindb_connect.php';
        
        //Dichiarazione costanti
        define ("IMG_PROJ_NOT_AVAILABLE", "/images/ProjectNotAvailable.jpg");
        
        if (!$Result = $mysqli->query("SELECT * FROM tb_works WHERE proj_key = '$proj_key'")){
                echo "Err: " . $mysqli->error . ".";
                exit();
        }
    
        //$NumRows = $Result->num_rows;
        if ($Result->num_rows == 0){
            return IMG_PROJ_NOT_AVAILABLE;
         }
    
        $row = $Result->fetch_assoc();
    
        return $row["proj_path"];
    
        }
    Per fare una prima prova, ho creato il seguente file 'test.php':
    codice:
    <!DOCTYPE HTML>
    <html>
    <head>
        <title>Test lettura progetto php</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <?php
            include_once 'project_functions.php';
            $proj_key='keirp94v9ks8fb2s'; /*-- dichiaro la chiave del progetto --*/
        ?>
    </head>
    <body>
            <iframe 
                    width="1000px"
                    height="500px"
                    style="border:5px solid #ff9600;"
                    src=<?php echo get_source($proj_key); ?>>
            </iframe>
    </body>
    </html>
    e tutto funziona, l'iframe visualizza il contenuto del link letto dal db.

    io però ho necessità di fornire la chiave tramite un link, quindi ho creato un altro file che si chiama projects.php, al quale viene consegnato tramite $_GET la chiave necessaria e che - sempre tramite la funzione getsource(key) - non fa altro che andare a leggere il percorso del file che voglio visualizzare e restituirlo: echo getsource(key)

    Questo è il file projects.php:

    Codice PHP:
    <?php
        
    //consegna all'esterno la stringa sorgente per l'iframe
            //Carica libreria funzioni
        
    require_once '../php/project_functions.php';
           
    //Dichiarazione variabile proj_key
        
    if(isSet($_GET['proj_key']))
        { 
           
    $proj_key $_GET['proj_key'];
        }
        echo 
    htmlspecialchars(get_source($proj_key));
    ?>
    Per ultimo poi ho creato un altro file di prova 'prova_iframe.html' dove ho inserito nel src; projects.php?key=chiave
    questo è prova_iframe.html:
    codice HTML:
    <!DOCTYPE HTML>
    <html>
        <head>
            <title>Test lettura progetto dall'esterno</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        </head>
        <body>
            <iframe src = http://localhost/projects.php?proj_key=keirp94v9ks8fb2s
                width="1000"
                height="500"
                style="border:5px solid #ff9600;">
            </iframe>
        </body>
    </html>
    Questa volta però, il frame anzichè mostrarmi il contenuto del file linkato, mi mostra (all'interno dell'iframe) la stringa del percorso, quindi non 'parsa' il link consegnato.
    Ho guardato e riguardato la sintassi del risultato in google chrome ma è a posto, tant'è che se lo copio e lo incollo in una nuova finestra del browser funziona.

    Sto lavorando su webserver locale, apache 2.4, php 5.4, mysql 5.6.
    Sono ancora alle prime armi e se qualcuno vorrà aiutarmi a capire qualcosa in più gliene sarò grato.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    E' normale che non parsi l'url. Non stai richiamando una funzione php ma crei un link. Poi non capisco il bisogno del $_GET. Perche non fai una funzione come per il primo iframe ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    E' normale che non parsi l'url. Non stai richiamando una funzione php ma crei un link. Poi non capisco il bisogno del $_GET. Perche non fai una funzione come per il primo iframe ?
    Ciao.
    E' la prima cosa che ho pensato ma ho fatto qualche prova e (anche cercando in giro) non mi pare sia fattibile richiamare una funzione php direttamente in un link.. o sbaglio?

  4. #4
    Quote Originariamente inviata da sbonifaz Visualizza il messaggio
    Ciao.
    E' la prima cosa che ho pensato ma ho fatto qualche prova e (anche cercando in giro) non mi pare sia fattibile richiamare una funzione php direttamente in un link.. o sbaglio?
    Ho trovato la soluzione, che posto nel caso possa servire a qualcun.altro.

    E' bastato portare fuori la stringa percorso con
    Codice PHP:
     'header("location: " . stringapercorso)' 

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.