Sorgente dell'esempio

<!-- Parte in HTML -->
<html><head>
<title>Lezioncina sul PHP - 13</title>
<meta name="author" content="Ing. Stefano Salvi">
</head>
<body bgcolor=#ffffcc text=#000080 vlink=#0040cc link=#0080ff>
<table width=100% height=100%><tr>
<td width=90% valign=middle>
<h1 align=center><font size=+5>Esempio di pagina HTML Dinamica</font></h1>
</td><td width=90 valign=middle><img src=php.jpg align=right border=0 usemap=#mymap></td></tr>
<map name=mymap>
<area shape=rect coords=0,0,30,90 href=12.html>
<area shape=rect coords=30,0,60,90 href=index.html>
<area shape=rect coords=60,0,90,90 href=14.html>
</map>
<tr>
<td height=80% valign=middle align=left colspan=2>
<font size=+5><ul>
<h1 align=center>Esempio di pagina HTML Dinamica con interazione dell'utente</h1>
<h2 align=center>Clicka sulla cella dove vuoi inserire il simbolo del
giocatore corrente</h2>
<?php                         // Inizio parte in PHP
  $quads = $_REQUEST["quads"];  // Estrago le variabili insrite dall'utente
  $player = $_REQUEST["player"];
  if (!$quads) {              // Se la variabile 'quads' non esiste
    $quads = ",,,;,,,;,,,;";  // La creo con tutte le celle vuote
  }
  if ($player == "x") {       // Se il giocatore corrente e' 'x'
    $player= "o";             // Lo cambio in 'o'
    $color= "o.jpg";          // e di conseguenza scelgo il suo simbolo
  } else {                    // Altrimenti (giocatore = 'o' o nessun giocatore
    $player= "x";             // Scelgo il giocatore 'x'
    $color= "ics.jpg";        // Con il relativo simbolo
  }
  // Stampo (in HTML) il giocatore corrente (uso il tag IMG)
  echo "<center>Giocatore corrente: <img align=middle src=$color><br>\n";
  // Spezzo la variabile $quads nelle singole celle
  $status=explode (";",$quads); // Spezzo 'quads' nelle righe che contiene
  for ($y=0;$y < 3; $y ++) {  // Loop sulle righe della tabella
    $val[$y] = explode (",", $status [$y]); // Spezza la riga nelle celle
  }
  echo "<table border=1>\n";  // Stampo l'intestazione della tabella
  for ($y=0;$y < 3; $y ++) {  // Loop sulle righe della tabella
    echo "<tr>\n";            // Intestazione di riga
    for ($x = 0; $x < 3; $x ++) {     // Loop sulle celle
      if ($val [$y][$x] == "x") { // Se la riga contiene 'x'
        // Genere una cella contente l'immagine 'x'
        echo "<td><img src=ics.jpg border=0></td>\n";
      } else if ($val [$y][$x] == "o") { // Altrimenti se e' 'o'
        // Genere una cella contente l'immagine 'o'
        echo "<td><img src=o.jpg border=0></td>\n";
      } else {  // Altrimenti la cella e' vuota
        $link = "";  // Prepara una stringa vuota
        for ($oy=0;$oy < 3; $oy ++) { // Loop righe
          for ($ox = 0; $ox < 3; $ox ++) { // loop celle
            if ($ox == $x || $oy == $y) {  // Se la cella e' la corrente
              $link = "$link$player,"; // aggiunge simbolo corrente (con virgola)
            } else {  // altrimenti cella corrente
              $cur=$val[$oy][$ox];  // Recupera il vecchio valore della cella
              $link = "$link$cur,"; // aggiunge valore vecchio (con virgola)
            }
          }
          $link = "$link;"; // Aggiunge il ';' in fondo alla riga
        }
        // Una volta creata la nuova 'quads' in 'link',
        // Stampa una cella contente una cella con contenuto 'blank'
        // e con un collegamento a questa stessa pagina, ma con due
        // parametri 'GET': 'player' e 'quads'
        echo "<td><a href=13.php?player=$player&quads=$link><img\n";
        echo "src=blank.jpg border=0></a></td>\n";
      }
    }
    echo "</tr>\n";  // Chiudo la riga
  }
  echo "</table>\n"; // Chiudo la tabella
  // Stampo i link a pie' di pagina (potevo anche farlo in HTML...)
  echo "<h1 align=center>[<a href=13.php>Ricomincia</a>][<a\n";
  echo "href=13.s.php>Vedi il sorgente</a>]</h1></center>\n";
 ?> <!-- Fine parte in PHP, ripresa di HTML -->
</font></td></tr></table>
<p align=right><i>&copy; Ing. Stefano Salvi - </i>released under <a
 href="http://www.gnu.org/licenses/fdl.txt"
 title="Testo inglese della FDL presso www.gnu.org">FDL licence</a></p>
</body>
</html>

© Ing. Stefano Salvi - released under FDL licence