setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов и , а также пустые строки и пробельные символы.
Подскажите пожалуйста, как правильно проверить форму перед отправкой.
<?php
$errors = array();
if (isset($_POST['submit'])){
if (!isset($_POST['s'])){
$errors[] = 'Вы должны поставить галочку';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<? if (count($errors) > 0): ?>
<ul>
<? foreach ($errors as $error): ?>
<li><?= $error; ?></li>
<? endforeach; ?>
</ul>
<? endif; ?>
<form action="" method="post" enctype="multipart/form-data">
<p>
<input type="checkbox" name="s" value="квадрат"/>
<label for="checkbox">Квадрат</label>
</p>
<input type="file" accept="text/plain" name="files"/>
<input type="submit" name="submit" value="OK"/>
</form>
</body>
</html>
$strings = file('text.txt');
$index = rand(0, count($strings));
echo $strings[$index];
$string = file_get_contents('text.txt');
$strings = explode('=', $string);
$index = rand(0, count($strings));
echo $strings[$index];
Браузер указывает на синктасическую ошибку хотя ее нету, почему так?
Это очень важно, не хочу никакие кроны принципиально.
if (!flock($fh = fopen(__FILE__, 'r'), LOCK_EX | LOCK_NB)) die('Script is already running!');