Перейти к содержимому

Сервис обмена электронных валют


Где ошибки в скрипте?

#1 alex159

alex159
  • Пользователь
  • 492 сообщений
  • Репутация: 32
0

Отправлено 30 Октябрь 2013 - 13:20

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

Человек регистрируется и добавляет свои аккаунты.
Они все выводятся в панели. Я хочу что бы 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

#2 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 30 Октябрь 2013 - 14:23

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

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

AND password_t='$password_t'

  • 0

#3 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 30 Октябрь 2013 - 14:26

Нет, это нужно. Этим запросом я обновляю запись в таблице и устанавливают ячейки login_t значение переменной $login_t и ячейки password_t значение переменной $password_t
  • 0

#4 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 31 Октябрь 2013 - 18:46

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

#5 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 31 Октябрь 2013 - 18:53

Приветствую.
Насколько я понимаю, в БД этот логин заносится здесь:
$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);

  • 0


#6 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 31 Октябрь 2013 - 19:22

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

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

Может что то в конфигурации локалхоста?
  • 0

#7 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 31 Октябрь 2013 - 20:39

Сделал распечатку, а мне он отдает результат запроса. То есть цифру 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); // распечатываем запрос на экран, прерывая дальнейшее выполнение скрипта

  • 0


#8 alex159

alex159
    Topic Starter
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 31 Октябрь 2013 - 20:55

Действительно, спасибо.
Запрос выходит правильный, но в бд он отображается как 0.


  • 0

#9 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 31 Октябрь 2013 - 22:49

Такого быть уж точно не может. Если запрос на экране без ошибок, то и в БД он должен приходить без ошибок... в этом можно легко убедиться, если скопировать запрос с экрана и выполнить его в phpMyAdmin... попробуйте сделать так и напишите, что получите в phpMyAdmin. Кстати, можете выложить и сюда скопированный запрос.
  • 0


#10 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 01 Ноябрь 2013 - 06:56

Возможно тип поля для логина не соответствующий.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru