За последние 24 часа нас посетили 23708 программистов и 1556 роботов. Сейчас ищут 1243 программиста ...

редактирование личной информации, не происходит UPDATE

Тема в разделе "PHP для новичков", создана пользователем demorian, 20 янв 2011.

  1. demorian

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

    С нами с:
    25 фев 2009
    Сообщения:
    111
    Симпатии:
    0
    Здравствуйте.
    Пишу небольшой сайтик для локалки, встала необходимость в личном кабинете.
    Взял скрипт для смены password`a переписал для изменения других данных, изменил UPDATE, дебаггер ошибок не выдает, а по факту данные не обновляет. Может быть это конечно 4 часа утра, но всё же мне кажется, что я где то ошибся, тк уже 2 часа не могу найти ошибку.

    PHP:
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    2. <?
    3. mysql_connect("$db_host", "$db_user", "$db_pass") or die(mysql_error());
    4. $q = "SELECT `login`, `email`, `name`, `second_name`, `age` FROM $db.accounts WHERE login='".$_SESSION['login']."' ";
    5. $res = mysql_query($q) or die(mysql_error());
    6. $row=mysql_fetch_array($res);?>
    7. <form name="change" method="post" action="">
    8. <table border=1>
    9.     <tr>
    10.         <td wight=50%>Логин
    11.         </td>
    12.         <td wight=50%><? echo $_SESSION['login']; ?>
    13.         </td>
    14.     </tr>
    15.     <tr>   
    16.         <td wight=50%>E-Mail
    17.         </td>
    18.         <td wight=50%><input type="text" name="email" value=<? echo $row['email'];?>></input>
    19.         </td>
    20.     </tr>
    21.     <tr>   
    22.         <td wight=50%>Имя
    23.         </td>
    24.         <td wight=50%><input type="text" name="name" value=<? echo $row['name'];?>></input>
    25.         </td>
    26.     </tr>  
    27.     <tr>   
    28.         <td wight=50%>Фамилия
    29.         </td>
    30.         <td wight=50%><input type="text" name="second_name" value=<? echo $row['second_name'];?>></input>
    31.         </td>
    32.     </tr>
    33.     <tr>   
    34.         <td wight=50%>Возраст
    35.         </td>
    36.         <td wight=50%><input type="text" name="age" value=<? echo $row['age'];?>></input>
    37.         </td>
    38.     </tr>
    39. </table>
    40. <input type="submit" value="Отправить">
    41. <?
    42. $name = $_POST['name'];
    43. $email = $_POST['email'];
    44. $log = $_SESSION['name'];
    45. $second_name = $_POST['second_name'];
    46. $age = $_POST['age'];
    47. mysql_connect("$db_host", "$db_user", "$db_pass") or die(mysql_error());
    48. $query = "UPDATE accounts SET name ='$name', second_name='$second_name', email='$email', age='$age' WHERE login = '$log'";
    49. mysql_query($query) or die(mysql_error());
    50.  
    51. ?>
     
  2. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Тут туча ошибок, проблемы с безопасностью. Будь вы программистом PHP, вы бы это заметили не запуская скрипт.
     
  3. demorian

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

    С нами с:
    25 фев 2009
    Сообщения:
    111
    Симпатии:
    0
    я занимаюсь этим на любительской основе. проблемы с безопасностью я знаю, что нет никаких проверок и тд и тп, сайт ориентирован на в лучшем случае "пользуюсь кое как" пользователей. просто встала необходимость написать небольшой сайтик на 4 страницы с простенькой админкой и простым ЛК. Да и php я занимаюсь уже 2 года от случая к случаю, потому как появилась семья. а еще основная работа с которой прихожу за полночь, чтобы на жизнь заработать и сыну на смесь и памперсы. за нехваткой денег, хочу сделать этот сайт.
     
  4. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Можете ссылку тут оставить, мы зайдём, пофанимся...

    В начале скрипта добавьте, прямо с первой строки
    PHP:
    1. <?php
    2. ini_set('display_errors', 1);
    3. ?>
     
  5. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Не советую вам этим заниматься. Сайты, работающие на подобного рода коде, не пользуются большой популярностью у "пользуюсь кое как" пользователей, зато их любят юные хакеры. Так-что, вы будете очень часто восстанавливать базу данных.

    Ну а если вы делаете сайт на заказ, то заказчик может побить за такое говно и ему за это ничего не будет =/
     
  6. demorian

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

    С нами с:
    25 фев 2009
    Сообщения:
    111
    Симпатии:
    0
    Я смотрю ты остряк... следи за языком:)
    Ах да, сайт находится на vbox пока что, а потом будет доступен только из локальной сети провайдера. Так, что, я боюсь, что тебя обламаю.
     
  7. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Да, есть немного язвительности в моих словах. Мы с вами водку вместе не пили, чтобы "ТЫкать", и вообще, я могу послать вас найух, чисто из развлекательных целей. Локальные сети провайдеров всякие бывают, там и 10к пользователей может быть, я к тому что, всегда найдётся тот, кто ваш сайт вскроет и вас поимеет. И если вы хотите заработать денег на такого рода деятельности - мой вам, далеко "не медвежий", совет: делайте на совесть, иначе, ни пользователей, ни заказчиков попросту не будет.
     
  8. demorian

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

    С нами с:
    25 фев 2009
    Сообщения:
    111
    Симпатии:
    0
    всё равно, вроде всё указано правильно, даже для быдлокода...
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    строка 45
    $log = $_SESSION['name'];
    а надо
    $log = $_SESSION['login'];
     
  10. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Пользуешься массивом сессии -- значит должен в начале кода иницировать сессию

    session_start();
     
  11. demorian

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

    С нами с:
    25 фев 2009
    Сообщения:
    111
    Симпатии:
    0
    всем спасибо, правда разобрался сам про $_SESSION['login']. А session_start(); у меня забито в index.php