Sitego, создать новую таблицу и циклом пройти, как обычный фетч, задача одноразовая, любой способ подойдёт
# serghei (24.08.2016 / 12:55)
что тут нетак ?
http://h2.keo.su/mgr/loadfile. ... g7uf1
вроде запрос правельный
Ты это на телефоне написал?
# serghei (24.08.2016 / 14:28)
да
Читать твой код без форматирования невозможно.
У тебя в запросе ошибка. Попробуй так
* (+/-)
<?php
define('_IN_JOHNCMS', 1);
$headmod = 'manager';
$textl = 'Игрок';
require_once '../incfiles/core.php';
require_once '../incfiles/head.php';
if ($id) {
$q = mysql_query("select * from fman_players where id=$id");
$a = mysql_fetch_array($q);
$p = 'id='. $id;
}
if (!$_POST['submit']) {
echo '<h2 align="center">Изменение Номера игрока</h2>'.
'<form action="poz.php?'. $p .'" method="post">'.
'<div class="menu">Номер:<br/>'.
'<input type="text" nom="nom" value="'. $a['nom'] .'"/><br/>'.
'<input type="submit" name="submit" value="Сохранить"/></div></form>';
} else {
// В строке ниже я удалил where id=$id
mysql_query("insert into fman_players set nom='". $_POST['nom'] ."'");
echo '<div class="menu">Действие успешно выполнено!<br/><a href="poz.php?time='.
time().'&'.$p.'">Назад</a></div>';
}
echo '<div class"phdr"><a href="index.php">Фут.менеджер</a></div>';
require_once '../incfiles/end.php';
Всем
Вопрос такой: как достичь разделения в записи в
разные файлы одной и той же пользовательской функцией? Иначе говоря, есть одно описание функции, и три её вызова с разными параметрами. При этом, по какой бы из трёх ссылок не кликнуть, запишется только файл из первого вызова.
Сначала я думал, что проблема в использовании сессий, и заменил их на текстовые файлы. Не получив нужного результата, я решил, что может быть проблема в области видимости, и перепилил функцию на класс --- результат всё равно не изменный. Как добиться раздельной записи в файлы?
Функция (+/-)
function showLink($url, $link, $days, $clicks, $dir, $fn) {
is_dir($dir) ?: mkdir($dir);
$fname = $dir .'/'. $fn .'.txt';
$time = time();
//$mTime = $time + 3600 * 24 * $days;
$mTime = $time + 15; # <---15 сек. для теста
file_exists($fname) ?: file_put_contents($fname, serialize(['tm'=>$mTime, 'cnt'=>0]));
$data = unserialize(file_get_contents($fname));
if (isset($_GET['cnt'])) {
$data['cnt']++;
file_put_contents($fname, serialize($data));
header('Location: '. $url);
exit;
}
if ($data['tm'] < $time) { // Перезапись
file_put_contents($fname, serialize(['tm'=>$mTime, 'cnt'=>0]));
$data = unserialize(file_get_contents($fname));
}
return ($data['tm'] >= $time && $data['cnt'] < $clicks ? '<a href="?cnt">'.
$link .'</a> ('. ($clicks - $data['cnt']) .')' : '');
}
echo showLink(basename(__FILE__), 'Ссылка 1', 1, 10, 'DIR', '_1') .'<br/>';
Класс (+/-)
class ShowLink
{
private $url;
private $link;
private $days;
private $clicks;
private $dir;
private $fn;
public function __construct($url, $link, $days, $clicks, $dir, $fn) {
$this->url = $url;
$this->link = $link;
$this->days = $days;
$this->clicks = $clicks;
$this->dir = $dir;
$this->fn = $fn;
}
public function getLink() {
is_dir($this->dir) ?: mkdir($this->dir);
$fname = $this->dir .'/'. $this->fn .'.txt';
$time = time();
//$mTime = $time + 3600 * 24 * $this->days;
$mTime = $time + 15; # <---15 сек. для теста
file_exists($fname) ?: file_put_contents($fname, serialize(['tm'=>$mTime, 'cnt'=>0]));
$data = unserialize(file_get_contents($fname));
if (isset($_GET['cnt'])) {
$data['cnt']++;
file_put_contents($fname, serialize($data));
header('Location: '. $this->url);
//exit;
}
if ($data['tm'] < $time) { // Перезапись
file_put_contents($fname, serialize(['tm'=>$mTime, 'cnt'=>0]));
$data = unserialize(file_get_contents($fname));
}
return ($data['tm'] >= $time && $data['cnt'] < $this->clicks ? '<a href="?cnt">'.
$this->link .'</a> ('. ($this->clicks - $data['cnt']) .')' : '');
}
}
$show2Link = new ShowLink(basename(__FILE__), 'Ссылка 2', 1, 10, 'DIR', '_2');
echo $show2Link->getLink() .'<br/>';
$show3Link = new ShowLink(basename(__FILE__), 'Ссылка 3', 1, 10, 'DIR', '_3');
echo $show3Link->getLink() .'<br/>';
Результат (+/-)
/*
Ссылка 1 (7)
Ссылка 2 (10)
Ссылка 2 (10)
Т.е., записывается только один файл.
*/
ДоХтор, у тебя одинаковый get параметр, первая функция отрабатывает и редиректит, если убрать редирект и эксит, будет сразу со всех файлов выпиливать, надо что то типа ?cnt&f=1, тогда заработает верно
это форма не отправляет сообщению где ошибка сделал
форма (+/-)
<?php
/* =====================================================
* change this to the email you want the form to send to
* ===================================================== */
$email_to = "udesign.uzb@gmail.com";
$email_from = "udesign.uzb@gmail.com"; // must be different than $email_from
$email_subject = "Контактный формуляр представленный";
if(isset($_POST['email']))
{
function return_error($error)
{
echo json_encode(array('success'=>0, 'message'=>$error));
die();
}
// check for empty required fields
if (!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['message']))
{
return_error('Пожалуйста, заполните все обязательные поля.');
}
// form field values
$name = $_POST['name']; // required
$email = $_POST['email']; // required
$message = $_POST['message']; // required
// form validation
$error_message = "";
// name
$name_exp = "/^[a-z0-9 .\-]+$/i";
if (!preg_match($name_exp,$name))
{
$this_error = 'Пожалуйста, введите верное имя.';
$error_message .= ($error_message == "") ? $this_error : "<br/>".$this_error;
}
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if (!preg_match($email_exp,$email))
{
$this_error = 'Пожалуйста, введите действительный адрес электронной почты.';
$error_message .= ($error_message == "") ? $this_error : "<br/>".$this_error;
}
// if there are validation errors
if(strlen($error_message) > 0)
{
return_error($error_message);
}
// prepare email message
$email_message = "Форма подробности ниже .\n\n";
function clean_string($string)
{
$bad = array("content-type", "bcc:", "to:", "cc:", "href");
return str_replace($bad, "", $string);
}
$email_message .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Message: ".clean_string($message)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
if (@mail($email_to, $email_subject, $email_message, $headers))
{
echo json_encode(array('success'=>1, 'message'=>'Форма успешно отправлен .'));
}
else
{
echo json_encode(array('success'=>0, 'message'=>'
Произошла ошибка. Пожалуйста, повторите попытку позже.'));
die();
}
}
else
{
echo 'Пожалуйста, заполните все обязательные поля.';
die();
}
?>