if($_POST['submit']=='Enter') {
$err = array();
if (isset($_POST['login'])) { $login = $_POST['login'];
if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password'];
if ($password =='') { unset($password);} }
if (empty($login) or empty($password)) {
$err[]='You did not enter all the information you fill in all fields';
}
if (empty($err))
{
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
$password = md5($password);
// $password = strrev($password);
// $password = $password."b3p6f";
$result1 = mysql_query("SELECT * FROM users WHERE login='".$login."' AND password='".$password."'"); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result1);
if (empty($myrow['id'])) {
$err[]='Sorry, you entered your username or password is incorrect.';
} else {
$_SESSION['login']=$myrow['login'];
$_SESSION['password']=$myrow['password'];
$_SESSION['id']=$myrow['id'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
$_SESSION['dostup'] = $myrow['dostup'];
$_SESSION['business_unit'] = $myrow['business_unit'];
$_SESSION['linemanager'] = $myrow['linemanager'];
$_SESSION['phone_number'] = $myrow['phone_number'];
$_SESSION['lastname'] = $myrow['lastname'];
$_SESSION['firstname'] = $myrow['firstname'];
$_SESSION['post_id'] = $myrow['post_id'];
}
}
Это авторизация пользователя. Как переделать запрос таким образом, чтобы дополнительно проверялась таблица Stats, и если пользователь в этом месяце уже авторизовывался тогда запретить вход.
Таблица Stats
Ну просто 2 разных режима просмотра, не совсем одно и то же. 1 вариант я не захожу на страницу пользователя, а просто смотрю все его данные с обеих таблиц в виде списка данных. А во втором варианте, я вхожу на страницу пользователя и делаю запрос на вывод всей имеющейся у пользователя информации, а выводится только его имя и фамилия, а все остальные данные мои.
Т.е. Все данные, которые относятся к пользователю и находятся в таблице users показываются нормально, а всё что касается этого же пользователя, но из таблицы stats не отображается, а заменяется моими данными из таблицы stats
Ты хочешь чтобы по id_сессии идентифицировался юзер?
включаем логику и думаем
С этого места по подробнее... =)
Хотя не совсем так. Понимаешь, у меня 2 режима просмотра страницы пользователя, в первом варианте всё работает нормально, а вот во втором варианте, который основной, не работает ничего. Т.е. когда я захожу на страницу пользователя, мне показывается только его имя и фамилия, а все остальные данные заменены моими, которые висят в моей сессии. В результате на какую бы страницу я не зашёл, меняются только имя и фамилия, а всё остальное абсолютно одинаковое
id сессии не передаётся через get, в get указывается id юзера, на чью страницу я зашёл
В результате из таблицы Users вфтягиваются Имя и Фамилия пользователя, а вот таблица Stats выдаёт мне данные, которые относятся к моему аккаунту, а нужно чтобы показывалась информация о пользователе.
А расположение букв играет роль?
Ну к примеру фамилия Zhilenko. Логически человек понимает что это Жиленко, а не Зхиленко.
Переведётся ли это корректно, если в списке
Блин. Огромное человеческое! А то я никак не мог сообразить как это реализовывается, раньше использовал готовые lang файлы, теперь хоть буду знать как это пишется.
Подскажите как сделать чтобы имя и фамилия пользователя выводились на русском и на английском, в БД эти данные только на английском.
И как сделать чтобы выводилось не полное имя, а только первая буква
Ну допустим пользователь в БД записан как Petr Ivanov
А в приветствии выводится только Ivanov P
Имя и фамилия в БД хранятся в разных полях таблицы
$result = mysql_query("SELECT `id` FROM `users` WHERE login='$login'");
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
$page.='Sorry, you entered username is already registered. Please enter a different username.<br>';
} else {
// если такого нет, то сохраняем данные
$query = "INSERT INTO `users` (lastname,firstname,email,login,password,business_unit,phone_number,post_id,dostup,reminder,doa,dod)
VALUES ('$lastname','$firstname','$email','$login','$password','$business_unit','$phone_number','$post_id','$dostup','$reminder','$doa','$dod')";
if(mysql_query($query))
{ $page.="<p class='soob' style='color:green'>Thanks. Registration is complete.</p>";}
else { $page.='Error! You are not registered.<br>';}
}
А вот так я определяю текущую дату, вывожу её пользователю и ставлю её в поле Дата регистрации
<?php
$d=date('Y-m-d [h:i]');
echo "Текущая дата и время на сервере: $d";
?><p>
<label for="doa">Date</label>
<input type="text" name="doa" value="<?=date('y-m-d');?>" id="doa" AUTOCOMPLETE=ON />
<br><sup>The date of receipt numbers</sup>
</p>
Не совсем понял. Т.е. логически я понимаю что вы имеете ввиду, но я думал должно быть что-то типа
1.UPDATE `Users` SET `dod` = ( REPLACE ( dod, '0000-00-00', 'сегодняшнее число' ) ) WHERE phone_number=$_SESSION[phone_number]
Т.е. в процессе регистрации нового пользователя, dod старого пользователя заменяется с 0000-00-00 на сегодняшнее число.
Viper пишет:
логично что если юзер зарегался в апреле, то звонков за март у него в теории не должно быть
Не совсем так. Наличие звонков сканируется запросом Select * from Calls Where phone_number=$_SESSION[phone_number], здесь не учитывается дата регистрации, а просто отбираются все звонки с этого номера, а звонки могут быть ещё до появления пользователя в базе. Собственного говоря поэтому и нужен запрос заменяющий dod при регистрации нового пользователя с тем же номером. Можно было бы конечно просто удалять старого пользователя, но проблема в том что статистика всех номеров должна храниться минимум год. Следовательно, если новый пользователь заходит на страницу звонков, то он видит абсолютно все звонки, даже до дня собственной регистрации, хотя...
Select * from Calls where phone_number=$_SESSION[phone_number] and date_of_call>=$_SESSION[doa], наверное как-то так.
EuGen
или я не прав? Подскажи, плиз
1.Логически должно быть так, при регистрации юзер2, проверяется его номер телефона, если этот номер уже имеется то у юзер1(текущего пользователя номера) сегодняшняя дата ставится как dod. Т.е. doa юзера2 = dod юзера1
2. Теперь зачем нужна функция getdate. При помощи неё планируется сделать следующее: Когда заходит пользователь ему выводится вся информация по звонкам с его номера
SELECT*FROM Calls WHERE phone_number=$_SESSION[phone_number]
Но как сделать так, чтобы выводился не весь список звонков, а только за прошлый месяц и с учётом даты регистрации этого пользователя. Допустим я зашёл в апреле, так как апрель ещё не закончился, то звонки есть только за март. Значит мне должны отобразиться только звонки за весь март, но не раньше моей даты регистрации.
Извиняюсь если непонятно, просто голова кипит, уже даже собственные мысли понять сложно.