За последние 24 часа нас посетили 19728 программистов и 1656 роботов. Сейчас ищут 1449 программистов ...

Посмотри и подскажи

Тема в разделе "Вопросы от блондинок", создана пользователем kuliev, 16 апр 2008.

  1. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Привет ВСЕМ! :)

    Вот код:
    PHP:
    1.  
    2.  
    3. <?php
    4.  error_reporting("E_ERROR");
    5.  require_once "../config.php";
    6.  function add_new() {
    7.     echo "<center><font class=\"title\"><b>Панель управления</b></font><br><br>"
    8.     ."[ <a href=\"password.php?up=new_account\">Добавить пользователя</a>"
    9.     ." | <a href=\"password.php?up=update\">Редактировать</a> ]";
    10. }
    11.  add_new();
    12.  function update()
    13.  {
    14. ?>
    15. <HTML>
    16. <head>
    17. <TITLE>Учетные записи</TITLE>
    18. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
    19. </head>
    20. <BODY>
    21. <center><h2>Учетные записи</h2></center>
    22. <form method="POST" action="update.php">
    23. <center><table width="400" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#336699">
    24. <td align="center">№</td>
    25. <td align="center">Логин</td>
    26. <td align="center">Роль</td>
    27. <td align="center">Действие</td>
    28. </td>
    29.    </tr>
    30. <?php
    31. $per_page=pages;
    32. // получаем номер страницы
    33. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
    34. // вычисляем первый оператор для LIMIT
    35. $start=abs($page*$per_page);
    36. // составляем запрос и выводим записи
    37. // переменную $start используем, как нумератор записей.
    38. $sql="SELECT  auth.id,login, role.name FROM auth, role where auth.role=role.id_role ORDER BY id LIMIT $start,$per_page";
    39. $result=db($sql);
    40.       $j=1;
    41.      $bgr='1';
    42.  if($bgr==1)
    43. {
    44. $bgcolor='#F5F5F5';
    45. $bgr=0;
    46. }
    47. else
    48. {
    49. $bgcolor='#FFFFFF';
    50. $bgr=1;
    51. }
    52. $sql=("select * from auth, role where auth.role=role.id_role ORDER BY idS");
    53. $result=db($sql);
    54. while($row = mysql_fetch_array($result))
    55. {
    56. ?>
    57. <tr bgcolor="<?=$bgcolor?>" onMouseOut=this.style.backgroundColor="<?=$bgcolor?>" onMouseOver=this.style.backgroundColor="#BED9FB">
    58. <td align="center"><?=$j++ ?><input type="hidden" name="id" value="<?=$row['id']?>"></td>
    59. <td align="center"><b><input type="text" name="login" value="<?=$row['login'] ?>"></b></td>
    60. <td align="center"><b><?=$row['name'] ?></b></td>
    61. <td width="75"><center><a href="delete.php?id=<?=$row['id']?>"><img src="../images/b_drop.png" border="0" alt=""></a>
    62. <input type="image" src="../images/b_edit.png">
    63. </center></td>
    64. </tr>
    65. <?php
    66. }
    67. ?>
    68. </table>
    69. </form>
    70. <br>
    71.  
    72. <?php
    73.    $sql="SELECT count(*) FROM auth";
    74. $result=db($sql);
    75. $row=mysql_fetch_row($result);
    76. $total_rows=$row[0];
    77.  
    78. $num_pages=ceil($total_rows/$per_page);
    79.  
    80. for($i=1;$i<=$num_pages;$i++) {
    81.   if ($i-1 == $page) {
    82.     echo $i." ";
    83.   } else {
    84.     echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
    85.   }
    86.    }
    87.      }
    88.  function new_account()
    89. {
    90. ?>
    91.    <center><h2>Добавленеи новой учетной записи</h2></center>
    92.    <form method="POST" action="add_account.php">
    93.    <table width="200" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#336699">
    94.      <tr>
    95.     <td width="80">Логин:</td>
    96.     <td width="180"><input type="text" name="login" size="25"></td>
    97.      </tr>
    98.      <tr>
    99.   <td width="80">Фамилия:</td>
    100.     <td width="180"><input type="text" name="fam" size="25"></td>
    101.      </tr>
    102.      <tr>
    103.   <td width="80">Имя:</td>
    104.     <td width="180"><input type="text" name="names" size="25"></td>
    105.      </tr>
    106.      <tr>
    107.   <td width="80">Отчество:</td>
    108.     <td width="180"><input type="text" name="otc" size="25"></td>
    109.      </tr>
    110.      <tr>
    111.     <td width="80">Пароль:</td>
    112.     <td width="180"><input type="password" name="passw" size="25"></td>
    113.     <td align="center">
    114. <select name="role">
    115. <option value="0">Роль пользователя</option>
    116. <option value="1">Администратор</option>
    117. <option value="2">Модератор</option>
    118. <option value="3">Пользователь</option>
    119.  
    120. </select>
    121.      </tr>
    122.      <tr><td><input type="submit" value="Добавить"></td></tr>
    123.    </table>
    124.  
    125.    </form>
    126. <?php
    127.  
    128.     }
    129.     switch($_GET['up']) {
    130.  
    131.     case "update":
    132.     update ();
    133.     break;
    134.  
    135.  
    136.     case "new_account":
    137.     new_account ();
    138.     break;
    139.  
    140.  
    141. }
    142. ?>
    143. </body>
    144. </html>
    Вот КОД UPDATE.PHP
    PHP:
    1.  
    2. <?php
    3.  
    4.   <?php
    5.  
    6.   require_once "../config.php";
    7.  
    8.    $sql = ("update auth set login='".$_POST['login']."' WHERE id = '".$_POST['id']."'");
    9.     $result=db($sql);
    10.    if($result)
    11.    {
    12.  
    13.         print "<HTML><HEAD>\n";
    14.       print "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_SERVER["HTTP_REFERER"]."'>\n";
    15.       print "</HEAD><BODY></BODY></HTML>\n";
    16.    }
    17.    else
    18.    {
    19.       print "Ошибка при обращении к базе данных";
    20.    }
    21.  
    22. ?>
    23. ?>
    24.  
    Характер проблемы:
    Скрипт выводит записи из таблицы
    1) аааааааа
    2) бббббббб
    3) вввввввв
    Хочу отредактировать 2 поле с ббббб на гггггг , а скрипт почемуто обновляет только последнею строчку 3) вввввв
    ВОПРОС: Где я ошибся или что сделал не так???
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Новое развлечение?
     
  3. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Слово ПОМОГИТЕ уже приелось, а это так для разнообразия! :D
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    * задумалсо, занеся палец над кнопкой
     
  5. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Давайте не будем отходить от темы, я выложил конкретный вопрос, на который хочу получить ответ, а не разводить споры по названию темы и т.д.
    МОДЕРАТОР может удалить тему на его УСМОТРЕНИЕ!
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    причём уже дважды :)
    да, и кстати, если отправлять на обновление не через форму, а ссылкой (так же как и delete), то будет работать нормально. У тебя несколько полей с одним именем и последний
    как раз и отправляется на обработку.


    ЗЫ. Кто-нибудь, скажите, месячник уже закончился?
     
  7. Anonymous

    Anonymous Guest

    У Администратора спроси.
     
  8. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    topas, радостно потирая руки, достал из-за пазухи базуку. ну держитесь нубы :)
     
  9. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Целых пять минут ушло на выяснение ошибки, и то, не нашел бы, если бы сам не допускал раньше таких ошибок.
    Это 56 строка.
    Выводится в цикле:
    HTML:
    1.  
    2. <input type="hidden" name="id" value="1">
    3. <input type="hidden" name="id" value="2">
    4. <input type="hidden" name="id" value="3">
    5.  
    Вот клиент и посылает серверу, что форма имеет поле id = 3
    Для отлова этой ошибки, при получении POST данных сделайте var_dump($_POST); и увидите что я хотел сказать

    Как править?
    Учимся разделять код от верстки, думаем как это сделать грамотно, но в любом случае: в одном месте обращение к базе данных, в другом отображение данных. В первом не должно быть никакого HTML'a, никаких echo.

    Подсказка:
    HTML:
    1. <input type="hidden" name="id[]" value="2">
     
  10. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    да, телепат - нервная работа...
     
  11. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Всем спасибо за помощь, вроде разобрался и все работает.
    Переделал вот так :)
    PHP:
    1.  
    2. <?php
    3.  error_reporting("E_ERROR");
    4.  require_once "../config.php";
    5.  function add_new() {
    6.     echo "<center><font class=\"title\"><b>Панель управления</b></font><br><br>"
    7.     ."[ <a href=\"password.php?up=new_account\">Добавить пользователя</a>"
    8.     ."| <a href=\"password.php?up=update\">Редактировать</a> ]";
    9. }
    10.  add_new();
    11.  function update()
    12.  {
    13.  
    14. ?>
    15. <HTML>
    16. <head>
    17. <TITLE>Учетные записи</TITLE>
    18. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
    19. </head>
    20. <BODY>
    21. <center><h2>Учетные записи</h2></center>
    22. <!--<form method="GET" action="password.php">-->
    23. <center><table width="400" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#336699">
    24. <td align="center">№</td>
    25. <td align="center">Логин</td>
    26. <td align="center">Фамилия</td>
    27. <td align="center">Имя</td>
    28. <td align="center">Отчество</td>
    29. <td align="center">Роль</td>
    30. <td align="center">Действие</td>
    31. </td>
    32.    </tr>
    33. <?php
    34. $per_page=pages;
    35. // получаем номер страницы
    36. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
    37. // вычисляем первый оператор для LIMIT
    38. $start=abs($page*$per_page);
    39. // составляем запрос и выводим записи
    40. // переменную $start используем, как нумератор записей.
    41. $sql="SELECT  auth.id_aut,login,fam,name,otc, role.name_role FROM auth, role where auth.role=role.id_role ORDER BY id_aut LIMIT $start,$per_page";
    42. $result=db($sql);
    43.           $j=1;
    44.           $bgr='1';
    45.  
    46. while($row = mysql_fetch_array($result))
    47. {
    48. if($bgr==1)
    49. {
    50. $bgcolor='#F5F5F5';
    51. $bgr=0;
    52. }
    53. else
    54. {
    55. $bgcolor='#FFFFFF';
    56. $bgr=1;
    57. }
    58.  echo "<tr bgcolor=\"$bgcolor\" onMouseOut=this.style.backgroundColor=\"$bgcolor\" onMouseOver=this.style.backgroundColor=\"#BED9FB\">";
    59. echo "<form action='password.php' method='GET'>";
    60. echo "<td align=\"center\">".$j++."</td>";
    61. echo "<td align=\"center\"><input type='text' name='login' value='".$row['login']."' size='10' maxlength='100'></td>";
    62. echo "<td align=\"center\"><input type='text' name='fam' value='".$row['fam']."' size='10' maxlength='100'></td>";
    63. echo "<td align=\"center\"><input type='text' name='name' value='".$row['name']."' size='10' maxlength='100'></td>";
    64. echo "<td align=\"center\"><input type='text' name='otc' value='".$row['otc']."' size='10' maxlength='100'></td>";
    65. echo "<td align=\"center\">".$row['name_role']." </td>";
    66. echo "<input type='hidden' name='id_aut' value='".$row['id_aut']."' size='10' maxlength='255'>";
    67. echo "<td align=\"center\"><input type='hidden' name='up' value='upd'>"
    68. ."<input type='image' src='../images/b_edit.png' title='Сохр.'>&nbsp;&nbsp;&nbsp;</form>";
    69. echo "<a href=\"password.php?up=del&id=".$row['id_aut']."\" title=\"Удалить\"><img src=../images/b_drop.png border=\"0\" alt=\"\"></a>";
    70. echo "</td></tr>";
    71. }
    72. echo "</center></table><br>";
    73. ?>
    74. <!--
    75. <tr bgcolor="<?=$bgcolor?>" onMouseOut=this.style.backgroundColor="<?=$bgcolor?>" onMouseOver=this.style.backgroundColor="#BED9FB">
    76. <td align="center"><?= $j++ ?></td>
    77. <td align="center"><b><input type="text" name="login" value="<?=$row['login'] ?>"></b></td>
    78. <td align="center"><b><input type="text" name="fam" value="<?=$row['fam'] ?>"></b></td>
    79. <td align="center"><b><input type="text" name="name" value="<?=$row['name'] ?>"></b></td>
    80. <td align="center"><b><input type="text" name="otc" value="<?=$row['otc'] ?>"></b></td>
    81. <input type="hidden" name="id_aut[]" value="2">
    82. <td align="center"><b><?=$row['name_role'] ?></b></td>
    83. <input type="hidden" name="up" value="upd" >
    84. <td width="75"><center><a href="delete.php?id=<?=$row['id_aut'] ?>"><img src="../images/b_drop.png" border="0" alt=""></a>
    85. <!--<a href="update.php?login=<?=$row['login'] ?>&fam=<?=$row['fam'] ?>&name=<?=$row['name'] ?>&otc=<?=$row['otc'] ?>&id_aut=<?=$row['id_aut'] ?>"><img src="../images/b_edit.png" border="0" alt=""></a></td>
    86. <input type="image" src="../images/b_edit.png" ></center></td>
    87. </tr>
    88.  -->
    89.  
    90. <?php
    91. }
    92.  ?>
    93.  </table>
    94.  </form>
    95.  <br>
    96.  <?php
    97. $sql="SELECT count(*) FROM auth";
    98. $result=db($sql);
    99. $row=mysql_fetch_row($result);
    100. $total_rows=$row[0];
    101.  
    102. $num_pages=ceil($total_rows/$per_page);
    103.  
    104. for($i=1;$i<=$num_pages;$i++) {
    105.   if ($i-1 == $page) {
    106.     echo $i." ";
    107.   } else {
    108.     echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";
    109.   }
    110.    }
    111.  
    112.  
    113.  
    114.  
    115.  function new_account()
    116.  {
    117. ?>
    118.    <center><h2>Добавленеи новой учетной записи</h2></center>
    119.    <form method="POST" action="add_account.php">
    120.    <table width="200" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#336699">
    121.      <tr>
    122.     <td width="80">Логин:</td>
    123.     <td width="180"><input type="text" name="login" size="25"></td>
    124.      </tr>
    125.      <tr>
    126.     <td width="80">Пароль:</td>
    127.     <td width="180"><input type="password" name="passw" size="25"></td>
    128.     <td align="center">
    129. <select name="role">
    130. <option value="0">Роль пользователя</option>
    131. <option value="1">Администратор</option>
    132. <option value="2">Модератор</option>
    133. <option value="3">Пользователь</option>
    134.  
    135. </select>
    136.      </tr>
    137.      <tr><td><input type="submit" value="Добавить"></td></tr>
    138.    </table>
    139.  
    140.    </form>
    141. <?php
    142.     }
    143.     function upd() {
    144.  
    145.     $login=$_GET['login'];
    146.     $fam=$_GET['fam'];
    147.     $name=$_GET['name'];
    148.     $otc=$_GET['otc'];
    149.     $id=$_GET['id_aut'];
    150.  
    151.     $sql=("UPDATE auth SET login='$login', fam='$fam', name='$name', otc='$otc' WHERE id_aut='$id'");
    152.     $result=db($sql);
    153.     if (!headers_sent())
    154.         header('Location: password.php?up=update');
    155.     else {
    156.         echo '<script type="text/javascript">';
    157.         echo 'window.location.href="password.php?up=update";';
    158.         echo '</script>';
    159.         echo '<noscript>';
    160.         echo '<meta http-equiv="refresh" content="0;url=password.php?up=update" />';
    161.         echo '</noscript>';
    162.     }
    163. }
    164.   function del() {
    165.     $id = ($_GET['id']);
    166.     $sql=("DELETE FROM auth WHERE id_aut='$id'");
    167.     $result=db($sql);
    168.         if (!headers_sent())
    169.         header('Location: password.php?up=update');
    170.     else {
    171.         echo '<script type="text/javascript">';
    172.         echo 'window.location.href="password.php?up=update";';
    173.         echo '</script>';
    174.         echo '<noscript>';
    175.         echo '<meta http-equiv="refresh" content="0;url=password.php?up=update" />';
    176.         echo '</noscript>';
    177.     }
    178. }
    179.     switch($_GET['up']) {
    180.  
    181.     case "update":
    182.     update();
    183.     break;
    184.  
    185.     case "new_account":
    186.     new_account ();
    187.     break;
    188.  
    189.     case "upd":
    190.     upd ();
    191.     break;
    192.  
    193.     case "del":
    194.     del ();
    195.     break;
    196.      }
    197. ?>
    198. </body>
    199. </html>
    200.  
     
  12. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    kuliev
    Запомните этот код, через два месяца Вы уже не сможете в нем разобраться.
     
  13. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    // оффтоп
    Из-за таких названий тем предвзятое отношение к автору топика. Хочется не "Посмотреть и позсказать", а "Посмотреть и послать".