UPDATE+POST

Тема в разделе "PHP", создана пользователем zagadka, 12 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. zagadka

    zagadka Создатель

    Регистр.:
    27 фев 2010
    Сообщения:
    16
    Симпатии:
    0
    Доброговремени суток.
    Нужно чтобы методам _POST , переменные редактировались и передовались в базу.
    Файл config.php содержит соединение к базе.
    $_GET['id'] - берет имя пользователя из базы.
    В чем моя ошибка, не хочет сохронять измененные переменные?!(

    PHP:
    <?php 
    include "config.php";

    if(!isset(
    $_GET['id'])) 
    echo 
    "Пользователя не существует!";
    else 
    {
    $id $myrow['userid'] ? stripslashes($_GET['id']) : $_GET['id'];

    echo 
    "Редактирование юзера " .$id;
    }
    $add mysql_query ("SELECT `passwd`,`homedir` FROM ftpuser WHERE userid='$id' "$link);
    $adds mysql_fetch_array($add);
    $login $adds['userid'] == $_POST['login'];
    $password $adds['passwd'] == $_POST['password'];
    $homedir $adds['homedir'] == $_POST['homedir'];
    if (!isset(
    $_POST['edition'])) {

    echo <<<HTML
    <form action="" method="post">
    <p>Изменить логин: <input name="login" type="text" value="
    $id" size="20"></p>
    <p>Изменить пароль: <input name="password" type="text" value="
    {$adds['passwd']}" size="20"></p>
    <p>Изменить папку: <input name="homedir" type="text" value="
    {$adds['homedir']}" size="20"></p>
    <p><input name="del_user" type="submit" value="Удалить пользователя"></p>
    <p><input name="edition" type="submit" value="Изменить данные"></p>
    </form>
    HTML;

    $result mysql_query ("UPDATE ftpuser SET userid='{$adds['userid']}', passwd='{$adds['passwd']}', homedir='{$adds['homedir']}' WHERE userid='$id'"$link);
    if (
    $result == 'true')
    {
    echo 
    "<p>Пользователь успешно откредоктирован</p>";
    }
    else
    {
    echo 
    "<p>Пользователь не откредоктирован</p>";
    }
    }
    ?>


     
  2. CnecHa3

    CnecHa3 Постоялец

    Регистр.:
    10 фев 2007
    Сообщения:
    105
    Симпатии:
    20
    PHP:
    if (!$_POST['edition']){
    echo <<<HTML
    <form action="" method="post">
    <p>Изменить логин: <input name="login" type="text" value="
    $id" size="20"></p>
    <p>Изменить пароль: <input name="password" type="text" value="
    {$adds['passwd']}" size="20"></p>
    <p>Изменить папку: <input name="homedir" type="text" value="
    {$adds['homedir']}" size="20"></p>
    <p><input name="del_user" type="submit" value="Удалить пользователя"></p>
    <p><input name="edition" type="submit" value="Изменить данные"></p>
    </form>
    HTML;
    }else{
    $result mysql_query ("UPDATE ftpuser SET userid='{$adds['userid']}', passwd='{$adds['passwd']}', homedir='{$adds['homedir']}' WHERE userid='$id'"$link);
    if (
    $result){
    echo 
    "<p>Пользователь успешно откредоктирован</p>";
    }else{
    echo 
    "<p>Пользователь не откредоктирован</p>";
    }
    }
     
    zagadka нравится это.
  3. zagadka

    zagadka Создатель

    Регистр.:
    27 фев 2010
    Сообщения:
    16
    Симпатии:
    0
    хм, всеравно не хочет.
    через switch цепляем пользователя, после редактируем, получаем что-то в этом вроди:

    index.php?mods=edit&id=admin

    при редактирование , все по старому, как быть?!
    Может быть проблема что передача в $_POST ?
     
  4. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Попробуй так:

    PHP:
      <?php 
    include "config.php";

    if(!isset(
    $_GET['id'])) 
    echo 
    "Пользователя не существует!";
    else 
    {
    $id $myrow['userid'] ? stripslashes($_GET['id']) : $_GET['id'];

    echo 
    "Редактирование юзера " .$id;
    }
    $add mysql_query ("SELECT `passwd`,`homedir` FROM ftpuser WHERE userid='$id' "$link);
    $adds mysql_fetch_array($add);
    $login $adds['userid'] == $_POST['login'];
    $password $adds['passwd'] == $_POST['password'];
    $homedir $adds['homedir'] == $_POST['homedir'];
    if (!isset(
    $_POST['edition'])) {

    echo <<<HTML
    <form action="НАЗВАНИЕ СТРАНИЦЫ" method="post">
    <p>Изменить логин: <input name="login" type="text" value="
    $id" size="20"></p>
    <p>Изменить пароль: <input name="password" type="text" value="
    {$adds['passwd']}" size="20"></p>
    <p>Изменить папку: <input name="homedir" type="text" value="
    {$adds['homedir']}" size="20"></p>
    <p><input name="del_user" type="submit" value="Удалить пользователя"></p>
    <p><input name="edition" type="submit" value="Изменить данные"></p>
    </form>
    HTML;

    if (isset(
    $_POST['login'])) 
    (
    $login $_POST['login']);
    if (isset(
    $_POST['password'])) 
    (
    $password $_POST['password']);
    if (isset(
    $_POST['homedir'])) 
    (
    $homedir $_POST['homedir']);

    $result mysql_query ("UPDATE ftpuser SET userid='$login', passwd='$password', homedir='$homedir' WHERE userid='$id'"$link);
    if (
    $result == 'true')
    {
    echo 
    "<p>Пользователь успешно откредоктирован</p>";
    }
    else
    {
    echo 
    "<p>Пользователь не откредоктирован</p>";
    }
    }
    ?> 
    <form action="НАЗВАНИЕ СТРАНИЦЫ" method="post"> - не забудь название страницы(name.php)
     
    zagadka нравится это.
  5. zagadka

    zagadka Создатель

    Регистр.:
    27 фев 2010
    Сообщения:
    16
    Симпатии:
    0
    Всем спасибо за помощь.
    Проблема была в функции switch.
    Передача данных стояло на _REQUEST , поменял на _GET и все заработало :)

    P.S после теста, в базу заносятся пустые строки, как быть? :(
     
  6. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    PHP:
    $login $_POST['login'];
    $password $_POST['password'];
    $homedir $_POST['homedir'];
    а у тебя
    PHP:
    $add mysql_query ("SELECT `passwd`,`homedir` FROM ftpuser WHERE userid='$id' "$link);
    $adds mysql_fetch_array($add);
    $login $adds['userid'] == $_POST['login'];
    $password $adds['passwd'] == $_POST['password'];
    $homedir $adds['homedir'] == $_POST['homedir'];
    Сначала выбираются строки, конешно же там нет первой нормальной записи, получаются пустые перменные, а ты при равниваешь их к переменным $login, $password, $homedir ...
     
  7. zagadka

    zagadka Создатель

    Регистр.:
    27 фев 2010
    Сообщения:
    16
    Симпатии:
    0
    Вот код:

    PHP:
     <?php 
    include "config.php";

    if(!isset(
    $_GET['id'])) 
    echo 
    "Пользователя не существует!";
    else 
    {
    $id $myrow['userid'] ? stripslashes($_GET['id']) : $_GET['id'];

    echo 
    "Редактирование юзера " .$id;
    }
    $add mysql_query ("SELECT `passwd`,`homedir` FROM ftpuser WHERE userid='$id' "$link);
    $adds mysql_fetch_array($add);
    if (!isset(
    $_POST['edition'])) {

    echo <<<HTML
    <form action="" method="post">
    <p>Изменить логин: <input name="login" type="text" value="
    $id" size="20"></p>
    <p>Изменить пароль: <input name="password" type="text" value="
    {$adds['passwd']}" size="20"></p>
    <p>Изменить папку: <input name="homedir" type="text" value="
    {$adds['homedir']}" size="20"></p>
    <p><input name="del_user" type="submit" value="Удалить пользователя"></p>
    <p><input name="edition" type="submit" value="Изменить данные"></p>
    </form>
    HTML;

    if (isset(
    $_POST['login'])) 
    (
    $login $_POST['login']);
    if (isset(
    $_POST['password'])) 
    (
    $password $_POST['password']);
    if (isset(
    $_POST['homedir'])) 
    (
    $homedir $_POST['homedir']);

    $result mysql_query ("UPDATE ftpuser SET userid='$login', passwd='$password', homedir='$homedir' WHERE userid='$id'"$link);
    if (
    $result == 'true')
    {
    echo 
    "<p>Пользователь успешно откредоктирован</p>";
    }
    else
    {
    echo 
    "<p>Пользователь не откредоктирован</p>";
    }
    }
    ?>


     
Статус темы:
Закрыта.