Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему скрипт не видит переменную? 
V
    Опции темы
helflip
  Дата 27.9.2006, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Почему выдается ошибка 

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18


Переменная передается через ПОСТ, остальные переменные так работают, а с этой проблема smile 


Помогите пожалуйста  smile 
Заранее спасибки smile 

Код

<html>
<head>
<body>
<?php

$title="--=Редактирование пользователя по имени=--";
$text=$msconnect=mssql_connect("xxx","xxx","xxx");
$msdb=mssql_select_db('[xxx]',$msconnect); 
$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);
    

if (isset($_POST['save']) and $_POST['save'] == 'Save')
 {    

    while ($row3= mssql_fetch_array($msresults0))
        {
    $iu=$_POST['id_user'];
        if ($row3['N']==$iu)
            {
    
        
    $user_id = $_POST['user_id']; 
    $user_mail = $_POST['user_mail'];
    $user_position = $_POST['user_position'];
    $user_profile = $_POST['user_profile'];
    
    $q2     = "UPDATE [user] 
               SET userid = '".$user_id."',
                   usermail = '".$user_mail."',
                   userposition = '".$user_position."',
                   userprofile = '".$user_profile."'
                WHERE N = '".$iu."'";
                    
    $msresults3 = mssql_query($q2) or die("Error"); 
 }
 }
 }


if (isset($_POST['edit']) and $_POST['edit'] == 'Edit')
 { 
    ?>
    <form action="" method="POST">
  <table width="100%" align="center" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">E-mail пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Местонахождение</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Прочее</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Управление</td></b></font>
   </tr>
   <tr bgcolor="Gray">
    <td align="center"><input type="text" name="user_id"></td>
    <td align="center"><input type="text" name="user_mail" ></td>
    <td align="center"><input type="text" name="user_position"></td>
    <td align="center"><input type="text" name="user_profile" ></td>
    <td align="center"><input type="submit" name="save" value="Save">
    </td>
   </tr>
    
    
    
    </form>
<?php
 }
 
 
 //при нажатии на клавишу поиск
if (isset($_POST['search']) and $_POST['search'] == 'Поиск')
 { 
    
    
    $n_s = $_POST['n_s']; 
    $q     = "SELECT * FROM [user] WHERE userid = '".$n_s."';";

    $msresults1 = mssql_query($q) or die("Error"); 
?>

  <table width="100%" align="center" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">E-mail пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Местонахождение</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Прочее</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Управление</td></b></font>
<?php    
while ($row0= mssql_fetch_array($msresults1))    {
?>    
 <form action="" method="POST">
     <tr><td width="10%"> <?php echo "<b>".$row0['userid']."</b>"."</td>"."<td>".$row0['usermail']."</td>"."<td>".$row0['userposition']."</td>"."<td>".$row0['userprofile']."</td>";

//тут берется переменная  id_user
    ?><td align="center">    

        <input type="hidden" name="id_user" value="<?=$row0['N']?>">
        <input type="submit" name="edit" value="Edit">


      </td>
     </tr>
     </form>
    <?php          
     }
    }
 
 
?>
      <center><B><font color="Red" size="4">По какому полю найти пользователя для редактирования</font>
          </b>
  </center>
  <br>
  <table width="100%" align="center" bgcolor="Gray" border="5">

  
  <tr bgcolor="Navy">
     <a href="name_edit.php"><td align="center"id="cel" onmouseout="javascript:document.getElementById('cel').style.background='Navy'" onmouseover="javascript:document.getElementById('cel').style.background='red'"><B><font color="Silver" size="3">Имя пользователя</td></font></a>
     <a href="email_edit.php"><td align="center" id="cel1" onmouseout="javascript:document.getElementById('cel1').style.background='Navy'" onmouseover="javascript:document.getElementById('cel1').style.background='red'"><B><font color="Silver" size="3">E-mail пользователя</td></font>
     <a href="location_edit.php"><td align="center" id="cel2" onmouseout="javascript:document.getElementById('cel2').style.background='Navy'" onmouseover="javascript:document.getElementById('cel2').style.background='red'"><B><font color="Silver" size="3">Местонахождение</td></font>
     <a href="other_edit.php"><td align="center" id="cel3" onmouseout="javascript:document.getElementById('cel3').style.background='Navy'" onmouseover="javascript:document.getElementById('cel3').style.background='red'"><B><font color="Silver" size="3">Прочее</td></font>
  </table>
    <form action="" method="POST">
    <table> 
    <tr bgcolor="Gray">
        <td>
        <td align="center"><input type="text" name="n_s" ></td>
        <td align="center"><input type="submit" name="search" value="Поиск"></td>
        </td>
     </tr>
     </form>
     <?php 

