Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
MySQL

Проверка на повторный IP адрес

03.03.2015, 22:06. Показов 1234. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Решил сделать в коде проверку на IP адрес, смысл такой, если сегодня пользователь заполнил форму у него записался IP адрес, то он не сможет заполнить форму до завтрашнего дня.
Но выдает ошибку
Parse error: syntax error, unexpected '{' in /home/users1/s/severgaz/domains/cs-karelia.ru/core/cache/includes/elements/modsnippet/27.include.cache.php on line 65

что не так подскажите
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
//Проверяем пришли ли данные
if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
{
    //Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    $num = time();
    $time = $num;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysql_connect($host,$login,$password);
    mysql_select_db($db,$link);
 
//Достаем из БД информацию о введенном ник
    $res=mysql_query("SELECT `user_name` FROM `action_user` WHERE `user_name`='$user_name' ");
    $data=mysql_fetch_array($res);    
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['user_name']))
    {
        die("Такой ник уже существует!");
    } 
 
//Достаем из БД информацию о введенном ник друга
//    $res=mysql_query("SELECT `friend_name` FROM `action_user` WHERE `friend_name`='$friend_name' ");
//    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
//    if(!empty($data['friend_name']))
//    {
//        die("Такой ник уже существует!");
//    } 
    
//Достаем из БД информацию о введенном Steam_id
    $res=mysql_query("SELECT `steam_id` FROM `action_user` WHERE `steam_id`='$steam_id' ");
    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['steam_id']))
    {
        die("Такой Steam_id уже существует!");
    }
 
//Достаем из БД информацию о введенном www.vk.com/ID
    $res=mysql_query("SELECT `vk` FROM `action_user` WHERE `vk`='$vk' ");
    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['vk']))
    {
        die("Такой www.vk.com/ID уже существует!");
    } 
    
    if(intval(date("H",$time) == 0 ) 
    {
//Вставляем данные в БД 
    $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`, `time`) VALUES('$user_name','$friend_name','$steam_id','$vk','".date("Y-m-d")."','".$_SERVER['REMOTE_ADDR']."','$num') ";
    $result=mysql_query($query);
    } 
    else
    {
    for($i = 1; $i <24;$i++)
    {
    $time += 60*60 // это 1 час вроде
    if( intval(date("H",$time) == 0 ) 
    {
     $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`, `time`) VALUES('$user_name','$friend_name','$steam_id','$vk','".date("Y-m-d")."','".$_SERVER['REMOTE_ADDR']."','$num') ";
     $result=mysql_query($query);
    break
    } 
    }
   
//Если данные успешно занесены в таблицу
    if($result==true)
    {
         echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
    }
//Если не так, то выводим ошибку
    else
    {
        echo "Error! ----> ". mysql_error();
    }
}
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2015, 22:06
Ответы с готовыми решениями:

