• User Newbie

    PHP Include e Links

    Salve a tutti, avrei 3 quesiti a cui nn riesco a trovare soluzione da quasi un mese:

    Supponiamo di avere nella cartella principale del sito un file di nome "index.php"
    poi in una cartella di nome "cartella" abbiamo un altro file di nome "a.php" e un immagine "img.gif". E nel file "a.php" si vede l'immagine "img.gif".
    Includendo a.php da index.php non riesco a vedere l'immagine img.gif....
    infatti anche se faccio
    include ("cartella/a.php");
    poi a.php non riesce a trovare più img.gif.... sapete come risolvere il problema?
    Oppure è necessario collegare tutti i files tramite il percorso completo?

    E' molto analoga alla prima, supponendo di avere sempre un index.php nella cartella principale e in una cartella di nome "cartella" due files: "a.php" e "b.php", e questa volta a.php contiene un link verso b.php.
    Se includo sempre allo stesso modo...
    include ("cartella/a.php");
    e poi clicco sul link, ma "b.php" si aprirà in una nuova pagina, e non come "a.php" che era incluso in "index.php"... E' possibile includere quindi anche le pagine collegate a a.php?

    1. <= quella che mi interessava sapere maggiormente
      Forse sbaglio le keywords per cercare, ma nn sono riuscito a trovare uno straccio di guida che spiega come fare i link tipo questo (index.php?page=ciao)
      sulla guida al php di Giorgio ho trovato qualcosa a riguardo, ma non ci ho capito molto....

    In attesa di una risposta vi pongo distinti saluti...


  • User Attivo

    per il problema degli include devi mettere l'url della cartella più alta, dipende dal tuo hoster..
    ad es:
    include('/var/www/index.php')

    se sei su altervista:
    include('/membri/tuonick/index.php')


  • User Newbie

    ok...grazie per la risposta 🙂
    ma in questo modo poi automaticamente riesce a trovare gli altri files senza che su a.php debba scrivere il percorso completo del link "/membri/tuonick/cartella/b.php" ?

    Riguardo invece alla 3 domanda... sapete dirmi almeno come si chiama quella tecnica?

    ciauz...


  • User Attivo

    @syscrash said:

    ok...grazie per la risposta 🙂
    ma in questo modo poi automaticamente riesce a trovare gli altri files senza che su a.php debba scrivere il percorso completo del link "/membri/tuonick/cartella/b.php" ?

    Riguardo invece alla 3 domanda... sapete dirmi almeno come si chiama quella tecnica?

    ciauz...
    non ho capito bene la tua domanda.. comunque se metti sempre il percorso "/membri/nic../blabla.." te le include tutte le pagine..
    per la 3, fai ad esempio
    <a href="pagina.php?id=30">ciao</a>
    poi nell altra pagina fai:
    $id=$_GET[id];
    a questo punto la variabile $id conterra il valore 30.
    ciao;)


  • User Newbie

    grazie per la risposta.,.. ci sono riuscito!

    però mi si presenta un altro problema:
    mi sto impazzendo...
    allora... io sto sviluppando questo sito in locale, quindi se voglio risalire fino alla root dovrei fare \Programmi\xampp\htdocs\ware\Software\modules.php
    ma poi quando lo metterò online dovrò ricambiare tutti i percorsi dei link in questo modo!!!....

    "ware" diventerà la cartella principale.... (tipo "tuonick" su altervista)
    quindi vorrei poter scrivere i percorsi dei link in modo che non sono costretto a riscriverli per metterli online....

    Riguardo all'altra domanda, non ho potuto testare se include tutti i files perchè mi da questo errore:

    Parse error: parse error, unexpected T_INCLUDE, expecting ',' or ';' in C:\Programmi\xampp\htdocs\prova da cancellare.php on line 3

    e il codice è questo

    <?php
    echo "ciao"
    include('C:\Programmi\xampp\htdocs\ware\Software\modules\News\index.htm');
    ?>

    ...strano... se sapete il perchè di questo errore fatemi sapere...
    ciao..


  • User Attivo

    hai dimenticato il ";"
    [php]
    <?php
    echo "ciao";
    include('C:\Programmi\xampp\htdocs\ware\Software\modules\News\index.htm');
    ?>
    [/php]

    x l'altro problema:
    fai un file .php che includi in tutte le pagine (tipo config.php) e fai:
    [php]
    $percorso='C:/programmi/blabla/';
    [/php]
    e quando fai l'include:
    [php]
    <?php
    echo "ciao";
    include($percorso.'index.htm');
    ?>
    [/php]

    quando la metti online cambi solo la variabile $percorso.
    Ciao


  • User Newbie

    Lol... che sbadato, me lo scordo sempre, ora funge.... cmq non mi include automaticamente i files...
    ovvero index.htm ha un redirect automatico a all.php, i quali si trovano nella stessa cartella, ma dato che index.htm viene incluso da un file posizionato in un altra cartella non riesce più a trovare all.php

    Quindi sarei costretto a inserire i percorsi completi ovunque... il problema è che sono dei moduli già fatti, quindi dovrei esplorarli tutti per trovare tutti i links....

    cmq riguardo invece a index.php?id=1 mi funziona, però volevo alcune info sulla sicurezza... non rischio un file inclusion con una shell in questo modo?
    che stringhe devo usare per evitarlo?


  • User Attivo

    @syscrash said:

    cmq riguardo invece a index.php?id=1 mi funziona, però volevo alcune info sulla sicurezza... non rischio un file inclusion con una shell in questo modo?
    può darsi, ma non ho la minima idea di cosa sia.. 😄
    spero che ti possa rispondere qualcun'altro.. Ciao