//шаблон
include_once"template.php";
?>
</a>
</table>
</body>
</head>
</html>

--------------------
 
PM MAIL   Вверх
smartov
Дата 27.9.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



helflip, ну наверное потому что такого индекса в массивек ПОСТ действительно нет?
А есть $_POST['user_id'].
А что такое $_POST['id_user'] скрипт не знает о чем доступно пишет.
Цитата
Notice: Undefined index: id_user in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 18

Notice: неопределённй индекс id_user в файле ..... в строке 18

p.s. Текст ошибки достаточно было написать 1 раз, а не 6. 

Это сообщение отредактировал(а) smartov - 27.9.2006, 09:35
PM MAIL   Вверх
ZlojEzh
Дата 27.9.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



у тебя в форме - user_id
а прочитать ты пытаешься $_POST['id_user']

а вообще не надо лениться отлаживать такие мелкие баги самому
print_r() и var_dump() тебе в помощь




не успел чуть... )

Это сообщение отредактировал(а) ZlojEzh - 27.9.2006, 09:36
PM MAIL ICQ   Вверх
helflip
Дата 27.9.2006, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Да нет в конце кода посмотрите там есть такой кусочек


Код

//тут берется переменная  id_user
    ?><td align="center">    

        <input type="hidden" name="id_user" value="<?=$row0['N']?>">
        <input type="submit" name="edit" value="Edit">



Добавлено @ 09:41 
Мне надо добыть номер записи которую выбрал пользователь и потом ее заменить.
Может я просто не правильно делаю?
--------------------
 
PM MAIL   Вверх
smartov
Дата 27.9.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



id_user и user_id находятся у тебя в двух совершенно разных формах так что твой код ругнется на отсутствие либо первого либо второго

Ну а вообще проверяй if isset($_POST['id_user'])........ и будет тебе счастье

Это сообщение отредактировал(а) smartov - 27.9.2006, 10:30
PM MAIL   Вверх
helflip
Дата 27.9.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



А куда это вставить вы не подскажите, я просто еще не такой опытный в ПХП
--------------------
 
PM MAIL   Вверх
helflip
Дата 27.9.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Как вы думаете правильно написан код обновления  пользователя:
Код

$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);
    

if (isset($_POST['save']) and $_POST['save'] == 'Save')
 {    

    while ($row3= mssql_fetch_array($msresults0))
        {
    if (isset($_POST['id_us']))
    {
    $iu=$_POST["id_us"];
        if ($row3['N']==$iu)
            {
    
        
    $user_id = $_POST['user_id']; 
    $user_mail = $_POST['user_mail'];
    $user_position = $_POST['user_position'];
    $user_profile = $_POST['user_profile'];
    
    $q2 = "UPDATE [user] 
           SET userid = '".$user_id."'
               usermail = '".$user_mail."'
               userposition = '".$user_position."'
               userprofile = '".$user_profile."'
           WHERE N = '".$iu."'";
                    
    $msresults3 = mssql_query($q2) or die("Error"); 
 }
 }
 }
    }


Если нет скажите где ошибка плз
--------------------
 
PM MAIL   Вверх
helflip
Дата 27.9.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Ну кто нибудь помогите smile 
--------------------
 
PM MAIL   Вверх
sergejzr
Дата 27.9.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360




if(!isset($_POST['id_user'])) 
{
//Ошибка, данные о id_user не пришли

}



Цитата(helflip @  27.9.2006,  09:23 Найти цитируемый пост)
Как вы думаете правильно написан код обновления  пользователя:

Нет. все переменные надо обрамлять в addslashes()

Код

  $q2 = "UPDATE user 
           SET userid = '".addslashes($user_id)."'
               usermail = '".addslashes($user_mail)."'
               userposition = '".addslashes($user_position)."'
               userprofile = '".addslashes($user_profile)."'
           WHERE N = '".addslashes($iu)."'";


А вообще об ошибках тебе скажет mysql_error()


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
helflip
Дата 27.9.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Я чегото не понял чего это значит

Цитата

if(!isset($_POST['id_user'])) 
{
//Ошибка, данные о id_user не пришли

}

--------------------
 
PM MAIL   Вверх
sergejzr
Дата 27.9.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Это значит, что если будешь такие проверки делать, "Notice: Undefined index: " больше не увидишь.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
helflip
Дата 27.9.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Нефига не работает, всеравно ошибка таже самая
--------------------
 
PM MAIL   Вверх
sergejzr
Дата 27.9.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Проверка ведь не от балды должна там стоять smile
В самом начале скрипта пиши:

 $iu=isset($_POST['id_user'])?$_POST['id_user']:'defaultuser'; 

И больше $_POST['id_user'] нигде не пиши.
smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
helflip
Дата 28.9.2006, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



ну я сделал вот так, 
Код

$iu=isset($_POST['id_us'])?$_POST['id_us']:'defaultuser';

$title="--=Редактирование пользователя по имени=--";
$text=$msconnect=mssql_connect("BNCL","ADMINSQL","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);
    

if (isset($_POST['save']) and $_POST['save'] == 'Save')
 {    

    while ($row3= mssql_fetch_array($msresults0))
        {
    
    
        if ($row3['N']==$iu)
            {
    
        
    $user_id = $_POST['user_id']; 
    $user_mail = $_POST['user_mail'];
    $user_position = $_POST['user_position'];
    $user_profile = $_POST['user_profile'];
    
    $q2 = "UPDATE user 
           SET userid = '".addslashes($user_id)."'
               usermail = '".addslashes($user_mail)."'
               userposition = '".addslashes($user_position)."'
               userprofile = '".addslashes($user_profile)."'
           WHERE N = '".addslashes($iu)."'";

    $msresults3 = mssql_query($q2) or die("Error"); 
     }
 }
 }
 серавно не работает
--------------------
 
PM MAIL   Вверх
helflip
Дата 28.9.2006, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Ну вобщем он работает, но криво я так переделал:

Код


$iu=isset($_POST['id_us'])?$_POST['id_us']:'defaultuser';

$title="--=Редактирование пользователя по имени=--";

$msconnect=mssql_connect("BNCL","ADMINSQL","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);
    

if (isset($_POST['save']) and $_POST['save'] == 'Save')
 {    
    while ($row3= mssql_fetch_array($msresults0))
        {
         if ($row3['N']=$iu)
            {
                $user_id = $_POST['user_id']; 
                $user_mail = $_POST['user_mail'];
                $user_position = $_POST['user_position'];
                $user_profile = $_POST['user_profile'];
                
    
    $q2 = "UPDATE [user]
           SET userid = '".addslashes($user_id)."',
               usermail = '".addslashes($user_mail)."',
               userposition = '".addslashes($user_position)."',
              userprofile = '".addslashes($user_profile)."'
            WHERE N = '".$iu."'";
        

    $msresults3 = mssql_query($q2) or die("Error"); 
     }
 }
 }


Ошибку пишет такую

Warning: mssql_query() [function.mssql-query]: message: Error converting data type varchar to numeric. (severity 16) in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 37

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Inetpub\wwwroot\kickflip\ATS\name_edit.php on line 37
Error


Как я понял то это в этой строке 
Код

WHERE N = '".$iu."'";


В базе это поле само вычисляется.
Я пробовал убрать WHERE N = '".$iu."'";
, но тогда он заменяет все записи в базе, как быть что делать smile 
ХОРОШО ЧТО У МЕНЯ ТЕСТОВАЯ БАЗА smile 
--------------------
 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.