Повторный запуск Task, проверка условия
Есть код private async Task WatchTaskAsync(Task task) { try { ...

Проверка на повторный ввод элемента массива
Вот код во время проверки на повторный ввод элемента массива получается бессконечный цыкл и еще одна проблема при проверке на ввод чисел...

Вычислить адрес верхушки стека, адрес следующей команды, адрес переменной, адрес которой содержится в BX
Помогите решить следующие задачи: 1.Вычислить адрес верхушки стэка. 2.Вычислить адрес следующей выполняемой программы. 3. Вычислить...

16
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
03.03.2015, 22:45
Цитата Сообщение от Ermak27 Посмотреть сообщение
if(intval(date("H",$time) == 0 )
Открывающих скобок 3, закрывающих 2.
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
03.03.2015, 22:52  [ТС]
Не понимаю почему не работает, я сделал так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
    
    $num = time();
    $time = $num;
    for($i = 1; $i <24;$i++)
    {
    $time += 3600; // это 1 час вроде
    if( intval(date("H",$time)) == 0 ) 
    {
     $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`, `time`) VALUES('$user_name','$friend_name','$steam_id','$vk','".date("Y-m-d")."','".$_SERVER['REMOTE_ADDR']."','$num') ";
     $result=mysql_query($query);
    break;
    } 
    }
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
03.03.2015, 23:06
Ermak27, ошибки показывает?
Цитата Сообщение от Ermak27 Посмотреть сообщение
$result=mysql_query($query);
Замените на:
PHP
1
$result=mysql_query($query) or die(mysql_error());
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
04.03.2015, 10:57  [ТС]
Jodah, нет ошибок нет

Добавлено через 1 минуту
Jodah, не работает ограничение

Добавлено через 30 секунд
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    
    $num = time();
    $time = $num;
    for($i = 1; $i <24;$i++)
    {
    $time += 3600; // это 1 час вроде
    if( intval(date("H",$time)) == 0 ) 
    {
     $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`, `time`) VALUES('$user_name','$friend_name','$steam_id','$vk','".date("Y-m-d")."','".$_SERVER['REMOTE_ADDR']."','$num') ";
     
$result=mysql_query($query) or die(mysql_error());
    break;    
    }
    }
Добавлено через 11 часов 44 минуты
Вот как я сделал, но все равно выдает ошибку

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $tek_data = date("Y-m-d");
// Узнаем, были ли посетитель за сегодня
    $res=mysql_query("SELECT `id` FROM `action_user` WHERE `tek_data`='$tek_data'") or die ("Проблема при подключении к БД");
    $data=mysql_fetch_array($res); 
 
    
// Если сегодня еще не было посетителя
    if (mysqli_num_rows($data) == 0)
    {    
    
        $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user') ";
        
    } 
 
    else
    {
    // Узнаем, были ли ip за сегодня    
    $res=mysql_query("SELECT `id` FROM `action_user` WHERE `ip_user`='$ip_user'");
        $data=mysql_fetch_array($res);
// Если сегодня еще был ip    
    if (mysqli_num_rows($data) == 1)    
    {    
    die("Сегодня вы уже посещали!<a href='index.php'>На главную</a>");    
    }
    else
    {
         $query="INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`, `ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user') ";
    }
}
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
04.03.2015, 12:18
У вас ошибка при использовании mysqli_num_rows.
Добавлено через 6 минут
PHP
1
2
3
4
5
6
7
8
9
$ip_user=$_SERVER['REMOTE_ADDR'];
$time=time()-60*60*24;
$link=mysqli_connect('localhost','my_user','my_password','my_db');
$result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `ip_user`="'.$ip_user.'" AND `tek_data`>'.$time);
if(!mysqli_num_rows($result)){
    mysqli_query($link,'INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES("'.$user_name.'","'.$friend_name.'","'.$steam_id.'","'.$vk.'","'.$time.'","'.$ip_user.'"'));
}else{
    echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
}
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
04.03.2015, 13:57  [ТС]
nrobert, Выдает ошибку
Проблема при подключении к БД

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
//Подключаем базу данных
    include("configs.php");
    $link=mysql_connect($host,$login,$password) or die ("Невозможно подключиться к БД");
    mysql_select_db($db,$link);
// Узнаем, были ли посетитель за сегодня
    $res=mysql_query($link,"SELECT `id` FROM `action_user` WHERE `ip_user`= '$ip_user' AND `tek_data`>'$time'") or die ("Проблема при подключении к БД");
 
    if(!mysqli_num_rows($result))
    {
    $result=mysqli_query($link,"INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user')");
    
        
    }else{
        
   echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
 
}
   
//Если данные успешно занесены в таблицу
    if($result==true)
    {
         echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
    }
//Если не так, то выводим ошибку
    else
    {
        echo "Error! ----> ". mysql_error();
    }
}
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
04.03.2015, 17:52
Ermak27, моего кода достаточно. Зачем вы скрестили его со своим, да так безграмотно.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
04.03.2015, 18:47  [ТС]
nrobert, я сделал все как у вас, что не так?

