Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не удаёться сохранить изменение через кнопку (submit)
 
 автор: Mithat   (05.02.2009 в 14:42)   письмо автору
 
 

Я хочу с помочью кнопки сохранить измененное в БД
так как я это не делал с помочью кнопки то у меня соответственно пошли какието косяки , сразу говарю эти два фрагмента кода находяться в одном файле


...
 <?
..
 
$name_user=$_SESSION['login']; 
$result mysql_query("SELECT * FROM ".$table_reguser." WHERE (name_user='".str_replace("'","",$name_user)."')"Connect_db());
$rows mysql_num_rows($result);
$row mysql_fetch_array($result);
 if(
$rows 0)
   {
     for(
$k=0;$k $rows;$k++)
      {
?> 
<form method=post action='profile.php?variable=edit_izm'>
<br><center><h4>Пользователь - <?echo ucwords($name_user);?></h4></center>
<table align=center cellspacing=1 cellpadding=5 width=500 border=0>
<tr class=form_blue><td align=center colspan=2><b>Регистрационная информация</b></td></tr>
    <tr class=form_red><td width=50%>Город:</td>
    <td><?=$row['city_user'];?></td></tr>
<tr class=form_red><td>URL:</td>
    <td>
<input class=input size=40 type=text name=url_user value='<?=$row['url_user'?>'</td></tr>
<tr class=form_red><td>ICQ:</td>
<td><input class=input size=40 type=text name=icq_user value='<?=$row['icq_user'?>'></td></tr>
<tr class=form_red><td>E-mail:</td>
<td><input class=input size=40 type=text name=mail_user value='<?=$row['mail_user'?>'></td></tr>
<tr class=form_red><td>Телефон:</td>
<td>    <input class=input size=40 type=text name=phone_user value='<?=$row['phone_user'?>'></td></tr>
<tr class=form_red><td>Организация:</td>
<td><input class=input size=40 type=text name=firm_user value='<?=$row['firm_user'?>'></td></tr>
<tr class=form_red valign=top><td>Информация о <?echo ucwords($name_user);?>:</td>
<td><input class=input size=40 type=text name=info_user value='<?=$row['info_user'?>'></td></tr>
<tr valign=top><td>
  </td>
<td>  

    <input type="submit" value=Сохранить&nbsp;изменения>
    <input type="hidden" value="<? $name_user ?>">
    <input type="hidden" value="<? $url_user ?>">
    <input type="hidden" value="<? $mail_user ?>">
    <input type="hidden" value="<? $phone_user ?>">
    <input type="hidden" value="<? $firm_user ?>">
    <input type="hidden" value="<? $info_user ?>">
</form>



Почему не передаеться на изменение информация или как правильно передать её


if($_GET['variable'] =="edit_izm")

$name_user=$_POST['name_user'];
if(empty($_POST['mail_user'])) links("Отсутствует заголовок");
$url_user=$_POST['url_user'];
$mail_user=$_POST['mail_user'];
$phone_user=$_POST['phone_user'];
$firm_user=$_POST['firm_user'];
$info_user=$_POST['info_user'];

 $query = "UPDATE user_info SET mail_user='".$_POST['mail_user']."',
                            icq_user='".$_POST['icq_user']."',
                            phone_user='".$_POST['phone_user']."',
                            firm_user ='".$_POST['firm_user']."',
                info_user ='".$_POST['info_user']."',
                        WHERE name_user =".$_POST['name_user'];


if(mysql_query($query)) 
header("Location: profile.php?variable=profile&login=".$_SESSION['Login']);
else links("Ошибка  (база данных)");

       }

  Ответить  
 
 автор: reda   (05.02.2009 в 14:45)   письмо автору
 
   для: Mithat   (05.02.2009 в 14:42)
 

что такое <?=$xxx?> ??
мб просто <?php $xxx; ?>


<input type="hidden" value="<? $name_user ?>">
<input type="hidden" value="<? $url_user ?>">
<input type="hidden" value="<? $mail_user ?>">
<input type="hidden" value="<? $phone_user ?>">
<input type="hidden" value="<? $firm_user ?>">
<input type="hidden" value="<? $info_user ?>">



?????? должно быть echo



плохо понятно, твой файл - форма обрабатывает БД ? пробуй после того как echo проставишь,на более простой выборки из ,например проставь известные id в обращении к БД,значения, а то месяц компилировать будешь. и зачем тебе сессия ща. session_start (); стоит? я просто для начала бы всё максимум упростил в файле, потом усложнял бы сессиями и т.д.

  Ответить  
 
 автор: Mithat   (05.02.2009 в 16:06)   письмо автору
 
   для: reda   (05.02.2009 в 14:45)
 

<input class=input size=40 type=text name=phone_user value='<?=$row['phone_user'?>'>

Это значит значит что поле $row['phone_user'] передаеться в phone_user и может редактироваться , а насчет ссесиии это вообще изменинение личных данных , просто я с кнопкой
некогда не работал , а так я сам по примеру попытался сделать (((

$name_user=$_SESSION['login'];  
$result = mysql_query("SELECT * FROM ".$table_reguser." WHERE (name_user='".str_replace("'","",$name_user)."')", Connect_db()); 
$rows = mysql_num_rows($result); 
$row = mysql_fetch_array($result); 
 if($rows > 0) 
   { 
     for($k=0;$k < $rows;$k++) 
      { 
?>  
<form method=post action='profile.php?variable=edit_izm'> 
<br><center><h4>Пользователь - <?echo ucwords($name_user);?></h4></center> 
<table align=center cellspacing=1 cellpadding=5 width=500 border=0> 
<tr class=form_blue><td align=center colspan=2><b>Регистрационная информация</b></td></tr> 
    <tr class=form_red><td width=50%>Город:</td> 
    <td><?=$row['city_user'];?></td></tr> 
<tr class=form_red><td>URL:</td> 
    <td> 
<input class=input size=40 type=text name=url_user value='<?=$row['url_user'?>'</td></tr> 
<tr class=form_red><td>ICQ:</td> 
<td><input class=input size=40 type=text name=icq_user value='<?=$row['icq_user'?>'></td></tr> 
<tr class=form_red><td>E-mail:</td> 
<td><input class=input size=40 type=text name=mail_user value='<?=$row['mail_user'?>'></td></tr> 
<tr class=form_red><td>Телефон:</td> 
<td>    <input class=input size=40 type=text name=phone_user value='<?=$row['phone_user'?>'></td></tr> 
<tr class=form_red><td>Организация:</td> 
<td><input class=input size=40 type=text name=firm_user value='<?=$row['firm_user'?>'></td></tr> 
<tr class=form_red valign=top><td>Информация о <?echo ucwords($name_user);?>:</td> 
<td><input class=input size=40 type=text name=info_user value='<?=$row['info_user'?>'></td></tr> 
<tr valign=top><td> 
  </td> 
<td>   

    <input type="submit" value=Сохранить&nbsp;изменения> 
    <input type="hidden" value="<? $name_user ?>"> 
    <input type="hidden" value="<? $url_user ?>"> 
    <input type="hidden" value="<? $mail_user ?>"> 
    <input type="hidden" value="<? $phone_user ?>"> 
    <input type="hidden" value="<? $firm_user ?>"> 
    <input type="hidden" value="<? $info_user ?>"> 
</form> 



Или можешь дать пример , который изменяет информацию через кнопку

  Ответить  
 
 автор: reda   (05.02.2009 в 17:57)   письмо автору
1.5 Кб
 
   для: Mithat   (05.02.2009 в 16:06)
 

вот
форма:

<form action="admin.php" method="post">
<input name="login" type="text" size="15" maxlength="20">
<br>
<input name="pass" type="password" size="15" maxlength="20">
<br><br>
<input name="waspressed" type="submit" id="waspressed" value="Войти">
</form>



обработчик:

<?php
session_start();
if(isset($_POST['login'])) { $login = $_POST['login']; $login = stripslashes($login); $login = htmlspecialchars($login); $_SESSION['name'] = $login; if(empty($login)){ echo "Не был введён Логин!<p><a href='index.php'>Заново</a></p>"; $fail = 1;}}
if(isset($_POST['pass'])) { $pass = $_POST['pass']; $pass = stripslashes($pass); $pass = htmlspecialchars($pass); $_SESSION['pasw'] = $pass; if(empty($pass)){ echo "Не был введён пароль!<p><a href='index.php'>Заново</a></p>"; $fail = 1;}}

if(!$_SESSION) { header("Location: http://https.su/admin"); }

$aut000 = mysql_query("SELECT login, pass FROM adm_user WHERE login='".$_SESSION['name']."'",$db);
$aut = mysql_fetch_array($aut000);

if($aut == NULL) {echo "Неправильно введены пароль или логин."; exit();}
else {
if($_SESSION['name'] == $aut['login'] && $_SESSION['pasw'] == $aut['pass'])
{
echo "Вы вошли в администраторский раздел, как ".$_SESSION['name']."<br>";
} else {
echo "Пароль или логин неправельные! Попробуйте снова!"; if($fail != 1) {echo "<p><a href='index.php'>Обратно...</a>"; exit(); } }}
?>


если посмотришь, то суть в том что "переменная" передаваемая через форму text записывается в параметре "name". а в форме hidden через параметр value но он обычно равен в такойм формате value"<?php echo $xxx; ?>"

файл идёт в обработчик , дальше следует header() на форму обратно если нужно


в файле обработчике обязательно нужна запись, которая "вытаскивает" переменную на обработку.
вот такая if(isset($_POST['назв.переменной без $ из формы , где name']) { $xxx = $_POST['назв.переменной без $ из формы , где name']; }
под переменной $xxx тут имею ввиду уже переменную равную переменной из формы под name="xxxform"

и всё. ты эту переменку обрабатываешь в свою БД.

а что касается кнопки, то на одну форму обработки <form></form> лучше только одну кнопку со значением submit . и всё. на счёт кнопки парится не надо, только главное что бы она просто была и с параметром submit

и переменная конпки тебе не нужна. хотя , есть случчии, когда нужна проверка что она нажата.... это примерно так if(isset($namebutton));{} где $namebutton тоже надо передавать методом $_POST. но тебе тут пока она не нужна.


если попроше, без БД, то ты сам можешь посмотреть что как, я файл прикрепил с архивом check.rar , там 2 файла, файл str.php должен идти первым при открытии

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования