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

Форум PHP

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

 

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

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

тема: Обработчик
 
 автор: uvajs   (14.08.2010 в 23:45)   письмо автору
 
 

Здравствуйте! задача такая: на сайте есть пункт "изменить личные данные пользователя" на странице page.php



<?php 
session_start
();
include (
"block/bd.php");
if (isset(
$_POST['submit'])) {$submit $_POST['submit'];}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Редактирование персональных данных</title>
<link href="style.css" rel="stylesheet" type="text/css">
<link href="style2.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/swfobject.js"></script>
<link rel="icon" href="http://engells.com/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="http://engells.com/favicon.ico" type="image/x-icon">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
<?php include("block/header.php");?>
  </tr>
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
<?php include("block/left_td.php");?>
        <td valign="top">
        
        
 
<?php


 
if (isset($_GET['id'])) {$id $_GET['id']; } 
else
{ exit(
"Вы зашил на страницу без параметра!");} 
if (!
preg_match("|^[\d]+$|"$id)) {
die(
"<p>Неверный формат запроса! Проверьте URL</p>");
}

if (!empty(
$_SESSION['login']) and !empty($_SESSION['password']))
{

$login $_SESSION['login'];
$password $_SESSION['password'];
$result2 mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); 
$myrow2 mysql_fetch_array($result2); 
if (empty(
$myrow2['id']))
   {
   
    exit(
"Эта страница доступна только для зарегистрированных посетителей.");
   }
}
else {
    include(
"error_user.php");
exit(); }
$result mysql_query("SELECT * FROM users WHERE id='$id'",$db); 
$myrow mysql_fetch_array($result);

if (empty(
$myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} 

if (isset(
$id))
{


 echo 
"<div class='q'><p class='reg_update'>Редактирование персональных данных</p></div>";     

print <<<HERE
        <div class="lesspec">
        <div align="center" class="autorised">
        <a name="topn" id="#topn"></a>
        <form action="update_user.php" method="post">
        <fieldset><legend class='inputtext'>Сменить логин</legend>
        <span class='inputtext'>Ваш логин: <strong>
$myrow[login]</strong></span><br />
        <br />
        <span class='inputtext'> Новый логин: </span><input name="login" type="text" size="40" maxlength="40" id="login" class="text_edit" />
        <span class='inputtext'><br />*А-я, A-z, от 2 до 20 букв</span><br />
        <div style="margin-bottom:5px;"></div>
        <input class="formbutton" type='submit' name='submit' value='изменить'>
        </fieldset>
        </form>
        
        <br>

        <form action="update_user.php" method="post">
        <fieldset><legend class='inputtext'>Сменить Ваше имя</legend>
        <span class='inputtext'>Ваше имя: <strong>
$myrow[name]</strong></span><br />
        <br />
        <span class='inputtext'> Новое имя: </span><input name="name" type="text" size="40" maxlength="40" id="name" class="text_edit" />
        <span class='inputtext'><br />*А-я, A-z, от 3 до 15 букв</span><br />
        <div style="margin-bottom:5px;"></div>
        <input class="formbutton" type='submit' name='submit' value='изменить'>
        </fieldset>
        </form>

<br>

        <form action="update_user.php" method="post">
        <fieldset><legend class='inputtext'>Изменить пароль</legend>
        <br />
        <span class='inputtext'> Новый пароль: </span><input name="password" type="text" size="40" maxlength="40" id="login" class="text_edit" />
        <span class='inputtext'><br />*А-я, A-z, от 3 до 15 букв</span><br />
        <div style="margin-bottom:5px;"></div>
        <input class="formbutton" type='submit' name='submit' value='изменить'>
        </fieldset>
        </form>
<br>


        <form action="update_user.php" method="post">
        <fieldset><legend class='inputtext'>Изменить email</legend>
        <span class='inputtext'>Ваш логин: <strong>
$myrow[email]</strong></span><br />
        <br />
        <span class='inputtext'> Новый email: </span><input name="email" type="text" size="40" maxlength="40" id="login" class="text_edit" />

        <div style="margin-bottom:5px;"></div>
        <input class="formbutton" type='submit' name='submit' value='изменить'>
        </fieldset>
        </form>

<br>

        <form action="update_user.php" method="post" enctype='multipart/form-data'>
        <fieldset><legend class='inputtext'>Аватар</legend>
        <span class='inputtext'>Ваш аватар:<br>
        <img alt='аватар' src='
$myrow[avatar]'><br />
        <br />
        <span class='inputtext'>Изменить аватар: </span><input type="FILE" name="fupload" style='margin:0px; padding:0px; border: 1px #c1c1c1 solid; font-family: Verdana; font-size: 12px; width:160px; color:#424242; margin-bottom:2px;'>
        <span class='inputtext'Изображение должно быть формата jpg, gif или png.</span>
         <div style="margin-bottom:5px;"></div>
        <input class="formbutton" type='submit' name='submit' value='Загрузить'>
        </fieldset>
        </form>
        </div></div></div></div>

HERE;
}

?>

            
            

      </td>
<?php include("block/right_td.php");?>
      </tr>
    </table></td>
  </tr>
  <tr>
<?php include("block/footer.php");?>
  </tr>
</table>
</body>
</html>


а за обработчик отвечает файл update_user.php

я бы хотел сделать обработчик на том же файле, page.php

подскажите пожалуйста, как это сделать, т.е. как прописать проверку?

  Ответить  
 
 автор: uvajs   (15.08.2010 в 18:44)   письмо автору
 
   для: uvajs   (14.08.2010 в 23:45)
 

люди помогите

  Ответить  
 
 автор: tvv123456   (15.08.2010 в 20:45)   письмо автору
 
   для: uvajs   (15.08.2010 в 18:44)
 

НУ в самом начале скрипта делаешь проверку какая кнопка была нажата(допустим if(isset($_POST['submit']) дальше в этом блоке производишь нужные операции, формируешь сообщение о результатах работ,(формируешь страницу и завершаешь скрипт(exit) или даешь ему дальше выводить формы, вообщем все зависит от задачи

  Ответить  
 
 автор: nikita2206   (15.08.2010 в 20:48)   письмо автору
 
   для: uvajs   (15.08.2010 в 18:44)
 

Попова попроси.

  Ответить  
 
 автор: uvajs   (15.08.2010 в 21:22)   письмо автору
 
   для: nikita2206   (15.08.2010 в 20:48)
 

>Попова попроси.

не знаешь, просто молчи! завесть это....!

  Ответить  
 
 автор: nikita2206   (15.08.2010 в 21:25)   письмо автору
 
   для: uvajs   (15.08.2010 в 21:22)
 

Ты думаешь я не знаю? Думаешь завидую? Ха

  Ответить  
 
 автор: uvajs   (15.08.2010 в 22:43)   письмо автору
 
   для: nikita2206   (15.08.2010 в 21:25)
 

>Ты думаешь я не знаю? Думаешь завидую? Ха

если нет, то проигнорируй тему и все.

  Ответить  
 
 автор: sim5   (15.08.2010 в 21:33)   письмо автору
 
   для: uvajs   (14.08.2010 в 23:45)
 

А зачем это у вас на каждое поле своя форма, вам что одной мало?

  Ответить  
 
 автор: uvajs   (15.08.2010 в 22:46)   письмо автору
 
   для: sim5   (15.08.2010 в 21:33)
 

>А зачем это у вас на каждое поле своя форма, вам что одной мало?

так надо.

  Ответить  
 
 автор: tvv123456   (16.08.2010 в 00:26)   письмо автору
 
   для: uvajs   (15.08.2010 в 22:46)
 

>так надо.

НУ тогда кнопкам хоть бы разные именна давали, чтобы знать что именно было нажато :), ну а принцип я написал в первом овтете, осталось только на php перенести

  Ответить  
 
 автор: Slo_Nik   (16.08.2010 в 00:42)   письмо автору
 
   для: uvajs   (15.08.2010 в 22:46)
 

ну это не ответ. если Вы создали столько форм на одной странице, то поделитесь, пожалуйста, своими соображениями по этому поводу.

  Ответить  
 
 автор: uvajs   (16.08.2010 в 03:08)   письмо автору
13.9 Кб
 
   для: Slo_Nik   (16.08.2010 в 00:42)
 

>ну это не ответ. если Вы создали столько форм на одной странице, то поделитесь, пожалуйста, своими соображениями по этому поводу.

просто сделал так, посмотрите пример:

  Ответить  
 
 автор: Slo_Nik   (16.08.2010 в 10:16)   письмо автору
 
   для: uvajs   (16.08.2010 в 03:08)
 

>просто сделал так, посмотрите пример:

понимаю, что просто, но если пользователю надо будет изменить более одного параметра?

  Ответить  
 
 автор: uvajs   (16.08.2010 в 13:31)   письмо автору
 
   для: Slo_Nik   (16.08.2010 в 10:16)
 

>понимаю, что просто, но если пользователю надо будет изменить более одного параметра?

по одному параметру

  Ответить  
 
 автор: sim5   (16.08.2010 в 13:37)   письмо автору
 
   для: uvajs   (16.08.2010 в 13:31)
 

Это и плохо, ради красоты, в кавычках, доставлять неудобство пользователю. К тому же, ради дизайна иметь кучу форм, это не оправдано, так как и одну форму (пусть с несколькими кнопками submit) можно также разукрасить.

  Ответить  
 
 автор: uvajs   (16.08.2010 в 14:20)   письмо автору
 
   для: sim5   (16.08.2010 в 13:37)
 

> так как и одну форму (пусть с несколькими кнопками submit) можно также разукрасить.

а в этом случаи будет какая разница? рас все равно несколько кнопок...

  Ответить  
 
 автор: sim5   (16.08.2010 в 14:24)   письмо автору
 
   для: uvajs   (16.08.2010 в 14:20)
 

Конечно будет. Вот только не стройте козней пользователю, дайте ему возможность сразу все изменять, одним запросом, а то материть вас будут, и правильно....

  Ответить  
 
 автор: Slo_Nik   (16.08.2010 в 14:12)   письмо автору
 
   для: uvajs   (16.08.2010 в 13:31)
 

Этим Вы отталкиваете пользователя, а надо стремится к тому, что бы пользователю было удобно изменять свои данные.
Сделайте это одной формой, один input типа submit, так будет гораздо лучше.
Ну а если Вы всё таки хотите несколько кнопок, то обратите своё внимание к javascript/ jquery

  Ответить  
 
 автор: nikita2206   (16.08.2010 в 13:44)   письмо автору
 
   для: uvajs   (16.08.2010 в 03:08)
 

"Ваш пароль: 012603" - то-есть вот так вот говоришь пароль?
"*А-я, A-z, от 3 до 15 букв" (это тоже про пароль) - зачем? Зачем ограничивать пользователя, мало того что в длине пароля, так еще и в допустимых символах?

  Ответить  
 
 автор: sim5   (16.08.2010 в 04:18)   письмо автору
 
   для: uvajs   (15.08.2010 в 22:46)
 

Ужас, другого и не скажешь.

  Ответить  
 
 автор: Nextia   (16.08.2010 в 03:20)   письмо автору
 
   для: uvajs   (14.08.2010 в 23:45)
 

наверное чисто в рабочем плане, я бы всё-таки отрезала сами обработчики от форм.
Это несколько облегчило бы работу, да и на сервере такой вариант обрабатывается куда быстрее..
затем проверяла бы поле на заполненность, если поле заполнено-проверяем чем заполнено. Если все правильно в форме №1 - включаем в текст форму 2 и т.д. в конце бы все преобразовала в локальные переменные из сессионных и обработала.Кстати, а где сессию закрывать планируете?

  Ответить  
 
 автор: uvajs   (16.08.2010 в 03:58)   письмо автору
 
   для: Nextia   (16.08.2010 в 03:20)
 

>Кстати, а где сессию закрывать планируете?

не совсем я вас понял, а зачем зарыть сессию?

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

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