Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

переменные в php

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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>
                        &nbsp;<TD><? echo $arr['fio']; ?>&nbsp;</TD>
                        &nbsp;<TD><? echo $arr['addr']; ?>&nbsp;</TD>
                        &nbsp;<TD><? echo $arr['tel']; ?>&nbsp;</TD>
                        &nbsp;<TD><? echo $arr['ip']; ?>&nbsp;</TD>
                        &nbsp;<TD><? echo $arr['date']; ?>&nbsp;</TD>
                        &nbsp;<TD><? echo $arr['block']; ?>&nbsp;</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    Заголовок сообщения: Ответить с цитатой

Навтыкал кучу кода. Нифига не понятно чего тебе надо Very Happy .

Код:
Требуется сделать так,чтобы при обновлении данных поля заполнялись автоматически.То есть при щелчке по данной записи открывались уже заполненные поля,ане пустые как тут.Заранее спасибо.


Это тебе самому понятно, где это "как тут", а кроме тебя никто твои странички в глаза не видел.

Так что мой совет - купи книжку по 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 в кавычках.
У меня такое как то было.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...