X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Где ошибки в скрипте?
alex159
alex159
Topic Starter сообщение 30.10.2013, 14:20; Ответить: alex159
Сообщение #1


Всем привет!
Пишу скрипт с панелью для пользователя.

Человек регистрируется и добавляет свои аккаунты.
Они все выводятся в панели. Я хочу что бы 1 аккаунт можно было редактировать 1 раз в 5 минут.

Вот код

index.php
..........

<h4>
<table width="100%" border="2" cellspacing="0" cellpadding="0" align="">
<tbody>
<tr>
<td><center>Аккаунт</center></td>
<td><center>Статус</center></td>
<td><center>Редактирование</center></td></tr>
<?php
$result_s = mysql_query("SELECT `id`,`act`,`login_t` FROM `base` WHERE id_user='$user_id'");
$myrow_s = mysql_fetch_array($result_s);
$act_t = $myrow_s['act'];
$id_t = $myrow_s['id'];
$login_t = $myrow_s['login_t'];
do {
?>
<center>
<tr>
<td><center><?php echo $login_t; ?></center></td>
<td><center><?php echo status_t($act_t); ?></center></td>
<td><center><?php echo red($act_t,$id_t);  ?></center></td>
</tr>
</center>
<?php
}
while ($myrow_s = mysql_fetch_array($result_s));
?>
</tbody></table></h4>

.........................


functions.php
.....................
function red($act_t,$id_t) {
$id = $id_t;
$act = $act_t;
if($act == 0 and !isset($_COOKIE['time'])) {
echo "<a href='red_t.php?red&id=$id'>Редактировать</a><br>";
echo "<a href='red_t.php?del&id=$id'>Удалить</a>";
}
if($act == 0 and  $_COOKIE['time'] == $id) {
echo "Редактировать можно только 1 раз в 5 минут<br>";
echo "<a href='red_t.php?del&id=$id'>Удалить</a>";
}
if($act == 2) { echo "<a href='red_t.php?s=del&id=$id'>Удалить</a>";}
}


red_t.php
..........................
<?php
if(isset($_GET['red'])) {
?>
<form action="red_t.php" method="post">
Логин : <input name="login_t" type="text"  /><br />
Пароль  <input name="password_t" type="password" /><Br />
<input type="hidden" name="id" value="<?php echo $_GET['id'];?>"></p>
<input name="qwer" type="submit" value="send" />
</form>
<?php
}
if(isset($_POST['login_t']) and isset($_POST['password_t'])) {
$login_t = $_POST['login_t'];
$password_t = $_POST['password_t'];
$id = $_POST['id'];
$a = mysql_query("UPDATE `base` SET login_t='$login_t' AND password_t='$password_t' WHERE id='$id'");
if($a) { SetCookie("time",$id,time()+300);  echo "<script>document.location.href = 'index.php?yes';</script>";   }
else { echo "<script>document.location.href = 'index.php?no';</script>";}
}
?>


1.Ошибка
В базу данных попадает не login с формы редактирования, а цифра "0"

2. Ошибка
Запрет на редактирования раз в пять минут работает. Только он отображается для всех записей. Хотя я в функции указал только для той записи в которой: кук совпадает с id поста

Прошу подсказать где косяк.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
сообщение 30.10.2013, 15:23; Ответить: 1putnik
Сообщение #2


2. Ошибка
Запрет на редактирования раз в пять минут работает. Только он отображается для всех записей. Хотя я в функции указал только для той записи в которой: кук совпадает с id поста

По-моему это нужно удалить

AND password_t='$password_t'
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex159
alex159
Topic Starter сообщение 30.10.2013, 15:26; Ответить: alex159
Сообщение #3


Нет, это нужно. Этим запросом я обновляю запись в таблице и устанавливают ячейки login_t значение переменной $login_t и ячейки password_t значение переменной $password_t
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex159
alex159
Topic Starter сообщение 31.10.2013, 19:46; Ответить: alex159
Сообщение #4


Не кто не знает ?
Интересно почему появляется первая ошибка
1.Ошибка
В базу данных попадает не login с формы редактирования, а цифра "0"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 31.10.2013, 19:53; Ответить: matroskin8
Сообщение #5


Приветствую.
Насколько я понимаю, в БД этот логин заносится здесь:
$login_t = $_POST['login_t'];
...
$a = mysql_query("UPDATE `base` SET login_t='$login_t' AND password_t='$password_t' WHERE id='$id'");

Соответственно, для понимания что и откуда берется нужен только дебаг... распечатайте запрос на экран и увидите, что на самом деле летит в БД:
$login_t = $_POST['login_t'];
...
$query = "UPDATE `base` SET login_t='$login_t' AND password_t='$password_t' WHERE id='$id'";
exit($query); // распечатываем запрос на экран, прерывая дальнейшее выполнение скрипта
$a = mysql_query($query);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex159
alex159
Topic Starter сообщение 31.10.2013, 20:22; Ответить: alex159
Сообщение #6


Приветствую.

Здравствуйте!
Спасибо, опять забыл про распечатку запроса.
Сделал распечатку, а мне он отдает результат запроса. То есть цифру 1. .

Может что то в конфигурации локалхоста?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 31.10.2013, 21:39; Ответить: matroskin8
Сообщение #7


Сделал распечатку, а мне он отдает результат запроса. То есть цифру 1

Такого быть не может. Скорее всего, вы пытаетесь распечатать уже результат выполнения запроса... я же говорил именно о распечатке текста запроса... посмотрите разницу:
$a = mysql_query("UPDATE `base` SET login_t='$login_t' AND password_t='$password_t' WHERE id='$id'");
exit($a);
// или
$query = "UPDATE `base` SET login_t='$login_t' AND password_t='$password_t' WHERE id='$id'"; // здесь мы не выполняем запрос, нет вызова функции mysql_query()... это просто строка с текстом запроса
exit($query); // распечатываем запрос на экран, прерывая дальнейшее выполнение скрипта
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex159
alex159
Topic Starter сообщение 31.10.2013, 21:55; Ответить: alex159
Сообщение #8


Действительно, спасибо.
Запрос выходит правильный, но в бд он отображается как 0.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 31.10.2013, 23:49; Ответить: matroskin8
Сообщение #9


Такого быть уж точно не может. Если запрос на экране без ошибок, то и в БД он должен приходить без ошибок... в этом можно легко убедиться, если скопировать запрос с экрана и выполнить его в phpMyAdmin... попробуйте сделать так и напишите, что получите в phpMyAdmin. Кстати, можете выложить и сюда скопированный запрос.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 1.11.2013, 7:56; Ответить: fedornabilkin
Сообщение #10


Возможно тип поля для логина не соответствующий.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Кто где хранит файлы? И какой объем?
просто интересно
22 mark2013 2673 15.4.2024, 8:08
автор: Room
Открытая тема (нет новых ответов) Где больше пробив на кликандер или попандер или попап трафике?
1 Boymaster 680 20.3.2024, 9:50
автор: Skyworker
Открытая тема (нет новых ответов) Где получить виртуальную карту бесплатно?
22 Mixatraider 5516 2.3.2024, 0:08
автор: Alekser
Горячая тема (нет новых ответов) Где лучше зарегистрировать email?
104 MorKer 13739 29.2.2024, 23:45
автор: bestx24
Открытая тема (нет новых ответов) Где зарегать домен RU за рубежом.
Без документов, паспорта.
7 chakrai 2347 20.2.2024, 15:48
автор: apirone


 



RSS Текстовая версия Сейчас: 24.4.2024, 7:29
Дизайн