|
автор: Artemy (30.09.2004 в 13:00) |
|
| Помогите найти ошибку!
У меня есть список товаров, типа того как гост. книге, подкаждим товаром ссылка продать!
Но чтобы случайно не нажимали решил поставить простенький пароль!
Вот код по которому переходят на файл delrec.php
<?
include "config.php";
$ath = mysql_query("select * from sklad order by model;");
if ($ath)
{
echo "
<table style='font-size: 11px;' bordercolor=white width='595' border=1 cellspacing=2 cellpadding=2>
<tr>
<td align=center width=75 bordercolor='#006600'><b>Модель</b></td>
<td align=center width=60 bordercolor='#006600'><b>Номер<b></td>
<td align=center width=90 bordercolor='#006600'><b>Исполнение<b></td>
<td align=center width=120 bordercolor='#006600'><b>Дата поступления<b></td>
<td align=center width=90 bordercolor='#006600'><b>Прочие<b></td>
</tr>";
while($triall = mysql_fetch_array($ath))
{
echo "<tr>
<td align=center height=20 bordercolor='#ccffcc'><b>".$triall['model']."</b></td>
<td align=center bordercolor='#ccffcc'>".$triall['number']."</td>
<td align=center bordercolor='#ccffcc'>".$triall['isp']."</td>
<td align=center bordercolor='#ccffcc'>".$triall['data']."</td>
<td align=center bordercolor='#ccffcc'>".$triall['pr']."</td>
</tr>";
echo "<tr>
<td colspan=5 align=right> <a class=prakb href=admin/delrec.php?id=".$triall['id']." title='Продать'>Продать</a><br><br></td>
</tr>";
}
echo "</table>";
}
else
{
echo "<p><b>Error: ".mysql_error()."</b></p>";
exit();
}
?>
|
А вот код файла delrec.php
<?php
$action = $_POST["action"];
if (!empty($action))
{
$del_pass="2706633";
if ($sklad_pass==$del_pass)
{
include "../config.php";
$query = "DELETE FROM sklad WHERE id=".$_GET["id"];
if(mysql_query($query))
{
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../index.php'>\n";
print "</HEAD></HTML>\n";
}
else puterror("Ошибка при обращении к складу");
}
else
{
echo ("Не верный пароль!");
}
}
?>
<form action=delrec.php method=post>
<input type=hidden name=action value=post>
<table align=center bordercolor=#FFFFFF border=1 cellpadding=1 cellspacing=1>
<tr>
<td align=center bordercolor=#0066FF>
Введите пароль
</td>
</tr>
<tr>
<td bordercolor=#FFFFFF>
<input maxlength=7 name=sklad_pass size=7 type=text value='<? echo $sklad_pass; ?>'>
<input type=submit value=Продать>
</td>
</tr>
</table>
</form>
|
В итоге спрашивает пароль, вводишь а он пишит "Ошибка при обращении к складу" !
В чем проблема, не могу понять! | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 13:00)
| | Хм... у вас теряется параметр id при нажатии на кнопку "Продать" - его следует передать через скрытое поле hidden:
<?php
$action = $_POST["action"];
$id = "";
if(isset($_GET["id"])) $id = $_GET["id"];
if(isset($_POST["id"])) $id = $_POST["id"];
if (!empty($action))
{
$del_pass="2706633";
if ($sklad_pass==$del_pass)
{
include "../config.php";
$query = "DELETE FROM sklad WHERE id=".$id;
if(mysql_query($query))
{
print "<HTML><HEAD>\n";
print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../index.php'>\n";
print "</HEAD></HTML>\n";
}
else puterror("Ошибка при обращении к складу");
}
else
{
echo ("Не верный пароль!");
}
}
?>
<form action=delrec.php method=post>
<input type=hidden name=action value=post>
<table align=center bordercolor=#FFFFFF border=1 cellpadding=1 cellspacing=1>
<tr>
<td align=center bordercolor=#0066FF>
Введите пароль
</td>
</tr>
<tr>
<td bordercolor=#FFFFFF>
<input maxlength=7 name=sklad_pass size=7 type=text value='<? echo $sklad_pass; ?>'>
<input name=id type=hidden value='<? echo $id; ?>'>
<input type=submit value=Продать>
</td>
</tr>
</table>
</form>
|
| |
|
|
|
|
автор: Artemy (30.09.2004 в 13:25) |
|
|
для: cheops
(30.09.2004 в 13:17)
| | Не работает, все та же песня! | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 13:25)
| | Попробуйте после формирования переменной $query вставить строки:
<?php
echo $query."<br>";
echo mysql_error();
?>
|
| |
|
|
|
|
автор: Artemy (30.09.2004 в 13:58) |
|
|
для: cheops
(30.09.2004 в 13:32)
| | Вот что пишит
DELETE FROM sklad WHERE id=
Ошибка при обращении к складу
|
| |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 13:58)
| | Хм... а если после строки
if(isset($_POST["id"])) $id = $_POST["id"];
|
поставить вывод параметра id:
На каком этапе происхдит потеря этого параметра? | |
|
|
|
|
автор: Artemy (30.09.2004 в 14:09) |
|
|
для: cheops
(30.09.2004 в 14:01)
| | Пишет id=42, это значит, то что значение передано, но где-то теряется?
К сожалению, я только не давно прочитал Вашу книгу, и не совсем понимаю некоторые вещи! | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 14:09)
| | ТЕперь и я непонимаю некоторые вещи. К примеру выходит так:
echo "id=".$id; // выводит значение
$query = "DELETE FROM sklad WHERE id=".$id;
echo $query; // выводит: "DELETE FROM sklad WHERE id="
|
Весьма странно.... | |
|
|
|
|
|
|
|
для: Igorek
(30.09.2004 в 14:19)
| | а переменная $id в файле config.php ни где не используется? | |
|
|
|
|
автор: Artemy (30.09.2004 в 14:56) |
|
|
для: Crux
(30.09.2004 в 14:52)
| | Нет... | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 14:56)
| | а в error.log какая запись ошибки? | |
|
|
|
|
автор: Artemy (30.09.2004 в 15:33) |
|
|
для: Crux
(30.09.2004 в 15:03)
| | А где лежит этот error.log ? | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 15:33)
| | тамже где и папка www | |
|
|
|
|
автор: Artemy (30.09.2004 в 15:50) |
|
|
для: Crux
(30.09.2004 в 15:45)
| | Нет у меня такого файла! | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 15:50)
| | На самом деле он должен находится в по пути
С:/www/Apache2/logs/error.log
|
Но он вам вряд ли в этой ситуации поможет. | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 15:50)
| | нет так нет.
а если вместо переменной в sql запросе сразу подставить число, какая будет реакция? | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 14:09)
| | Хм... это он пишет при первом обращении? А после нажатия на кнопку "Продать" - тоже самое пишет или уже значение потерено? | |
|
|
|
|
автор: Artemy (30.09.2004 в 16:14) |
|
|
для: cheops
(30.09.2004 в 16:00)
| | РЕБЯТА, НЕ ПОВЕРИТЕ!
Что то с кодом сделал, крутил, вертел, теперь работает!
Правда что не знаю, вроде код тот же!
Спасибо Вам всем БОЛЬШОЕ! | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 16:14)
| | Во дает!!! :)) | |
|
|
|
|
|
|
|
для: Igorek
(30.09.2004 в 16:35)
| | Может у человека в запросе был глюк с передачей параметра.
У меня этот глюк всегда есть и я не знаю как от него избавиться, дело в том что когда я пишу запрос по типу то он никогда не возвращает результата, какой бы ни был тип данных у поля, а вот если пишу тоесть в кавычках одиночных, то все ок! Не знаю в чем дело но использую и работает все. | |
|
|
|
|
|
|
|
для: XPraptor
(30.09.2004 в 17:04)
| | Это не глюк с передачей параметра. Значение переменной в sql-запросе всегда должно быть заключено в одинарные кавычки | |
|
|
|
|
|
|
|
для: Igorek
(30.09.2004 в 17:26)
| | Не смотря на то, что у него этих кавычек не было, судя по его словам проблема было в другом. | |
|
|
|
|
|
|
|
для: Igorek
(30.09.2004 в 17:26)
| | >Значение переменной в
>sql-запросе всегда должно быть заключено в одинарные кавычки
Если оно текстовое. Для числовых типов наличие кавычек не обязательно, так как при заключении их в кавычки всё-равно происходит преобразование их типа из строкового в числовой. Многие даже рекоммендуют избегать помещать в кавычки числовые типы, для увеличения производительности... /*Хотя я лично сомневаюсь, что это приведёт к заментому её увеличению :)*/ | |
|
|
|
|
|
|
|
для: Artemy
(30.09.2004 в 13:00)
| | >В итоге спрашивает пароль, вводишь а он пишит "Ошибка при обращении к складу" !
Это может быть лишь в том случае, когда не выполнился SQL-запрос, следовательно, смотри значение переменной id. Если оно пустое - ищи где оно потерялось. | |
|
|
|