Visualizzazione risultati 1 fino 5 di 5

Discussione: Xhtml con php

  1. #1
    Torpedo non è connesso Utente giovane
    Data registrazione
    16-07-2003
    Messaggi
    50

    Predefinito Xhtml con php

    Ciao,

    Ho un file che teoricamente rispetta gli standard xhtml e si chiama index.php.
    All'interno viene richiamato un semplice menu che si trova sul file menu_alto.php.

    Di seguito il codice per index.php:
    Codice HTML:
    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>Prova</title>
    </head>
    <body>
    <?php include("menu_alto.php");?>
    Questa è una prova.
    </body>
    </html>
    Questo il codice per menu_alto.php:
    Codice HTML:
    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>menu</title>
    </head>
    <body>
    link1	link2	link3
    </body>
    </html>
    A questo punto faccio l'upload dei file ma se provo ad aprire la pagina prova.php mi viene restituito questo errore:
    Codice:
    Parse error: syntax error, unexpected T_STRING in /membri2/torpedo/guida_tk/prova.php on line 1
    Allora ho fatto le seguenti prove (alla ceca):
    1) rinominato prova.php in prova.html e lasciato menu_alto.php
    -> risultato: compare la scritta "Questa è una prova." ma non il menu;
    2) lasciato prova.php e rinominato menu_alto.php in menu_alto.html
    -> risultato: compare l'errore di cui sopra;
    3) ovviamente abbandonando la rigidezza sintattica del xhtml e seguendo le regole dell'html tutto funziona, cioè prova.php mi visualizza il menu contenuto in menu_alto.php;
    4) il problema si risolve eliminando la 1° riga da entrambi i file..anche se qui (-> http://www.w3.org/TR/xhtml1/) , poco sopra la metà della pagina, dicono che quella riga va messa.

    Qual'è la giusta soluzione rimanendo in xhtml?
    Grazie.
    Ultima modifica di Torpedo : 03-11-2012 alle ore 15.41.58



    -La cosa con la quale o senza la quale resta tutto tale e quale-

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Il messaggio di errore lo visualizzi poiché è attiva l'opzione short_open_tag, il questo modo il motore PHP interpreta la dichiarazione XML come codice PHP. Inoltre includendo così un documento in un altro, il documento prodotto non sarà ben formato. Infine, adatta gli attributi relativi alla lingua: se il documento è in italiano devi usare il codice it-IT.

  3. #3
    Torpedo non è connesso Utente giovane
    Data registrazione
    16-07-2003
    Messaggi
    50

    Predefinito

    Il messaggio di errore lo visualizzi poiché è attiva l'opzione short_open_tag, il questo modo il motore PHP interpreta la dichiarazione XML come codice PHP.
    Sono andato nel mio pannello e ho modificato il file .htaccess nel modo seguente:
    Codice:
    # # av:Toolbar
    SetEnv AV_TOOLBAR 0
    php_value short_open_tag off
    Inoltre includendo così un documento in un altro, il documento prodotto non sarà ben formato.
    Questa non l'ho capita. Non era così che si "importava" un documento esterno?

    Infine, adatta gli attributi relativi alla lingua: se il documento è in italiano devi usare il codice it-IT.
    Modifica fatta.

    Tttavia, ho fatto l'upload di tutto ma il problema persiste.



    -La cosa con la quale o senza la quale resta tutto tale e quale-

  4. #4
    Torpedo non è connesso Utente giovane
    Data registrazione
    16-07-2003
    Messaggi
    50

    Predefinito

    Stavo leggendo questo (-> http://www.php.net/manual/en/ini.cor...short-open-tag):
    short_open_tag boolean

    Tells PHP whether the short form (<? ?>) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"?>'; ?>. Also, if disabled, you must use the long form of the PHP open tag (<?php ?>).
    Quindi ho provato a sostituire la prima riga di entrambi i file con:
    Codice:
    <? echo '<?xml version="1.0" encoding="UTF-8"?>';?>
    e tutto funziona alla grande (nel file.htaccess ho lasciato php_value short_open_tag off).

    Poi però ho provato a validare la pagina prova.php andando sul sito http://validator.w3.org/ e mi ha restituito un tot di errori.

    Quindi non è stata una buona soluzione (anche se efficace).
    Ultima modifica di Torpedo : 03-11-2012 alle ore 17.17.18



    -La cosa con la quale o senza la quale resta tutto tale e quale-

  5. #5
    Torpedo non è connesso Utente giovane
    Data registrazione
    16-07-2003
    Messaggi
    50

    Predefinito

    Alla fine ho risolto.

    I problemi erano i seguenti:

    1. il file menu.php deve contenere solo i link e non tutta la struttura di una pagina xhtml. Infatti con il comando <?php include("menu_alto.php");?> io includo tutto il file (forse era questo il significato della frase di Karl92 che non riuscivo a capire)


    1. Teoricamente dovrebbe risolversi tutto con il settaggio php_value short_open_tag off


    1. Dato che il punto precedente non da i risultati sperati (questo non ho capito perchè?) vale la scrittura
      <? echo '<?xml version="1.0" encoding="UTF-8"?>';?>
      anzichè
      <?xml version="1.0" encoding="UTF-8"?>


    Alla fine ottengo che il menu è importato correttamente e che w3c mi valida senza alcun errore la mia pagina!!

    Ciao!
    Ultima modifica di Torpedo : 03-11-2012 alle ore 17.58.57



    -La cosa con la quale o senza la quale resta tutto tale e quale-

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •