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
  On 1/18/2012 at 7:55 AM, LunatiK said:

Выложите куда-нить свой add_user.php

На сайте показывает результат. :)http://www.imariki.hop.ru/register.html Осталось только разобраться с своим локальным сервером.

Link to comment
Share on other sites

  • 0
  On 1/19/2012 at 4:18 AM, Gold Dragon said:

сделай домен нормальный и проверь... типа http://test.qqq

а лучше выполни этот код в том месте где у тебя файлы

<?php
phpinfo();
?>

что он вообще показывает?

pic.gif

Link to comment
Share on other sites

  • 0
  On 1/20/2012 at 11:50 AM, i.marik.i said:
  On 1/20/2012 at 10:01 AM, LunatiK said:

Ссылка не рабочая

Эта ссылка надеюсь будет работать:

http://marks.times.lv/phpinfo.zip

Я думал там будет add_user.php , а в html'ке смысла нет

Link to comment
Share on other sites

  • 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
  Quote
всегда будет срабатывать в пользу выполнения условия, ибо они либо отправляются с дефолтовым значением, либо пустые поэтому тут надо думать,
не согласен абсолютно :) Метод GET и что получится если пользователь просто вобьёт в строке?

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

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

Link to comment
Share on other sites

  • 0
  On 1/26/2012 at 5:29 AM, Gold Dragon said:
  Quote
всегда будет срабатывать в пользу выполнения условия, ибо они либо отправляются с дефолтовым значением, либо пустые поэтому тут надо думать,
не согласен абсолютно :) Метод GET и что получится если пользователь просто вобьёт в строке?

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

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

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

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

Link to comment
Share on other sites

  • 0
  Quote
что её надо оставить и дополнить, как минимум дополнительным условием на пустоту значения
ну вот совместными усилиями пришли к общему мнению... :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

  • Обсуждения

    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ    
    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com   Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ   Портфолио https://www.behance.net/d4d4186e
    • Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение.  .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }  
    • Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
×
×
  • 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