Jump to content
  • 0

Сценарий, обрабатывающий данные из формы


i.marik.i
 Share

Question

Всем добрый день! Я сделал сценарий PHP по книге, который обрабатывает данные из формы. Не могу понять как нужно заменить все переменные на $_GET['имя_переменной'] вместо $имя_переменной, чтобы заработал сценарий. Или может быть ещё есть ошибки в самом коду? Вот код:

<?php
if ($name!=""&&$login!=""&&pass!="")
{
echo "<html> <head> <title>Регистрация успешно завершена</title> </head> <body> <h1 align=\"center\">";
echo "Вы успешно зарегистрированы на нашем сайте</h1><h2>Ваши данные:</h2> <hr> <b>Время регистрации:</b> ";
echo date ("D.m.Y H:i:s");
echo "<br> <b>ФИО:</b> $name";
echo "<br> <b>Пол:</b> ";
if ($sex="male") echo "Мужской<br>";
else echo "Женский <br>";
echo "<b>Дата рождения:</b>";
$birthday=$b_day." ".$b_month." ".$b_year;
echo "$birthday <br> <hr> <b>Логин:</b>";
echo "$login <br> <b>Пароль:</b>";
$starpass="";
for ($i=0;$i<strlen($pass);$i++) $starpass=$starpass."*";
echo "$starpass <br> <b>Адрес email:</b>";
echo "$email <br> <b>Показ адреса e-mail другим пользователям сайта:</b> ";
if(isset($show_mail)) echo "Да";
else echo "Нет";
echo "<br> <hr> <b>Увлечения:</b> ";
for ($i=0;$i<count($hobbies);$i++)
{
if ($i>0) echo ", ";
echo "$hobbies[$i]";
echo ".<br> <b>Дополнительная информация:</b>";
echo "$dop <br><hr> В дальнейшем вы сможете изменить ваши регистрационные данные, щёлкнув мышью на кнопке ";
echo "<b>Профиль</b>, главного меню сайта. А сейчас, перейдите на <a href=\"index.html\">главную странницу</a>";
echo "</body></html>";
}
else
{
if ($name=="")
{
echo "<html> <head> <title>Регистрация не выполнена</title> </head> <body>";
echo "<div align=\"center\"> Не введено ФИО. Щёлкните на ссылке \"Ввести данные\", чтобы заполнить форму снова. </div><hr>";
echo "<div align=\"center\"><a href=\"register.html\">Ввести данные</a></div></body></html>";
}
else
{
echo "<html> <head> <title>Регистрация не выполнена</title> </head> <body>";
echo "<div align=\"center\"> Не введены логин или пароль. Щёлкните на ссылке \"Ввести данные\", чтобы заполнить форму снова. </div><hr>";
echo "<div align=\"center\"><a href=\"register.html\">Ввести данные</a></div></body></html>";
}
}
?>

Edited by i.marik.i
Link to comment
Share on other sites

Recommended Posts

  • 0

1) вместо: $name != "" лучше !empty($name)

2) echo ".<br> <b>Дополнительная информация:</b>"; - после первых кавычек точка лишняя

3) если уж пользуетесь конкатенацией, то вместо: $birthday = $b_day . " " . $b_month . " " . $b_year;

сделать чуть емче и короче: $birthday = $b_day . $b_month . $b_year; да и вообще, имхо она тут лишняя

4) впредь, включайте голову хоть немножко и вывод ошибок на экран ;)

Link to comment
Share on other sites

  • 0

Может и не поможет, но попробуйте вместо:


// вывод список Увлечений
for ($i = 0; $i < count($hobbies); $i++) {
// если $i больше 0 (увлечений больше одного), то добавляем запятую
if ($i > 0) {
echo ", ";
}
// выводим увлечение
echo $hobbies[$i];
}

поставить:


Echo (count($hobbies) > 1) ? explode(', ', $hobbies) : $hobbies[0];

Всё как-от проще будет, а мож и от глюков спасёт.

Ну и форменное безобразие:


$login = isset($_GET['login']) ? strip_tags(trim($_GET['login'])) : '';
$pass = isset($_GET['pass']) ? strip_tags(trim($_GET['pass'])) : '';
$sex = isset($_GET['sex']) ? $_GET['sex'] : 0;
$b_day = isset($_GET['b_day']) ? strip_tags(trim($_GET['b_day'])) : '';
$b_month = isset($_GET['b_month']) ? strip_tags(trim($_GET['b_month'])) : '';
$b_year = isset($_GET['b_year']) ? strip_tags(trim($_GET['b_year'])) : '';
$email = isset($_GET['email']) ? strip_tags(trim($_GET['email'])) : '';
$dop = isset($_GET['dop']) ? strip_tags(trim($_GET['dop'])) : '';
$show_mail = isset($_GET['show_mail']) ? strip_tags(trim($_GET['show_mail'])) : 0;
$hobbies = isset($_GET['hobbies']) ? $_GET['hobbies'] : '';

Если для $_GET['hobbies'] это и прокатывает, хоть и безсмысленно, то для: $_GET[name], $_GET[sex], $_GET[b_day], $_GET[b_month], $_GET[b_year], $_GET[login], $_GET[pass], $_GET, $_GET[dop] - всегда будет срабатывать в пользу выполнения условия, ибо они либо отправляются с дефолтовым значением, либо пустые поэтому тут надо думать, а не тупо копировать что вам говорят(пишут).

Удачи ! Грызите дальше гранит науки!

Link to comment
Share on other sites

  • 0
всегда будет срабатывать в пользу выполнения условия, ибо они либо отправляются с дефолтовым значением, либо пустые поэтому тут надо думать,
не согласен абсолютно :) Метод GET и что получится если пользователь просто вобьёт в строке?

_http://какойтотамсайт/add_user.php

ни одной переменной не будет и убрав проверку вылезет куча проблем

Link to comment
Share on other sites

  • 0
всегда будет срабатывать в пользу выполнения условия, ибо они либо отправляются с дефолтовым значением, либо пустые поэтому тут надо думать,
не согласен абсолютно :) Метод GET и что получится если пользователь просто вобьёт в строке?

_http://какойтотамсайт/add_user.php

ни одной переменной не будет и убрав проверку вылезет куча проблем

:lol: Говорите что несогласны абсолютно, а возражаете частично :) приводя в пример редкий частный случай который при правильном подходе не должен иметь место.

Потом я не говорил, что нужно убрать проверку, я считаю, что её надо оставить и дополнить, как минимум дополнительным условием на пустоту значения

Link to comment
Share on other sites

  • 0
что её надо оставить и дополнить, как минимум дополнительным условием на пустоту значения
ну вот совместными усилиями пришли к общему мнению... :rolleyes:

И добавить не только условие на пустоту, а ещё каждый параметр проверять на свои правила валидности.. Например. Имя может состоять только из букв, а день только из цифр и от 1 до 31, а в феврале не может быть 30-го и 31-го ...... :lol:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy