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

Discussione: Problema con include.

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    6

    Problema con include.

    Salve, sto facendo un sito in php, ed al suo interno è necessario che ci sia un semplice gestore di news.
    Siccome l'uso degli iframe è ormai sconsigliato da tutti, ho deciso di utilizzare la funzione include di php, anche x imparare.
    Ebbene, ho costruito la mia tabella di layout del sito, creato i blocchi top.php, bottom.php, left.php e center.php in modo tale da richiamarli sempre e far variare solo il contenuto all'interno del box centrale....e fin quì tutto semplice!
    Nel file centro.php mediante la funzione switch-case mi sono definito i tipi, sicchè cliccando dal menù di sinistra sui diversi tipi il centro mi cambia di conseguenza...sorge però un problema adesso: infatti fino a che si tratta di includere un singolo file o blocco di codice, tutto va a meraviglia, ma se includo qualcosa di + complesso, che abbia dei collegamenti essa stessa fra + file php come un gestore di news, il gioco non funziona +! Funziona infatti solo lo script specificato nell'include, ma i collegamenti agli altri script cui esso rimanda per funzionare no.
    Se provo a modificare il percorso dei collegamenti lo script esterno funziona, ma si apre in una pagina a parte e non nel centro del mio layout...io invece voglio che funzioni tutto all'interno, proprio come un iframe, ossia una volta aperto uno script in una zona del layout, sia possibile continuare ad eseguirlo in quella finestra con tutti i relativi collegamenti.
    Sinceramente non so come fare, ma di sicuro è possibile, in quanto portali come Xoops o PHPNuke lo fanno senza problemi.

    Chiedo scusa per la lunga esposizione, ma è per focalizzare il problema senza fare confusione ed evitare così di far perdere tempo a chi risponde.

    Grazie in anticipo a chi mi illumina.


    Phil

  2. #2
    Non riesco a capire bene il tuo problema...

    Prova a postare uno script di esempio ridotto all'osso presente nella pagina centro.php e proviamo ad esaminarlo...


    SKYPE: Proclama
    Una volta la causa della criminalità era la povertà. Oggi è la ricchezza.
    Spia Ritual Skin - Creanova Studio Design - Animali e Natura

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    6
    Allora, veniamo al dunque:

    questo è lo script del mio centro.php:

    <table width="598" border="0" cellspacing="2" cellpadding="2" align="center">
    <tr>
    <td width="590" align="center" valign="top">


    </p>



    <?
    //echo $HTTP_SERVER_VARS['PHP_SELF'];
    //exit;
    if ($HTTP_SERVER_VARS['PHP_SELF']=="../include/centro.php")
    {
    header ("location: ../home.php");
    exit;
    }

    if (empty($HTTP_GET_VARS['tipo']))
    {
    $Chetipo="News";
    }
    else
    {
    $Chetipo=$HTTP_GET_VARS['tipo'];
    }
    //echo $Chetipo;
    switch($Chetipo)
    {
    case "News":
    include ("news/list_news.php");
    break;
    case "GuestBook":
    include ("gbook/guestBook.php");
    break;
    case "Contat":
    ?>
    </p>
    <table width="460" border="0" cellspacing="2" cellpadding="2" align="center">
    <tr>
    <td align="center" valign="top">Contat</td>
    </tr>
    <tr>
    <td align="center" valign="top">Contat Contat Contat Contat Contat Contat Contat Contat Contat Contat Contat Contat </td>
    </tr>
    </table>
    <?
    break;
    }
    ?> </td>
    </tr>
    </table>



    Per chiarezza ti espongo la struttura della directory del sito:

    nella cartella principale che chiameremo miosito c'è il file home.php;

    poi ci sono le cartelle include,news,gbook ed immagini;

    nella cartella include ci sono i 4 file top.php, bottom.php, left.php e centro.php;

    nella cartella immagini ci stanno le immagini che fanno da grafica;

    nella cartella news ci stanno i file necessari al funzionamento del gestore di news;

    nella cartella gbook ci stanno i file necessari al funzionamento del guestbook;

    Ora tutto mi funge a meraviglia, infatti includendo il file list_news.php mi escono i titoli nel centro della pagina come voglio io.....poi però quando vado a cliccare sul titolo x aprire il testo della notizia mi da errore, xchè dovrebbe passarsi i paramentri x connettersi al dbase e recuperare il contenuto della notizia tramite l'id mediante lo script read_news.php con na cose del genere:

    http://localhost/miosito/news/read_news.php?id=2

    ovviamente se io metto a mano i parametri nell'url si apre la notizia desiserata, ma si apre in una pagina a se e non nel centro del mio layout, e cmq dovrebbe passarli in auto tramite il link del titolo, non ha senso metterli a mano...

    Da ignorante credo ci voglia un include che sia qualcosa di dinamico, ma non ho idea di come si faccia....

    Insomma in parole povere ho bisogno che lo script che includo (che è qualcosa di articolato e quindi composto da più files) continui ad eseguirsi al centro (o in qualsiasi altro posto decida di piazzarlo) del layout.

    Se hai altri dubbi sul mio problema fammi sapere...

    Ciao e grazie!

    Phil

  4. #4
    Forse ho capito il tuo problema:

    Il link dovrebbe richiamare sempre la stessa pagina "read_news.PHP" passandogli i valori di 'tipo', in base a questi fare visualizzare una news piuttosto che un'altra tramite l'istruzione 'include'.... ho capito bene?

    SKYPE: Proclama
    Una volta la causa della criminalità era la povertà. Oggi è la ricchezza.
    Spia Ritual Skin - Creanova Studio Design - Animali e Natura

  5. #5
    Purtroppo devo scappare...

    se non riesci a risolvere il tuo problema ci risentiamo domani...


    SKYPE: Proclama
    Una volta la causa della criminalità era la povertà. Oggi è la ricchezza.
    Spia Ritual Skin - Creanova Studio Design - Animali e Natura

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    6
    Ciao, innanzi tutto grazie per la tempestività e per il tempo che mi dedichi!

    Credo che hai centrato il problema...cmq detto in parole povere devo far girare uno script esterno dentro una finestra del mio layout...con gli iframe lo ho fatto tante volte e non da problemi, ma è una tecnica superata e poi voglio imparare a farlo con il php, se non mi cimento mai quando imparo???

    Grazie di nuovo.

    Phil

  7. #7
    Prima di tutto:
    codice:
    if ($HTTP_SERVER_VARS['PHP_SELF']=="../include/centro.php") 
    { 
    header ("location: ../home.php"); 
    exit; 
    }
    mi sembra che l'header messo lì non possa funzionare; deve comparire prima di ogni TAG HTML (non riesco a capire a cosa ti serva questa riga ma forse esula dal tuo problema...).

    Mentre qui:
    codice:
    $Chetipo=$HTTP_GET_VARS['tipo']; 
    switch($Chetipo) 
    {
    case "News": 
    include ("news/list_news.php"); 
    break; 
    case "GuestBook": 
    include ("gbook/guestBook.php"); 
    break; 
    case "Contat":
    ....
    break;
    }
    non devi passargli la variabile read_news.php?id=2 ma read_news.php?tipo=News.

    Fammi sapere...

    SKYPE: Proclama
    Una volta la causa della criminalità era la povertà. Oggi è la ricchezza.
    Spia Ritual Skin - Creanova Studio Design - Animali e Natura

  8. #8
    si perchè se passi id=2 praticamente lo switch non sa cosa deve scegliere e normalmente va nella scelta di default che non ho visto nel tuo script ma è sempre buona norma inserirla.

    Wesman
    " Il web è il nostro futuro, perchè non esiste nulla di più libero ".

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    6
    No...vedo che ancora non sono riuscito a far capire il problema...proviamo in un'altra maniera:

    lasciamo perdere lo specifico delle news ed il mio caso, andiamo + in generale...come faccio a far girare uno script esterno dentro il centro del mio layout??? Ma deve girarci tutto, non solo il primo script, ripeto qualcuno ha mai visto e sa come funziona un iframe? ebbene deve funzionare in quel modo....avete mai visto CMS tipo Xoops o PHPNuke, ebbene li i contenuti dei moduli si aprono sempre nella parte centrale del layout, i menù, la testa ed il fondo della pagina restano sempre uguali.

    Mostratemi il codice che permette di fare na cosa del genere.

    Grazie


    Phil

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    6
    ooppppssss...sbagliai e mi partì un altro reply....scusasse!


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.