Короче приехал на собеседование с ночёвкой за тысячу км., после собеседования мне дали 1 день испытательного срока. Сказали написать гостевую книгу на PHP. Потом я сдал работу. Они сказали мол, мы вам перезвоним, а потом пришёл почему-то мне отказ. Вот код:
index.php:

Код:
<?php
  require_once('config.php');
  require_once('gblib.php');

  $int_sel_page = 1;
  $int_max_pages = 1;

  $arr_conn = unserialize(CONNECTION);
  $obj_mysql = connection_open($arr_conn['server'], $arr_conn['username'], $arr_conn['password'], $arr_conn['database']);
  $int_max_pages = get_anz_eintaege($obj_mysql);

  if($_SERVER['REQUEST_METHOD'] === 'GET') {
    if(isset($_GET['page'])) { $int_sel_page = $_GET['page']; }

    if(isset($_GET['delete_id'])) {
      if(!isset($_SERVER['PHP_AUTH_USER'])) {
         header('WWW-Authenticate: Basic realm="My Realm"');
         header('HTTP/1.0 401 Unauthorized');
         exit;
      } else {
        $arr_admin = unserialize(ADMINISTRATOR);
        if($_SERVER['PHP_AUTH_USER'] == $arr_admin['user'] && md5($_SERVER['PHP_AUTH_PW']) == $arr_admin['password'] && isset($_GET['delete_id'])) {
          loesche_eintrag($obj_mysql, $_GET['delete_id']);
       }
      }
    }
  }

  if($_SERVER['REQUEST_METHOD'] === 'POST') {
    if(!isset($_POST['name']))
      exit;
    if(!isset($_POST['email']))
      exit;
    if(!isset($_POST['nachricht']))
      exit;

    neu_eintrag($obj_mysql, $_POST['name'], $_POST['email'], $_POST['nachricht']);
    header('Location: index.php');
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Гостевая книга</title>
    <style> 
      .paginator { color:blue; text-decoration:underline; }
      .paginator:hover { color:blue; text-decoration:none; }
      .paginator:visited { color:blue; text-decoration:none; }
      .page_selected { color:red; text-decoration:none; }
      #content { padding:7px 7px; }
      .field { width:200px; padding:2px 2px;}
      .btn { width:75px; height:25px; }
      .required { color:red; }
      .lnk2 { color:red; text-decoration:none; }
      .lnk2:hover { color:red; text-decoration:underline; }
      .lnk2:visited { color:red; text-decoration:none; }
    </style>
    <script type="text/javascript" language="javascript">
      function convert_email(el) {
  
      }

      function is_required_clear(str_required_id) {
        var el_req = document.getElementById(str_required_id);
        el_req.innerHTML = '';
      }

      function is_required(str_field_id, str_required_id, str_char) {
        var el_field_id = document.getElementById(str_field_id);
        var el_req = document.getElementById(str_required_id);
        if(!el_field_id.value) { el_req.innerHTML = str_char; return false; }
      
        return true;
      }

      function _submit(str_id) {
        var r = 0;
        is_required_clear('req_name');
        is_required_clear('req_email');
        is_required_clear('req_nachricht');

        if(!is_required('field_name', 'req_name', '*')) r = 1;
        if(!is_required('field_email', 'req_email', '*'))  r = 2;
        if(!is_required('field_nachricht', 'req_nachricht', '*'))  r = 3;

        if(r == 0) document.getElementById(str_id).submit();
      }
    </script>
  </head>
  <body>
    <div id="content">
    <h1>Гостевая книга</h1>
    <br>
    <br>
    <form id="form" method="post" action="index.php">
      <input type="hidden" name="page" value="<?= $int_sel_page; ?>">
      Имя<span id="req_name" class="required"></span>:
      <br />
      <input class="field" type="text" id="field_name" name="name" />
      <br />
      <br />
      E-Mail<span id="req_email" class="required"></span>:
      <br />
      <input class="field" type="text" id="field_email" name="email" />
      <br />
      <br />
      Сообщение<span id="req_nachricht" class="required"></span>:
      <br />
      <textarea name="nachricht" id="field_nachricht" cols="26" rows="10"></textarea>
      <br />
      <br />
      <input type="button" class="btn" value="Отправить" onclick="_submit('form')" />
    </form>
    <br />
    <br />
    <br />
    <table border="0">
      <?php
        $int_limit = ITEMS_PER_PAGE;
        $int_offset = ($int_sel_page - 1) * ITEMS_PER_PAGE;
        $obj_arr_results = get_einraege($obj_mysql, $int_offset, $int_limit);
        while($arr_row = $obj_arr_results->fetch_assoc()):
      ?>
      <tr valign="top">
        <td>Имя:</td>
        <td><?= $arr_row['name']; ?>&nbsp;<a class="lnk2" href="index.php?delete_id=<?= $arr_row['id']; ?>">&times;</a></td>
      </tr>
      <tr valign="top">
        <td>Дата:</td>
        <td><?= date('d.m.Y H:i', strtotime($arr_row['datum'])); ?></td>
      </tr>
      <tr valign="top">
        <td>E-Mail:</td>
        <td><a href="#" onclick="location.href='mailto:<?= $arr_row['email']; ?>&subject=AW:<?= urlencode(substr($arr_row['eintrag'], 0, 15)); ?>'"><?= hide_email($arr_row['email']); ?></a></td>
      </tr>
      <tr valign="top">
        <td>Сообщение:</td>
        <td><?= $arr_row['eintrag']; ?></td>
      </tr>
      <tr><td><br><br></td></tr>
    <?php endwhile; ?>
    </table>
    <br />
    <br />
  <?php
    echo paginator_render(ITEMS_PER_PAGE, $int_max_pages, $int_sel_page);
  ?>
    </div>
  </body>
</html>

gblib.php:

Код:
<?php
function IsNull($i) {
  return (!isset($i) || is_null($i));
}

function hide_email($str_email) {
  $str_new_email = '';
  for($i=0; $i<strlen($str_email); $i++) {
      if($str_email[$i] == '@')
        $str_new_email .= '<span>@</span>';
      else if($str_email[$i] == '.')
        $str_new_email .= '<span>.</span>';
      else
        $str_new_email .= '<span>' . $str_email[$i] . '</span>';
  }

  return $str_new_email;
}

function connection_open($str_server, $str_username, $str_password, $str_database) {
  if(IsNull($str_server)) return;
  if(IsNull($str_username)) return;
  if(IsNull($str_database)) return;

  $obj_mysql = new mysqli($str_server, $str_username, $str_password, $str_database);
  if($obj_mysql->connect_errno) {
    echo "$obj_mysql->connect_error";
    return FALSE;
  }
  return $obj_mysql;
}

function get_anz_eintaege($obj_conn){
  if(IsNull($obj_conn)) return;

  $int_max_pages = 1;
  $obj_stmt = $obj_conn->prepare('SELECT COUNT(*) AS cnt FROM eintraege');
  $obj_result = $obj_stmt->execute();
  $obj_result2 = $obj_stmt->get_result();
  if($arr_row = $obj_result2->fetch_assoc()) {
    $int_max_pages = $arr_row['cnt'];
  }

  return $int_max_pages;
}

function neu_eintrag($obj_conn, $str_name, $str_email, $str_nachricht) {
  if(IsNull($obj_conn)) 
    return;
  if(IsNull($str_name)) 
    return;
  if(IsNull($str_email)) 
    return;
  if(IsNull($str_nachricht)) 
    return;

  $str_nachricht = nl2br(strip_tags($str_nachricht));
  $str_now = date('Y-m-d H:i:s');
  $obj_stmt = $obj_conn->prepare('INSERT INTO eintraege(ip,name,email,datum,eintrag) VALUES(?,?,?,?,?)');
  $obj_stmt->bind_param('sssss', $_SERVER['REMOTE_ADDR'], strip_tags($str_name), strip_tags($str_email), strip_tags($str_now),  $str_nachricht);
  $obj_stmt->execute();
}

function loesche_eintrag($obj_conn, $int_id) {
  if(IsNull($obj_conn)) 
    return;

  $obj_stmt = $obj_conn->prepare('DELETE FROM eintraege WHERE id=?');
  $obj_stmt->bind_param('i', $_GET['delete_id']);
  $obj_stmt->execute();
}

function get_einraege($obj_conn, $int_offset, $int_limit) {
  if(IsNull($obj_conn)) return;
  $obj_stmt = $obj_conn->prepare('SELECT id,  name, email, datum, eintrag FROM eintraege ORDER BY datum DESC LIMIT ?,?');
  $obj_stmt->bind_param('ii', $int_offset, $int_limit);
  $obj_result = $obj_stmt->execute();
  $obj_arr_results = $obj_stmt->get_result();
  return $obj_arr_results;
}

function paginator_render($int_items_per_page, $int_counts, $int_sel_page) {
  $str_render = '';
  for($i=1; $i<ceil($int_counts/$int_items_per_page)+1; $i++) {
    $str_render .= "&nbsp;";
    $str_text = $i == $int_sel_page ? "[$i]" : $i;
    $str_class = $i == $int_sel_page ? 'page_selected' : 'paginator';
    $str_render .= "<a class=\"$str_class\"href=\"index.php?page=$i\">$str_text</a>";
    $str_render .= "&nbsp;";
  }
  return $str_render;
}

?>

config.php:

Код:
<?php
  define('CONNECTION', serialize(array('server' => 'localhost', 'database' => 'guesbook2', 'username' => 'root', 'password' => '')));
  define('ADMINISTRATOR', serialize(array('user' => 'Administrator', 'password' => md5('a11234'))));
  define('ITEMS_PER_PAGE', 10);
?>

SQL:

Код:
CREATE TABLE IF NOT EXISTS `guestbook`.`eintraege` ( `id` BIGINT NOT NULL AUTO_INCREMENT , `ip` VARCHAR(80) NOT NULL , `name` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL , `datum` DATETIME NOT NULL , `eintrag` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;