Добавлено через 3 минуты
nrobert, Подскажите пожалуйста что не так, вот весь код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
//Проверяем пришли ли данные
    if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
    {
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysqli_connect($host,$login,$password) or die ("Невозможно подключиться к БД");
    mysql_select_db($db,$link);
 
//Достаем из БД информацию о введенном ник
    $res=mysql_query("SELECT `user_name` FROM `action_user` WHERE `user_name`='$user_name' ");
    $data=mysql_fetch_array($res);    
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['user_name']))
    {
        die("Такой ник уже существует!");
    } 
 
//Достаем из БД информацию о введенном ник друга
//    $res=mysql_query("SELECT `friend_name` FROM `action_user` WHERE `friend_name`='$friend_name' ");
//    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
//    if(!empty($data['friend_name']))
//    {
//        die("Такой ник уже существует!");
//    } 
    
//Достаем из БД информацию о введенном Steam_id
    $res=mysql_query("SELECT `steam_id` FROM `action_user` WHERE `steam_id`='$steam_id' ");
    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['steam_id']))
    {
        die("Такой Steam_id уже существует!");
    }
 
//Достаем из БД информацию о введенном www.vk.com/ID
    $res=mysql_query("SELECT `vk` FROM `action_user` WHERE `vk`='$vk' ");
    $data=mysql_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['vk']))
    {
        die("Такой www.vk.com/ID уже существует!");
    }
    
// Узнаем, были ли посетитель за сегодня
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `ip_user`="'.$ip_user.'" AND `tek_data`>'.$time) or die ("Проблема при подключении к БД" );
    $data=mysql_fetch_array($res);
 
   if(!mysqli_num_rows($result)){
    $result=mysqli_query($link,"INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user')");
    }else{
    echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
 
}
   
//Если данные успешно занесены в таблицу
    if($result==true)
    {
         echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
    }
//Если не так, то выводим ошибку
    else
    {
        echo "Error! ----> ". mysql_error();
    }
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>
Выдает опять ошибку Проблема при подключении к БД
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
04.03.2015, 19:18
Цитата Сообщение от Ermak27 Посмотреть сообщение
$result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `ip_user`="'.$ip_user.'" AND `tek_data`>'.$time) or die ("Проблема при подключении к БД" )
Не при подключении, а при выполнении запроса. И замените or die на тот же вариант, который я рекомендовал ранее: die(mysqli_error()). Сделайте это во всех запросах mysqli_query.

Цитата Сообщение от Ermak27 Посмотреть сообщение
$data=mysql_fetch_array($res);
Почему вы используете то mysqli, то mysql? Приведите всё к общему виду.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
04.03.2015, 19:22
Где вы сделали, как у меня? To mysqli, то mysql, то $result, то $res. Выкиньте весь ваш безполезный код, касающийся mysql. Я же вам писал, что моего кода достаточно.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
04.03.2015, 23:22  [ТС]
nrobert, Jodah, Все поправил, все равно ошибку выдает, уже запутался

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
//Проверяем пришли ли данные
    if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
    {
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysqli_connect($host,$login,$password) or die ("Невозможно подключиться к БД:" . mysqli_error());
    mysqli_select_db($db,$link);
 
//Достаем из БД информацию о введенном ник
    $res=mysqli_query("SELECT `user_name` FROM `action_user` WHERE `user_name`='$user_name' ");
    $data=mysqli_fetch_array($res);    
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['user_name']))
    {
        die("Такой ник уже существует!");
    } 
 
//Достаем из БД информацию о введенном ник друга
//    $res=mysqli_query("SELECT `friend_name` FROM `action_user` WHERE `friend_name`='$friend_name' ");
//    $data=mysqli_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
//    if(!empty($data['friend_name']))
//    {
//        die("Такой ник уже существует!");
//    } 
    
//Достаем из БД информацию о введенном Steam_id
    $res=mysqli_query("SELECT `steam_id` FROM `action_user` WHERE `steam_id`='$steam_id' ");
    $data=mysqli_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['steam_id']))
    {
        die("Такой Steam_id уже существует!");
    }
 
//Достаем из БД информацию о введенном www.vk.com/ID
    $res=mysqli_query("SELECT `vk` FROM `action_user` WHERE `vk`='$vk' ");
    $data=mysqli_fetch_array($res); 
    
