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

Discussione: Funzione swicht

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266

    Funzione swicht

    Salve ragazzi non riesco a capire dove sta il problema in questa funzione:

    Dentro una pagina html ho il seguente codice php:

    Codice PHP:
    <?php
    @include 'catalogo/config.php';

    // recupero i dati dal DB
    $query "SELECT * FROM catalogo_lavabi ORDER By Id";
    $res mysql_query($query) or die (mysql_error());

    // numero delle immagini presenti nel DB
    $n_img mysql_num_rows($res);


      while (
    $f=@mysql_fetch_array($res)){

        
    $id $f['id'];
        
    $nome stripslashes($f['nome']);
        
    $descrizione stripslashes($f['descrizione']);
        
    //stampiamo
        
    echo "<a href=\"?action=prova\">";
        echo 
    $nome "</br>" ;
        echo 
    "</a>" ;
        }
      

    ?></p></div>
      <div id="right"><?php
       
    switch ($_GET['action']) {
           case 
    "prova"$inc "/catalogo/prodotto_lavabi.php?id=" .$id"";          
           break;
               default: 
    $inc 'prova2.php';
           break;
    }
       include (
    $inc);
       
      @
    mysql_close($cn); 
    ?>
    L'errore che mi da cliccanto sul link $nome è il seguente:

    Warning: include(/catalogo/prodotto_lavabi.php?id=2) [function.include]: failed to open stream: No such file or directory in /web/htdocs/www.sito.it/home/stonecration/lavabi.php on line 114

    Warning: include() [function.include]: Failed opening '/catalogo/prodotto_lavabi.php?id=2' for inclusion (include_path='.:/php5/lib/php/') in /web/htdocs/www.sito.it/home/stonecration/lavabi.php on line 114

    alla linea 114 abbiamo include($inc)

    dove sbaglio?

  2. #2
    Se vuoi utilizzare include tramite un link http dovresti mettere l'indirizzo assoluto della pagina, per esempio:
    include 'http://www.nomesito.it/cartella/pagina.php?id=X'

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266
    Ho messo il percorso assoluto come mi hai detto ma nulla, ora l'errore è un pò diverso:

    Warning: include() [function.include]: URL file-access is disabled in the server configuration in /web/htdocs/www.sito.it/home/stonecration/lavabi.php on line 114

    Warning: include(http://www.sito.it/stonecreation/cat...avabi.php?id=2) [function.include]: failed to open stream: no suitable wrapper could be found in /web/htdocs/www.sito.it/home/stonecration/lavabi.php on line 114

    Warning: include() [function.include]: Failed opening 'http://www.sito.it/stonecreation/catalogo/prodotto_lavabi.php?id=2' for inclusion (include_path='.:/php5/lib/php/') in /web/htdocs/www.sito.it/home/stonecration/lavabi.php on line 114

  4. #4
    ok, il tuo server web ha l'accesso ad un file tramite url assoluto disabilitato quindi non penso che tu possa utilizzare la funzione include in quel modo.

    Non potresti utilizzare direttamente
    include('/catalogo/prodotto_lavabi.php') ?

    tanto il file incluso è richiamato direttamente nel file e quindi puoi accedere alle variabili definite in quel file.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266
    no non posso perchè l'id ovviamente cambia, in pratica tramite un pannello amministrativo inserisco dei prodotti con la descrizione ecc. la parte dello script non protetta da pass è visualizza_lavabi.php dove mi visualizza in elenco tutti i nomi presenti nel db con un link che mi porta a prodotto_lavabi.php con tutti i risultati di quel nome, ora lo script funziona alla grande, il problema mi sorge in questo momento per integrare lo script nel template index.php.

    Quindi stavo provando con la funzione switch ma non capisco perchè non va.

  6. #6
    Essenzialmente il problema è dovuto a:
    include("/catalogo/prodotto_lavabi.php?id=IDENTIFICATIVO");

    Questo non funziona perchè la include cerca il file prodotto_lavabi.php?id=IDENTIFICATIVO sul disco locale, che non esiste. Puoi vedere qui per info
    http://php.net/manual/en/function.include.php] http://php.net/manual/en/function.include.php[/URL]

    Comunque dovresti poter inclure la pagina anche senza id perche se hai una pagina ad esempio
    mostra_id.php
    Codice PHP:
    <?php  
       $id 
    $_GET['id'];
       echo 
    $id;
    ?>
    la puoi includere in un altra con una semplice modifica
    mostra_id.php
    Codice PHP:
    <?php 
    if(isset($_GET['id']) 
       
    $id $_GET['id'];
    echo 
    $id?>
    In questo modo se includi la pagina in un altra prende direttamente l'id definito nella pagina che la sta includendo. Spero che sia comprensibile.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266
    La funzione switch per me era perfetta, perchè mettevo una pagina di default e poi le altre pagine, io di solito la funzione switch la usavo in questo modo:

    al centro del body:
    Codice PHP:
    <?php
       
    switch ($_GET['action']) {
           case 
    "chisiamo"$inc 'chisiamo.php';
           break;
           case 
    "video"$inc 'video.php';
           break;
           case 
    "dovesiamo"$inc 'dovesiamo.php';
           break;
           case 
    "photogallery"$inc 'photogallery.php';
           break;
           case 
    "contattaci"$inc 'contattaci.php';
           break;
               default: 
    $inc 'news.php';
           break;
    }
       include (
    $inc);
    ?>
    e ogni ad ogni link assegano l'azione e il case cosi:
    <a href="index.php?action=chisiamo">
    <a href="index.php?action=video"> e cosi via.

    Ora in questo caso la cosa risulta diversa, perchè la pagina viene creata tramite un id che ho nel database, quindi per ogni prodotto inserito ho un id diverso, mi sempra strano che non possa integrare queste due pagine con la funzione switch, secondo me l'errore è che non trova l'id o c'è qualche errore nel codice che vi ho postato in precedenza.

    Vi prego datemi una mano perchè sto impazzendo.

  8. #8
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Mi sa che non hai proprio capito come funziona include.
    Quando includi uno script, è come se avessi copiato quello script e lo avessi incollato nella riga dove fai l'include.
    Non ha alcun senso passare dei parametri durante l'include, perché lo script incluso ha accesso a tutte le variabili dichiarate prima della sua inclusione.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266
    E quindi come posso integrare lo script? visto che è diviso in due pagine?

    Se fosse stata una sola pagina avrei messo include e pagina.php ma visto che le pagine sono due visualizza.php e prodotto.php, come faccio a includere visualizza.php sulla sinistra e prodotto.php sulla destra?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    266
    Se invece di fare in questo modo creo un unica pagina? invece di if get mi faccio if post?

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.