SQL実習

学内からしか使えないようになっています。

SQL:

学外からは使えません

上のソース

<?php
  $addr = $_SERVER['REMOTE_ADDR'];
  if (!preg_match("/^133\.67\./", $addr)) {
    echo "<p>学外からは使えません</p>\n";
  } elseif ($_POST['sql'] != '') {
    $sql = $_POST['sql'];
    $hsql = htmlspecialchars($sql);
    echo "<p>SQL: $hsql</p>\n";
    if (mysql_connect('hostname', 'username', 'password') == FALSE) {
      echo "<p>データベースに接続できませんでした: ", mysql_error(), "</p>\n";
    } else {
      if (mysql_select_db('dbname') == FALSE) {
        echo "<p>データベースが選べませんでした: ", mysql_error(), "</p>\n";
      } elseif (($result = mysql_unbuffered_query($sql)) == FALSE) {
        echo "<p>SQLエラー: ", mysql_error(), "</p>\n";
      } elseif ($result !== TRUE) {
        $cols = mysql_num_fields($result);
        echo "<table border=\"1\">\n";
        echo "<tr>";
        for ($j = 0; $j < $cols; $j++) {
          $s = htmlspecialchars(mysql_field_name($result, $j));
          echo "<th>$s</th>";
        }
        echo "</tr>\n";
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
          echo "<tr>";
          for ($j = 0; $j < $cols; $j++) {
            $s = htmlspecialchars($row[$j]);
            echo "<td>$s</td>";
          }
          echo "</tr>\n";
        }
        echo "</table>\n";
      }
      echo "<p>Ok.</p>\n";
      mysql_close();
    }
  }
?>

奥村晴彦

Last modified: 2012-04-19 20:56:56