//Если он не пуст, то значит такой уже есть
    if(!empty($data['vk']))
    {
        die("Такой www.vk.com/ID уже существует!");
    }
    
// Узнаем, были ли посетитель за сегодня
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `ip_user`="'.$ip_user.'" AND `tek_data`>'.$time) or die ("Проблема при подключении к БД:". mysqli_error());
    $data=mysqli_fetch_array($res);
 
   if(!mysqli_num_rows($result)){
    $result=mysqli_query($link,"INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES('$user_name','$friend_name','$steam_id','$vk','$tek_data','$ip_user')");
    }else{
    echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
 
}
   
//Если данные успешно занесены в таблицу
    if($result==true)
    {
         echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
    }
//Если не так, то выводим ошибку
    else
    {
        echo "Error! ----> ". mysqli_error();
    }
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
04.03.2015, 23:57
Почему вы не хотели использовать мой код?
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk'])){
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk==""){
        die("Заполните обязательные поля!");
    }
    
 
    include("configs.php");
    $link=mysqli_connect($host,$login,$password,$db) or die ("Невозможно подключиться к БД:" . mysqli_error());
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" AND `ip_user`="'.$ip_user.'" AND `tek_data`>'.$time);
    if(!mysqli_num_rows($result)){
        $query='INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES("'.$user_name.'","'.$friend_name.'","'.$steam_id.'","'.$vk.'","'.$time.'","'.$ip_user.'")';
        if(mysqli_query($link,$query)){
            echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
        }else{
            echo "Error! ----> ". mysqli_error();
        }
    }else{
        echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
}
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>

Потом, зачем делать запрос для каждой переменной: можно ведь одним запросом все получить.
Но и это не нужно: достаточно проверить 1 параметр, все равно дубля не будет.
Последнее: если бы даже не было ошибки, все равно запись бы не обновлялась, потому что проверяемые раньше параметры уже существуют и скрипт бы уже благополучно die() до этого.
1
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
04.03.2015, 23:58
Цитата Сообщение от Ermak27 Посмотреть сообщение
все равно ошибку выдает
Какую именно? Сложно диагностировать без текста ошибки.
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
05.03.2015, 00:24
Исправлено:
PHP
1
$result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`>'.$time.')');
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
05.03.2015, 22:54  [ТС]
nrobert, Спасибо большое за помощь, я сделал как вы сказали но почему все равно не делает проверку, я посмотрел в базе tek_data принимает значение 0000-00-00, я думаю из за этого.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
//Проверяем пришли ли данные
    if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
    {
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysqli_connect($host,$login,$password,$db) or die ("Невозможно подключиться к БД:" . mysqli_error());
 
 
// Узнаем, были ли посетитель за сегодня
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`>'.$time.')');
    
    if(!mysqli_num_rows($result)){
        $query='INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES("'.$user_name.'","'.$friend_name.'","'.$steam_id.'","'.$vk.'","'.$time.'","'.$ip_user.'")';
        
        if(mysqli_query($link,$query)){
            echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
        }else{
            echo "Error! ----> ". mysqli_error();
        }
    }else{
        echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
}
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>

Добавлено через 15 секунд
Я изменил поле tek_data на тип TIME , теперь время записывает, но не работает условие на повторение ip адреса, что то не так

