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

    Rendere accessibile questo codice. Come posso fare?

    Ciao a tutti,

    spero di essere nella sezione giusta. Ho uno script PHP che va a generare un calendario per la gestione di eventi però testando con il W3C Validator la pagina dove è inserito mi genera 219 errori VVoVe:

    Ora, se non inserisco lo script la pagina è perfettamente validata XHTML 1.1 Strict, quindi il difetto è sicuramente li.

    Codice PHP:
    <?php
    //query per stampa eventi
    $contatore 0;
    $risultato mysql_query"SELECT * FROM eventi ORDER BY data1 desc;" );
    while ( 
    $riga mysql_fetch_array$risultato ) ) {
            
        
    $trasformazione $riga["data1"];
            
    $dateform explode'-'$trasformazione );
            
    $datafin $dateform[2].'/'.$dateform[1].'/'.$dateform[0];
            
    $codice = (date($trasformazione));
        }
    //definizione dei vettori per i giorni
    $giorno = Array("L","M","M","G","V","S","D");
    $nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno""Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

    $aa=$_REQUEST['aa'];
    if (
    $aa==""$aa=date("Y");
    $mm=$_REQUEST['mm'];

    if (
    $mm==""$mm=date("n");

    print (
    "<table summary='Questa tabella contiene il calendario degli eventi'>");
    print (
    "<thead>");
    print (
    "<tr>");
    for (
    $i=0;$i<7;$i++){
    print (
    "<th>".$giorno[$i]."</th>");
    }
    print(
    "</tr>");
    print(
    "</thead>");
    print(
    "<tbody>");

    $primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
    $delta=date("w",$primo)-1;
    for (
    $i=0;$i<$delta;$i++){
       print 
    "    <td></td>";
    }
    for (
    $i=1;$i<=date("t",$primo);$i++){

      if ((
    $i+$delta)%7==1) print "  <tr>"//inizio riga
     
        
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
          print 
    "    <td style='border:1px solid #f00'>".$i."</td>";
        } else print 
    "    <td>[url='./eve_dettaglio2.php?id=$codice&anno=$aa&mese=$mm&giorno=$i']".$i."[/url]</td>";
     
      if ((
    $i+$delta)%7==0) print " </tr>"//chiusura riga
    }
    print(
    "</tbody>");
    print(
    "</table>");  

    ?>
    mi sapresete aiutare?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: Rendere accessibile questo codice. Come posso fare?

    Originariamente inviato da Neo996sps

    mi sapresete aiutare?
    se postassi qualche errore del validatore sarebbe più semplice


    comunque ad esempio sui link è necessario codificare le "&" in "& a m p ;" (senza spazi)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    posto il codice con la modifica della & :

    Codice PHP:
    <?php
    //query per stampa eventi
    $contatore 0;
    $risultato mysql_query"SELECT * FROM eventi ORDER BY data1 desc;" );
    while ( 
    $riga mysql_fetch_array$risultato ) ) {
            
        
    $trasformazione $riga["data1"];
            
    $dateform explode'-'$trasformazione );
            
    $datafin $dateform[2].'/'.$dateform[1].'/'.$dateform[0];
            
    $codice = (date($trasformazione));
        }
    //definizione dei vettori per i giorni
    $giorno = Array("L","M","M","G","V","S","D");
    $nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno""Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

    $aa=$_REQUEST['aa'];
    if (
    $aa==""$aa=date("Y");
    $mm=$_REQUEST['mm'];

    if (
    $mm==""$mm=date("n");

    print (
    "<table summary='Questa tabella contiene il calendario degli eventi'>");
    print (
    "<thead>");
    print (
    "<tr>");
    for (
    $i=0;$i<7;$i++){
    print (
    "<th>".$giorno[$i]."</th>");
    }
    print(
    "</tr>");
    print(
    "</thead>");
    print(
    "<tbody>");

    $primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
    $delta=date("w",$primo)-1;
    for (
    $i=0;$i<$delta;$i++){
       print 
    "    <td></td>";
    }
    for (
    $i=1;$i<=date("t",$primo);$i++){

      if ((
    $i+$delta)%7==1) print "  <tr>"//inizio riga
     
        
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
          print 
    "    <td style='border:1px solid #f00'>".$i."</td>";
        } else print 
    "    <td>[url='./eve_dettaglio2.php?id=$codice&ampanno=$aa&ampmese=$mm&ampgiorno=$i']".$i."[/url]</td>";
     
      if ((
    $i+$delta)%7==0) print " </tr>"//chiusura riga
    }
    print(
    "</tbody>");
    print(
    "</table>");  

    ?>
    e questi sono alcuni errori che mi da il validatore:

    Line 78, Column 177: document type does not allow element "td" here; assuming missing "tr" start-tag

    …th>D</th></tr></thead><tbody> <td></td> <td></td> <td>&n


    # Error Line 78, Column 317: general entity "ampanno" not defined and no default entity

    …'./eve_dettaglio2.php?id=2009-08-10&ampanno=2009&ampmese=8&ampgiorno=1'>1</a>



    This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.



    ine 78, Column 422: reference to entity "ampanno" for which no system identifier could be generated

    …dettaglio2.php?id=2009-08-10&ampanno=2009&ampmese=8&ampgiorno=2'>2</a></td> <



    This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Neo996sps
    Line 78, Column 177: document type does not allow element "td" here; assuming missing "tr" start-tag
    …th>D</th></tr></thead><tbody> <td></td> <td></td> <td>&n
    l'annidamento corretto è

    codice:
    <tbody>
      <tr>
         <td>....</td>
         <td>....</td>
         <td>....</td>
      </tr>
      <tr>
        ...
      </tr>
    a te in quel punto manca il <tr>


    Originariamente inviato da Neo996sps
    # Error Line 78, Column 317: general entity "ampanno" not defined and no default entity
    …'./eve_dettaglio2.php?id=2009-08-10&ampanno=2009&ampmese=8&ampgiorno=1'>1</a>

    ine 78, Column 422: reference to entity "ampanno" for which no system identifier could be generated
    This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.

    devi scrivere
    codice:
    &amp;anno 
    &amp;mese
    &amp;giorno
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Per caso la pagina da validare è online?
    Se si posta il link.

  6. #6
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    codice:
       print "    <td>&#38;nbsp;<\/td>"; 
    // continue ...
    print("<\/tbody>");
    print("<\/table>");
    Andate tutti quanti a dormire che domani vi apparirà il Duce in cam!
    Dal vivo!

  7. #7
    Originariamente inviato da Enzaccio
    codice:
       print "    <td>&#38;nbsp;<\/td>"; 
    // continue ...
    print("<\/tbody>");
    print("<\/table>");
    ho provato a modificare lo script in questa maniera, ma non cambia nulla. Anzi, mi compare scritto \/tbody \/table in fondo al calendario.

    <tr>
    <td>....</td>
    <td>....</td>
    <td>....</td>
    </tr>
    non posso mettere i due <tr> altrimenti mi vengono sballati i giorni della settimana. Stò iniziando a disperare....
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Hai modificato le e commerciali come ti ho suggerito nell'ultimo post?


    Originariamente inviato da Neo996sps
    non posso mettere i due <tr> altrimenti mi vengono sballati i giorni della settimana. Stò iniziando a disperare....

    allora niente validazione.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    posto le modifiche al codice. Adesso ho abbassato notevolmente il numero di errori:

    Codice PHP:
    <?php
    //query per stampa eventi
    $contatore 0;
    $risultato mysql_query"SELECT * FROM eventi ORDER BY data1 desc;" );
    while ( 
    $riga mysql_fetch_array$risultato ) ) {
            
        
    $trasformazione $riga["data1"];
            
    $dateform explode'-'$trasformazione );
            
    $datafin $dateform[2].'/'.$dateform[1].'/'.$dateform[0];
            
    $codice = (date($trasformazione));
        }
    //definizione dei vettori per i giorni
    $giorno = Array("L","M","M","G","V","S","D");
    $nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno""Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

    $aa=$_REQUEST['aa'];
    if (
    $aa==""$aa=date("Y");
    $mm=$_REQUEST['mm'];

    if (
    $mm==""$mm=date("n");

    print (
    "<table summary='Questa tabella contiene il calendario degli eventi'>");
    print (
    "<thead>");
    print (
    "<tr>");
    for (
    $i=0;$i<7;$i++){
    print (
    "<th>".$giorno[$i]."</th>");
    }
    print(
    "</tr>");
    print(
    "</thead>");
    print(
    "<tbody>");

    $primo=mktime(0,0,0,$mm,1,$aa); //calcolo il primo giorno del mese
    $delta=date("w",$primo)-1;
    for (
    $i=0;$i<$delta;$i++){
    print (
    "<td></td>");
    }

    for (
    $i=1;$i<=date("t",$primo);$i++){
      if ((
    $i+$delta)%7==1
      print (
    "<tr>"); //inizio riga
      
    if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) {
      print (
    "<td>".$i."</td>");
        } else print 
    "    <td>[url='./eve_dettaglio2.php?id=$codice&amp;anno=$aa&amp;mese=$mm&amp;giorno=$i']".$i."[/url]</td>";
     
      if ((
    $i+$delta)%7==0
      print (
    "</tr>"); //chiusura riga
    }
    // print ("</tr>");
    print("</tbody>");
    print(
    "</table>");  

    ?>
    e qua siamo a 4 errori, tutti causati dalla mancanza dei <tr>
    Errare è umano, ma per fare veramente casino ci vuole la password di root

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.