Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
maxforum
Зарегистрирован: 11.08.2005 Сообщения: 3
|
Добавлено: Чт Авг 11 2005 08:28 Заголовок сообщения: переменные в php |
|
|
Требуется каким-то образом передать переменную num при щелчке по ссылке с этим номером в параметр where num=эта переменная в sql запросе UPDATE.
Исходный код
<?
require "connect.php3";
$result = pg_Exec( $cnct,"UPDATE clients SET num=3196,fio='$fio',addr='$addr',tel='$tel',numd='$n',ip='$ip',gw='$gw',mac='$mac',block='$block',det='$det',metod='$met',date='2005-01-01',who='$who',dop='$dop' WHERE num="<? echo $_GET["num"];?>"" );
if ( $result )
{
echo "Data update \n";
}
?>
это файл update.php3
Исходный код
<html>
<body>
<FORM METHOD=Get ACTION="update.php3">
<TABLE border="2">
<TR>
<TD>æéï</TD>
<td><INPUT TYPE=Text NAME=fio SIZE=20></TD>
</TR>
<TR>
<Td>áÄÒÅÓ</td>
<td><INPUT TYPE=Text NAME=addr SIZE=20></TD>
</TR>
<tr>........ <td>äÏÐÏÌÎÉÔÅÌØÎÏ</td><td><INPUT TYPE=Text NAME=dop SIZE=20><td>
</tr>
</TABLE>
<INPUT TYPE=Submit VALUE="éÚÍÅÎÉÔØ">
</FORM>
это файл update.html
Как я понимаю вставлять <T? echo $_GET["num"];?> надо в WHERE в файле update.php3. Но все равно не работает. В чем может быть ошибка?
Заранее благодарен. |
|
Вернуться к началу |
|
|
Anvano
Зарегистрирован: 24.03.2005 Сообщения: 58
|
Добавлено: Чт Авг 11 2005 08:48 Заголовок сообщения: |
|
|
А где же у тебя в форме переменная с названием num ?
Ты пытаешься её получить из HTTP запроса, но не передаешь её
добавь в HTML код
Код: | <input type='hidden' name='num' value='33'> |
ну вместо value втыкай значение твоего num
вот тогда ты можешь в PHP скрипте получить значение этой переменной.
Дополнение: ты еще неправильно втыкаешь код PHP в запрос.
почему бы не получить переменную отдельно и только потом её втыкать в запрос?
Цитата: | <?
$num = $_GET["num"];
$result = pg_Exec( $cnct,"UPDATE clients SET num=3196,fio='$fio',addr='$addr',tel='$tel',numd='$n',ip='$ip',gw='$gw',mac='$mac',block='$block',det='$det',metod='$met',date='2005-01-01',who='$who',dop='$dop' WHERE num='$num'" );
?> |
еще хинт: НИКОГДА не втыкай данные полученные от пользователя напрямую в SQL запрос - это прямой путь к SQL инъекции. Обрабатывай переменные перед передачей в запрос на наличие спец символов и т.д. и т.п. (есть специальные функции для этого) |
|
Вернуться к началу |
|
|
maxforum
Зарегистрирован: 11.08.2005 Сообщения: 3
|
Добавлено: Пт Авг 12 2005 13:40 Заголовок сообщения: |
|
|
Код: | <html>
<head>
<title>Изменение данных клиента</title>
</head>
<body bgcolor=ivory>
<h1>Изменение данных клиента</h1>
<FORM METHOD=Get ACTION="update.php3">
<TABLE border="2" bgcolor=white>
<TR>
<TD>Номер</TD>
<td><INPUT TYPE=Text NAME=num SIZE=20></TD>
</TR>
<TR>
<TR>
<TD>ФИО</TD>
<td><INPUT TYPE=Text NAME=fio SIZE=20></TD>
</TR>
<TR>
<Td>Адрес</td>
|
это файл update.html
Код: | if (version_compare(phpversion(), "4.1.10", ">="))
$num = $_REQUEST["num"];
else
$num = $HTTP_GET_VARS["num"];
$result = pg_Exec( $cnct, "UPDATE clients SET num=$num,fio='$fio',addr='$addr',tel='$tel',numd='$n',ip='$ip',gw='$gw',mac='$mac',block='$block',det='$det',metod='$met',date='2005-01-01',who='$who',dop='$dop' WHERE num=$num");
if ( $result )
{
echo "Data update \n";
}
|
это файл update.php3
Код: | <?
//*** соединение с БД ***
require "connect.php3";
// *** просмотр данных ***
$g=$_REQUEST["g"];
$result = pg_Exec( $cnct, "SELECT * FROM clients ORDER BY $g" );
$RecCount = pg_NumRows( $result ); // число записей, которые следует отобразить на экране
?>
<HTML>
<HEAD>
<title>клиенты</title>
</HEAD>
<H1><center>Клиенты</center></H1>
<BODY font size="8" bgcolor=ivory>
<TABLE BORDER="1" WIDTH="900" bgcolor=gainsboro>
<TR>
<TD><a href="view.php3?g=num">Номер</a></TD>
<TD><a href="view.php3?g=fio">ФИО</a></TD>
<TD><a href="view.php3?g=addr">Адрес</a></TD>
<TD><a href="view.php3?g=tel">Телефон</a></TD>
<TD><a href="view.php3?g=ip">ip-адрес</a></TD>
<TD><a href="view.php3?g=gw">Шлюз</a></TD>
<TD><a href="view.php3?g=block">Блокировка</a></TD>
</TR>
<?
$i = 0;
do // отображаем записи построчно
{
$arr = pg_Fetch_Array ($result, $i);
?>
<TD><a href="update.html?num=<?=$arr['num']?>"><? echo $arr['num']; ?></a></TD>
<TD><? echo $arr['fio']; ?> </TD>
<TD><? echo $arr['addr']; ?> </TD>
<TD><? echo $arr['tel']; ?> </TD>
<TD><? echo $arr['ip']; ?> </TD>
<TD><? echo $arr['date']; ?> </TD>
<TD><? echo $arr['block']; ?> </TD>
</TR>
<? $i = $i + 1; // номер следующей записи, которую будем отбражать строкой таблицы
} while ($i < $RecCount);
?>
</TABLE>
<BR>
</BODY>
</HTML>
|
файл view.html
Требуется сделать так,чтобы при обновлении данных поля заполнялись автоматически.То есть при щелчке по данной записи открывались уже заполненные поля,ане пустые как тут.Заранее спасибо. |
|
Вернуться к началу |
|
|
maxforum
Зарегистрирован: 11.08.2005 Сообщения: 3
|
Добавлено: Пт Авг 12 2005 18:03 Заголовок сообщения: |
|
|
Исходный код
Код: |
<?
require "connect.php3";
$fio=$_REQUEST["fio"];
$result=pg_Exec($cnct,"SELECT * FROM clients WHERE num=$num");
$i = 0;
do // отображаем записи построчно
{
$arr = pg_Fetch_Array ($result, $i);
?>
<? $i = $i + 1; // номер следующей записи, которую будем отбражать строкой таблицы
} while ($i < $RecCount);
?>
<TR>
<TD>Номер</TD>
<td><INPUT TYPE=Text NAME=num SIZE=50></TD>
</TR>
<TR>
<TR>
<TD>ФИО</TD>
<td><INPUT TYPE=Text NAME=fio VALUE=<? echo"\"$fio\""; ?> SIZE=50></TD>
</TR>
<TR>
<Td>Адрес</td>
<td><INPUT TYPE=Text NAME=addr VALUE=<? echo $arr['addr']; ?> SIZE=50></TD>
</TR>
<tr>
Адрес имеет формат Ударная 89 кв 78. Проблема в том,что после пробелов ничего не отображается.В чем может быть причина?
Back to top
Profile PM | [/code] |
|
Вернуться к началу |
|
|
Anvano
Зарегистрирован: 24.03.2005 Сообщения: 58
|
Добавлено: Вс Авг 14 2005 12:09 Заголовок сообщения: |
|
|
Навтыкал кучу кода. Нифига не понятно чего тебе надо .
Код: | Требуется сделать так,чтобы при обновлении данных поля заполнялись автоматически.То есть при щелчке по данной записи открывались уже заполненные поля,ане пустые как тут.Заранее спасибо. |
Это тебе самому понятно, где это "как тут", а кроме тебя никто твои странички в глаза не видел.
Так что мой совет - купи книжку по PHP и проделай все тестовые примеры, отпадет 50% вопросов. |
|
Вернуться к началу |
|
|
Rock_admin
Зарегистрирован: 12.04.2005 Сообщения: 21
|
Добавлено: Пт Авг 19 2005 11:18 Заголовок сообщения: |
|
|
Странные какие методы программирования, накачай ещё исходников и посмотри.
А поповоду обреза до пробела посмотри из базы всё выбирается. |
|
Вернуться к началу |
|
|
Rock_admin
Зарегистрирован: 12.04.2005 Сообщения: 21
|
Добавлено: Пт Авг 19 2005 11:20 Заголовок сообщения: |
|
|
На следующей форме обрезается не мудрено используй
<input type="text" name="name" value="<? echo $value ?>">
Обрати внимание что значение value в кавычках.
У меня такое как то было. |
|
Вернуться к началу |
|
|
|