Добавлено через 4 часа 24 минуты
Все заработала, всем спасибо кто помогал

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
//Проверяем пришли ли данные
    if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
    {
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysqli_connect($host,$login,$password,$db) or die ("Невозможно подключиться к БД:" . mysqli_error());
 
 
// Узнаем, были ли посетитель за сегодня
 
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`>'.$time.')');
    
    if(!mysqli_num_rows($result)){
        $query='INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES("'.$user_name.'","'.$friend_name.'","'.$steam_id.'","'.$vk.'","'.$time.'","'.$ip_user.'")';
        
        if(mysqli_query($link,$query)){
            echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
        }else{
            echo "Error! ----> ". mysqli_error();
        }
    }else{
        echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
}
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>
Добавлено через 21 секунду
Все заработала, всем спасибо кто помогал

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
//Проверяем пришли ли данные
    if(isset($_POST['user_name']) && isset($_POST['friend_name']) && isset($_POST['steam_id']) && isset($_POST['vk']))
    {
//Записываем все в переменные
    $user_name=htmlspecialchars(trim($_POST['user_name']));
    $friend_name=htmlspecialchars(trim($_POST['friend_name']));
    $steam_id=htmlspecialchars(trim($_POST['steam_id']));
    $vk=htmlspecialchars(trim($_POST['vk']));
    
// Получаем IP-адрес посетителя и сохраняем текущую дату
    $ip_user = $_SERVER['REMOTE_ADDR'];
    $time=time()-60*60*24;
    
//Проверяем на пустоту
    if($user_name=="" || $friend_name=="" || $steam_id=="" || $vk=="")
    {
        die("Заполните обязательные поля!");
    }
    
//Подключаем базу данных
    include("configs.php");
    $link=mysqli_connect($host,$login,$password,$db) or die ("Невозможно подключиться к БД:" . mysqli_error());
 
 
// Узнаем, были ли посетитель за сегодня
 
    $result=mysqli_query($link,'SELECT `id` FROM `action_user` WHERE `user_name`="'.$user_name.'" OR (`ip_user`="'.$ip_user.'" AND `tek_data`>'.$time.')');
    
    if(!mysqli_num_rows($result)){
        $query='INSERT INTO `action_user` (`user_name`,`friend_name`,`steam_id`,`vk`,`tek_data`,`ip_user`) VALUES("'.$user_name.'","'.$friend_name.'","'.$steam_id.'","'.$vk.'","'.$time.'","'.$ip_user.'")';
        
        if(mysqli_query($link,$query)){
            echo "Вы успешно добавили! <br><a href='index.php'>На главную</a>";
        }else{
            echo "Error! ----> ". mysqli_error();
        }
    }else{
        echo 'Сегодня вы уже посещали!<a href="index.php">На главную</a>';
    }
 
}
 
?>
 
<form action="" method="post">
<div>
<label>Ваше ник в игре </label><br />
<input type="text" placeholder="Ваше ник"  name="user_name" size="10" minlength="4">
</div>
<div>
<label>Ник друга в игре </label><br />
<input type="text" placeholder="Ник друга"  name="friend_name" size="10" minlength="4">
</div>
<div>
<label>Steam_id друга </label><br />
<input type="text" placeholder="Steam_id друга"  name="steam_id" size="10" minlength="4">
</div>
<div>
<label>www.vk.com/ID друга </label><br />
<input type="text" placeholder="www.vk.com/ID друга"  name="vk" size="10" minlength="4">
</div>
<br/>
<div>
<input name="submit" type="submit" value="Отправить заявку"/>
</div>
</form>
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
07.03.2015, 17:45  [ТС]
После тестирования оказалось что не работает, постоянно выводит что вы уже добавили
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2015, 17:45
Помогаю со студенческими работами здесь

Проверка на IP-адрес
Написать программу - Проверить является ли введенная строка IP адресом Фишка в том, что нужно пускать на проверку с использованием ...

Проверка строки на IP адрес
Пишу клиент-серверную программу, получилось таким образом, что IP сервера на клиентской стороне имеется в строковом типе. Присваиваю его в...

Регулярные выражения: проверка на MAC-адрес
Привет всем! Изучаю с++, начал тему регулярные выражения, и немного не понятна эта тема, решил для себя реализовать пару задач, одна из...

Частный адрес, динамический адрес, статический адрес - какой у меня?
Привет. Открываем рубрику глупых вопросов. Я сижу с компьютера который подключен к интернету по кабелю, кабель от компьютера идёт к...

Функция возвращает адрес , как передать этот адрес другой функции ?
const int max = 5; double * fill_array(double, int); void show_array(const double, double *); // как передать этой функции в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru