Загружаю на локальный сервер файл через обычную форму:
$name = $_POST['name'];
$raiting = $_POST['raiting'];
$screenshot = $_FILES['screenshot']['name'];
require_once ('imagevars.php');
if (isset($_POST['submit'])) {
if ((!empty($name)) && (empty($raiting))) {
echo 'Введите Ваш рейтинг!';
}
if ((empty($name)) && (!empty($raiting))) {
echo 'Введите Ваше имя';
}
if ((!empty($name)) && (!empty($raiting))) {
$target = IMAGEFOLDER . $screenshot;
if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target)) {
$dbc = mysqli_connect ('localhost','root','','guitarhero')
or die('<b>Подключение к базе не установлено!</b>');
$query = "INSERT INTO raiting_tab (name, raiting, screenshot) VALUES ('$name','$raiting', '$screenshot')";
$result = mysqli_query ($dbc, $query)
or die('Данные не добавлены!');
echo 'Спасибо ' . $name . '!<br>';
echo 'Ваш рейтинг: ' . $raiting . '.<br>';
echo '<img src="' . IMAGEFOLDER . $screenshot . '" alt="Подтверждение..."><br>';
$name = NULL;
$raiting = NULL;
}
}
}
?>
<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<label for="name">Ваше имя:</label>
<input class="form" type="text" id="name" name="name" size=30 value="<?php echo $name; ?>"><br>
<label for="raiting">Ваш рейтинг:</label>
<input class="form" type="text" id="raiting" name="raiting" value="<?php echo $raiting; ?>"><br>
<label for="screenshot">Загрузите скриншот для подтверждения</label>
<input class="form" type="hidden" name="MAX_FILE_SIZE" value="5242880">
<input class="form" type="file" name="screenshot" id="screenshot"><br>
<input type="submit" name="submit" value="Отправить">
</form>
После чего вывожу на экран все записи из БД:
require_once('imagevars.php');
require_once('connectvars.php');
$dbc = mysqli_connect (DB_HOST,DB_LOGIN,DB_PASSWORD,DB_NAMEDB)
or die('<b>Ошибка в подключении к базе!</b>');
$query = "SELECT * FROM raiting_tab ORDER BY raiting DESC, date ASC";
$result = mysqli_query($dbc, $query)
or die('Ошибка в выполнении запроса!');
echo '<table>';
//$i = 0;
while ($row = mysqli_fetch_array($result)) {
if ($i == 0) {
echo '<tr><td colspan="2" class="topscoreheader">Наивысший рэйтинг: ' . $row['raiting'] . '!</td></tr>';
}
echo '<tr class="scoreinfo"><td><b>Дата:</b>' . $row['date'] . '<br>';
echo '<b>Имя: </b>' . $row['name'] . '<br>';
echo '<b>Рэйтинг: </b>' . $row['raiting'] . '</td></tr>';
echo '<td><img src="' . IMAGEFOLDER . $row['screenshot'] . '" alt="Подтверждено!"></td>';
if (is_file($row['screenshot']) && filesize($row['screenshot']) > 0) {
echo '<td><img src="' . IMAGEFOLDER . $row['screenshot'] . '" alt="Подтверждено!"></td>';
}
else {
echo '<td><img src="images/unverified.gif" alt="НЕ подтверждено!"></td>';
}
$i++;
}
echo '</table>';
Суть заключается в том, что если не использовать условие проверки наличия файла:
if (is_file($row['screenshot']) && filesize($row['screenshot']) > 0) {
echo '<td><img src="' . IMAGEFOLDER . $row['screenshot'] . '" alt="Подтверждено!"></td>';
}
else {
echo '<td><img src="images/unverified.gif" alt="НЕ подтверждено!"></td>';
}
, а просто вывести картинку через:
echo '<td><img src="' . IMAGEFOLDER . $row['screenshot'] . '" alt="Подтверждено!"></td>';
, то всё в порядке. Но, почему то, в условии срабатывает постоянно else. Хотя делаю всё в точности, как в учебнике. Уже все глаза проглядел.