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

    Problema con require & link interni HTML

    Buonasera a tutti!

    Ho da poco cominciato a programmare in PHP ed ora è arrivato il grande momento, il primo sito completo da realizzare (fino ad ora ho solo realizzato siti molto semplici html + css).

    Veniamo a noi; il problema si presenta nel momento in cui richiamo tramite uno script php un file html presente in un'altra directory (in questo file html sono presenti riferimenti a immagini che si trovano a loro volta in un'altra directory).
    Il problema sta in questo: Siccome da quanto ho capito con l'istruzione "require" PHP non fa altro che copiare il contenuto del file che viene richiesto, viene a crearsi confusione con i riferimenti dei vari link.
    Spero di essermi spiegato bene, ad ogni modo per maggior chiarezza possibile mi accingo a postare il codice e la situazione delle directory

    Directory sito web:


    Posto qui anche il codice "incriminato"

    index.php

    Codice PHP:
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; 
    charset=UTF-8"> 
    <title></title> 
    </head> 
    <body> 
    <?php require($_SERVER['DOCUMENT_ROOT']."/BrancaHardwareProva/"."html/topPage.html");
    echo(
    '<h1>Registrazione appuntamenti</h1> <form action="index.php" method="post"> <label>Progressivo: <input type="text" name="progressivo" id="progressivo" maxlength="10" /> </label> 
     <label>Descrizione: <input type="text" name="descrizione" id="descrizione" maxlength="50" /> </label> 
     <label>Data (gg/mm/aaaa): <input type="text" name="data" id="data" maxlength="10" /> </label> 
     <input type="submit" name="invia" value="Invia" /> </form>'
    ); 
    echo 
    '</div>'
    ?> 
    </body> 
    </html>
    registrazione.php

    Codice PHP:
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title></title> 
    </head> 
    <body> 
    <?php require($_SERVER['DOCUMENT_ROOT']."/BrancaHardwareProva/"."/html/topPage.html");
    echo(
    '<div id="form"> <form id="regForm" action="elabora.js" method="post"> <fieldset> <h1>Modulo di registrazione</h1> </fieldset> <fieldset> <legend>Dati Account </legend> <label for="email" class="toMove">Email: </label> <input type="text" name="email" id="email" class="muovi"/> 
     <label for="password" class="toMove"> Password: </label> <input type="password" name="password" id="password" /> 
     <label for="password2" class="toMove"> Conferma password: </label> <input type="password" name="password2" id="password2" /> </fieldset> <fieldset> <legend> Dati Personali </legend> <label for="nome" class="toMove"> Nome: </label> <input type="text" name="nome" id="nome" /> 
     <label for="cognome" class="toMove"> Cognome: </label> <input type="text" name="cognome" id="cognome" /> 
     <label for="datanascita" class="toMove"> Data di nascita (gg/mm/aaaa): </label> <input type="text" name="datanascita" id="datanascita" /> 
     <label for="indirizzo" class="toMove"> Indirizzo: </label> <input type="text" name="indirizzo" id="indirizzo" /> 
     <label for="CAP" class="toMove"> CAP: </label> <input type="text" name="CAP" id="CAP" /> 
     <label for="citta" class="toMove"> Città: </label> <input type="text" name="citta" id="citta" /> 
     <label for="provincia" class="toMove"> Provincia </label> <select name="provincia" id="provincia" > <option value="" selected="selected"> - Seleziona la provincia -</option> <option value="AG"> Agrigento </option> <option value="AL"> Alessandria </option> <option value="AN"> Ancona </option> <option value="AO"> Aosta </option> <option value="AR"> Arezzo </option> <option value="AP"> Ascoli Piceni </option> <option value="AT"> Asti </option> <option value="AV"> Avellino </option> <option value="BA"> Bari </option> <option value="BT"> Barletta-Andria-Trani</option> <option value="BL"> Belluno </option> <option value="BN"> Benevento </option> <option value="BG"> Bergamo </option> <option value="BI"> Biella </option> <option value="BO"> Bologna </option> <option value="BZ"> Bolzano </option> </select> </br> </fieldset> <div id="button"> <input type="submit" name="invia" value="Invia"/> <input type="reset" name="reset" value="Ripristina"/> </div> </form> </div>'
    ); 
    echo 
    '</div>'
    ?> 
    </body> 
    </html>
    topPage.html

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title> Branca Hardware</title> 
    <link href="C:/xampp/htdocs/BrancaHardwareProva/css/topPage.css" rel="stylesheet" type="text/css" /> 
    </head> 
    <body> 
    <div id="page"> 
    <div id="accesso"> LoginRegistrazioneRecupera Password</div> <div id="carrello"> Carrello[img]C:/xampp/htdocs/BrancaHardwareProva/img/carrello.gif[/img]</div> 
    <div id="titleimage">[img]C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg[/img]</div> 
    <div id="menu_orizzontale"> <ul id="menu_css_orizzontale">[*]Home[*]Chi siamo[*]Dove Siamo[*]Orari[*]Contatti[/list]</div> <div id="menu_verticale"> <ul id="menu_css_verticale"> 
    
    Categorie</p>[*]Home[*]Chi siamo[*]Dove Siamo[*]Orari[*]Gallery[*]Contatti[/list]</div> 
    </body> 
    </html>
    topImage.css

    codice:
    @charset "utf-8"; /* CSS Document */ 
    #page { 
    background-color:#FFFAFA; 
    clear: both; 
    width: 1280px; 
    margin: 0px auto 0px auto; 
    } 
    body { 
    background-image:url("../img/background.jpg"); 
    //background-color: #00FFFF; 
    }
    Provando vedrete che i riferimenti alle immagini ed al file css non vengono caricati in quanto le posizioni dei due file php sono diverse ed entra un gioco un conflitto con i percorsi relativi.
    Ringrazio chiunque sia in grado di aiutarmi e mi scuso per la banalità della mia domanda, ma tant'è... questa banalità mi ha bloccato tutto il lavoro

  2. #2
    Nessuno?

  3. #3
    Ma spiegami una cosa, tu dici:

    Il problema sta in questo: Siccome da quanto ho capito con l'istruzione "require" PHP non fa altro che copiare il contenuto del file che viene richiesto, viene a crearsi confusione con i riferimenti dei vari link.
    quindi il tuo documento index.php diventa:
    Codice PHP:
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; 
    charset=UTF-8"> 
    <title></title> 
    </head> 
    <body> 
    <?php


    // qui c'era il require!!!!
    /*************************************/
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
    <
    html xmlns="http://www.w3.org/1999/xhtml"
    <
    head
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <
    titleBranca Hardware</title
    <
    link href="C:/xampp/htdocs/BrancaHardwareProva/css/topPage.css" rel="stylesheet" type="text/css" /> 
    </
    head
    <
    body
    <
    div id="page"
    <
    div id="accesso"> [url="http://www.w3schools.com"]Login[/url][url="C:/xampp/htdocs/BrancaHardwareProva/php/registrazione.php"]Registrazione[/url][url="http://www.w3schools.com"]Recupera Password[/url]</div> <div id="carrello"> [url="http://www.w3schools.com"]Carrello[/url][img]C:/xampp/htdocs/BrancaHardwareProva/img/carrello.gif[/img]</div
    <
    div id="titleimage">[img]C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg[/img]</div
    <
    div id="menu_orizzontale"> <ul id="menu_css_orizzontale">[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div> <div id="menu_verticale"> <ul id="menu_css_verticale"

    Categorie</p>[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Gallery-IT.html"]Gallery[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div
    </
    body
    </
    html>
    /***********************************/



    echo('<h1>Registrazione appuntamenti</h1> <form action="index.php" method="post"> <label>Progressivo: <input type="text" name="progressivo" id="progressivo" maxlength="10" /> </label> 
     <label>Descrizione: <input type="text" name="descrizione" id="descrizione" maxlength="50" /> </label> 
     <label>Data (gg/mm/aaaa): <input type="text" name="data" id="data" maxlength="10" /> </label> 
     <input type="submit" name="invia" value="Invia" /> </form>'
    ); 
    echo 
    '</div>'
    ?> 
    </body> 
    </html>
    ti sembra corretto?

    Poi altra cosa, sotto c'è un'altro echo che non fa nulla, hai solo un form che puoi benissimo scrivere in html quindi perchè scomodare php...?

    mi sa che devi studiare un po di più
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Originariamente inviato da Al_katraz984
    Ma spiegami una cosa, tu dici:

    ...

    mi sa che devi studiare un po di più
    Ti ringrazio innanzitutto per la risposta.
    Ora; ho notato l'errore che mi hai sottolineato riportandomi il contenuto del file html sullo script php (non me ne ero proprio accorto , grazie e scusa).

    Volevo chiederti: Hai capito qual'era il mio intento?
    Io volevo con lo script in php fare in modo che venisse formata una pagina composta dal mio file html (topPage.html) + altro codice html (è una cosa a scopo didattico, per capire come funziona operativamente il require).
    Visti gli errori precedenti ho modificato così il codice:

    index.php
    Codice PHP:
    <?php
    require($_SERVER['DOCUMENT_ROOT']."/BrancaHardwareProva/"."html/topPage.html");
    echo 
    'altro codice html';
    echo 
    '</div>';
    ?>
    topPage.html
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <title> Branca Hardware</title>  
    <link href="C:/xampp/htdocs/BrancaHardwareProva/css/topPage.css" rel="stylesheet" type="text/css" />  
    </head>  
    <body>  
    <div id="page">  
    <div id="accesso"> LoginRegistrazioneRecupera Password</div> <div id="carrello"> Carrello[img]C:/xampp/htdocs/BrancaHardwareProva/img/carrello.gif[/img]</div>  
    <div id="titleimage">[img]C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg[/img]</div>  
    <div id="menu_orizzontale"> <ul id="menu_css_orizzontale">[*]Home[*]Chi siamo[*]Dove Siamo[*]Orari[*]Contatti[/list]</div> <div id="menu_verticale"> <ul id="menu_css_verticale"> 
    
    Categorie</p>[*]Home[*]Chi siamo[*]Dove Siamo[*]Orari[*]Gallery[*]Contatti[/list]</div>
    in questo modo dovrei ottenere questo risultato:
    Codice PHP:
    <?php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
    <
    html xmlns="http://www.w3.org/1999/xhtml">  
    <
    head>  
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <
    titleBranca Hardware</title>  
    <
    link href="C:/xampp/htdocs/BrancaHardwareProva/css/topPage.css" rel="stylesheet" type="text/css" />  
    </
    head>  
    <
    body>  
    <
    div id="page">  
    <
    div id="accesso"> [url="http://www.w3schools.com"]Login[/url][url="C:/xampp/htdocs/BrancaHardwareProva/php/registrazione.php"]Registrazione[/url][url="http://www.w3schools.com"]Recupera Password[/url]</div> <div id="carrello"> [url="http://www.w3schools.com"]Carrello[/url][img]C:/xampp/htdocs/BrancaHardwareProva/img/carrello.gif[/img]</div>  
    <
    div id="titleimage">[img]C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg[/img]</div>  
    <
    div id="menu_orizzontale"> <ul id="menu_css_orizzontale">[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div> <div id="menu_verticale"> <ul id="menu_css_verticale"

    Categorie</p>[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Gallery-IT.html"]Gallery[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div>

    echo 
    'altro codice html';
    echo 
    '</div>';
    echo 
    '</body>';
    echo 
    '</html>';

    ?>
    se non vado errato.

    A questo punto il codice dovrebbe essere giusto (confermi?) ma i riferimenti alle immagini ed al css continuano a non funzionare.

    Grazie mille per tutto, non scomoderei nessuno se riuscissi a risolvere il tutto da solo ma l'unico modo per studiare un linguaggio di programmazione è "usarlo" e purtroppo l'inizio è sempre un po difficoltoso, fu così anche per Java e C++ alcuni anni fa

  5. #5
    Il risultato che ottieni su index.php (tasto destro -> visualizza sorgente) è:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
    <
    html xmlns="http://www.w3.org/1999/xhtml">  
    <
    head>  
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <
    titleBranca Hardware</title>  
    <
    link href="C:/xampp/htdocs/BrancaHardwareProva/css/topPage.css" rel="stylesheet" type="text/css" />  
    </
    head>  
    <
    body>  
    <
    div id="page">  
    <
    div id="accesso"> [url="http://www.w3schools.com"]Login[/url][url="C:/xampp/htdocs/BrancaHardwareProva/php/registrazione.php"]Registrazione[/url][url="http://www.w3schools.com"]Recupera Password[/url]</div> <div id="carrello"> [url="http://www.w3schools.com"]Carrello[/url][img]C:/xampp/htdocs/BrancaHardwareProva/img/carrello.gif[/img]</div>  
    <
    div id="titleimage">[img]C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg[/img]</div>  
    <
    div id="menu_orizzontale"> <ul id="menu_css_orizzontale">[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div> <div id="menu_verticale"> <ul id="menu_css_verticale"

    Categorie</p>[*][url="HomePage-IT.html"]Home[/url][*][url="ChiSiamo-IT.html"]Chi siamo[/url][*][url="DoveSiamo-IT.html"]Dove Siamo[/url][*][url="Orari-IT.html"]Orari[/url][*][url="Gallery-IT.html"]Gallery[/url][*][url="Contatti-IT.html"]Contatti[/url][/list]</div>

    altro codice html
    </div>
    </
    body>
    </
    html
    La pagina viene parsata dal server e le funzioni php spariscono..

    Non so se sei in locale o online, cosi ad occhio è sbagliato il riferimento nelle immagini:
    Codice PHP:
    <img src="C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg" 
    anche quello del css è cosi...

    Grazie mille per tutto, non scomoderei nessuno se riuscissi a risolvere il tutto da solo ma l'unico modo per studiare un linguaggio di programmazione è "usarlo" e purtroppo l'inizio è sempre un po difficoltoso, fu così anche per Java e C++ alcuni anni fa
    Siamo qui per voi , cosa stai cercando di ottenere?
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Originariamente inviato da Al_katraz984
    Il risultato che ottieni su index.php (tasto destro -> visualizza sorgente) è:

    ...

    La pagina viene parsata dal server e le funzioni php spariscono..
    Ok, fino a qui ci siamo; erroneamente ti avevo scritto il tutto con gli echo per cercare proprio di fare la "trasformazione" passo passo.

    Non so se sei in locale o online, cosi ad occhio è sbagliato il riferimento nelle immagini:
    Codice PHP:
    <img src="C:/xampp/htdocs/BrancaHardwareProva/img/Logo.jpg" 
    anche quello del css è cosi...



    Siamo qui per voi , cosa stai cercando di ottenere?
    Sto lavorando tramite un server apache e l'obbiettivo è quello di costruire un sito web (nello specifico un portale di e-commerce, è un lavoro per scuola =) ) ma in sostanza sono in locale in quanto il sito si trova fisicamente hostato sul mio pc.
    E qui si apre la parentesi sui collegamenti e penso di aver capito dove ho sbagliato:
    - Sul file php quando utilizzo il "require" metto un percorso locale (se provo con il percorso del server su apache il file non lo trova).
    - Sul file html per linkare il css e le immagini utilizzo invece i collegamenti "da server"; perchè se utilizzo i collegamenti in locale non lo trova.

    Per il resto, visto che mi sembra che mastichi il php da parecchio tempo volevo chiederti un parere; sperando che l'approccio che ho utilizzato risulti chiaro.
    E' giusto, come ho cercato di fare, cercare di costruire una pagina html che contenga il "modello comune" di tutte le pagine del mio sito e poi richiamare questo modello (eventualmente arricchendolo con il codice che si rivelerà necessario) tramite i vari script php?
    Grazie ancora per l'aiuto

  7. #7
    Originariamente inviato da Branca_94
    Per il resto, visto che mi sembra che mastichi il php da parecchio tempo volevo chiederti un parere; sperando che l'approccio che ho utilizzato risulti chiaro.
    E' giusto, come ho cercato di fare, cercare di costruire una pagina html che contenga il "modello comune" di tutte le pagine del mio sito e poi richiamare questo modello (eventualmente arricchendolo con il codice che si rivelerà necessario) tramite i vari script php?
    Grazie ancora per l'aiuto
    Per l'obiettivo che ti sei prefissato una struttura del genere non è proprio il massimo..

    Il progetto sarà solo ed esclusivamente in php?
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Originariamente inviato da Al_katraz984
    Per l'obiettivo che ti sei prefissato una struttura del genere non è proprio il massimo..

    Il progetto sarà solo ed esclusivamente in php?
    L'idea è quella di fare un progetto solo in php (ovviamente avrò anche file html e css) ed al massimo qualche script in jsp lato client, ma niente di impegnativo.

  9. #9
    Ci sono molti modi per raggiungere lo scopo.. e sono tutti più o meno validi..


    tu come pensavi di muoverti? hai già un'analisi dei requisiti? sai già bene o male quanto grande sarà il progetto e come vuoi approcciarti ad esso?
    Questa volta, più che un voto.. è favoreggiamento.

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.