Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Как да създам форма за регистрация

Featured Replies

Искам да направя такава форма за регистрация, така че като потребителя не въведе нищо (или е направил някаква грешка) в някое от полетата, като даде потвърди да му излезне прозорец и да му изпише кое поле трябва да попълни. Ето пример:

registraciq.jpg

Това май се получава с javascript с функцията check_input() , но аз регистрационната форма я правя на PHP как да ги съчетая или има ли някаква друга функция, която ще ми е по-удобна? Ето примерен код от формата ми:

if(empty($name))

{

die("Не е въведено име"); //това да ми се показва в новия прозорец

}

elseif((strlen($name)<5) || (strlen($name)>50))

{

die("Невалидно име"); // ако е такава грешката това да ми се показва в новия прозорец

}

else

{

echo $name;

}

Надявам се да сте ме разбрали.

Редактирано от stanley56 (преглед на промените)

  • Отговори 65
  • Прегледи 16,2k
  • Създадено
  • Последен отговор

Потребители с най-много отговори

Искам да направя такава форма за регистрация, така че като потребителя не въведе нищо (или е направил някаква грешка) в някое от полетата, като даде потвърди да му излезне прозорец и да му изпише кое поле трябва да попълни. Ето пример:

registraciq.jpg

Това май се получава с javascript с функцията check_input() , но аз регистрационната форма я правя на PHP как да ги съчетая или има ли някаква друга функция, която ще ми е по-удобна? Ето примерен код от формата ми:

if(empty($name))

{

die("Не е въведено име"); //това да ми се показва в новия прозорец

}

elseif((strlen($name)<5) || (strlen($name)>50))

{

die("Невалидно име"); // ако е такава грешката това да ми се показва в новия прозорец

}

else

{

echo $name;

}

Надявам се да сте ме разбрали.

Смятам, че тази информация може да ти е от полза : http://developer.apple.com/internet/webcon...validation.html

  • Автор

Това е валидация чрез javascript нали така? Аз искам да го направя на PHP, ако неможе ще ми обяснители как да ги съчетая и двете неща?

Това е валидация чрез javascript нали така? Аз искам да го направя на PHP, ако неможе ще ми обяснители как да ги съчетая и двете неща?

Нали все пак ще използваш някаква форма, в която ще попълваш данните. На OnSubmit на бутона за изпращане на данните ще извикаш JavaScript функцията и ще направиш проверката за валидност. Нещо такова :

<FORM NAME="myform" ACTION="myfile.php3" METHOD="POST">

...

<INPUT TYPE="SUBMIT" VALUE="Submit" onClick="validate(this.form);">

</FORM>

Можеш просто да го направиш така:

if(empty($name))

{

die("<body onload=\"alert('Не е въведено име')\">"); //това да ми се показва в новия прозорец

}

elseif((strlen($name)<5) || (strlen($name)>50))

{

die("<body onload=\"alert('Невалидно име')\">"); // ако е такава грешката това да ми се показва в новия прозорец

}

else

{

echo $name;

}

Но тогава, за да поправи грешките, потребителят трябва да се върне назад и така някои неща като паролите например ще се загубят. Можеш също така да направиш така, че първо да се проверява с javascript и ако всичко е попълнено тогава да се post-не. Виж линка на Кен, а също и това. Ако не можеш да си го сглобиш, пиши и ще ти помогна.

Преработи това:

<?php

$self = $_SERVER['PHP_SELF'];

$send = $_POST['send'];

$name = $_POST['uname'];

echo("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />

<title>Форма за регистрация</title>

</head>

<body>

<form  action=\"$self\" method=\"post\">

<input type=\"text\" name=\"uname\" size=\"50\" value=\"$name\" />

<input type=\"submit\" name=\"send\" value=\"Изпрати\" />

</form>

</body>

</html>");

if($send){

		  if(empty($name))

		  {

		  echo("<script language=javascript>alert('Не е въведено потребителско име!')</script>");

		  }

								  elseif((strlen($name)<5) || (strlen($name)>50))

								  {

								  echo("<script language=javascript>alert('Невалидно потребителско име!')</script>"); // ако е такава грешката това да ми се показва в новия прозорец

								  }

								  else

								 {

								 echo $name;

								 }

}

?>

Редактирах скрипта, защото скрипта за преглеждане тук на kaldata, нещо не работи коректно и заменя "<" пред script, с "&lt;".

Редактирано от idiabg (преглед на промените)

  • Автор

idiabg когато буквално копирам това което си написал и след като цъкна бутона ми дава ето това:

forma.jpg

Незнам защо така. Днеска ще пробвам да го направя с javascript, обаче незнам как ще прехвърля данните в PHP и в базата данни.

А може и така:

<?php

$self = $_SERVER['PHP_SELF'];

$send = $_POST['send'];

$name = $_POST['uname'];

echo("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />

<title>Форма за регистрация</title>

</head>

<body>

<form  action=\"$self\" method=\"post\">

<input type=\"text\" name=\"uname\" size=\"50\" value=\"$name\" />

<input type=\"submit\" name=\"send\" value=\"Изпрати\" />

</form>

</body>

</html>");

if($send){

		  if(empty($name))

{

die("<script language=javascript>alert('Не е въведено потребителско име!')</script>"); //това да ми се показва в новия прозорец

}

elseif((strlen($name)<5) || (strlen($name)>50))

{

die("<script language=javascript>alert('Невалидно потребителско име!')</script>"); // ако е такава грешката това да ми се показва в новия прозорец

}

else

{

echo $name;

}

}

?>

Редактирано от idiabg (преглед на промените)

Отделно от това, редактирай си php.ini...

По-точно следния ред:

error_reporting  =  E_ALL
Направи го така:
error_reporting  =  E_ALL & ~E_NOTICE | E_STRICT

За да не ти показва забележки, за кода...

  • Автор

idalbg имам един въпрос: за какво ми служат тези редове?

$self = $_SERVER['PHP_SELF'];

$send = $_POST['send'];

$name = $_POST['uname'];

За изпращане на информацията ли?

Редактирано от complex (преглед на промените)

idalbg имам един въпрос: за какво ми служат тези редове?

$self = $_SERVER['PHP_SELF'];

$send = $_POST['send'];

$name = $_POST['uname'];
За изпращане на информацията ли и как става това?
$self = $_SERVER[’PHP_SELF’];
e запазване на името на файла, който е стартиран в момента в променливата $self. След това се изплзва като action във формата, което води за самообновяване на страницата и показване на всички елементи от предишното и състояние. Ако не се използва при функцията die(), формата няма да се покаже, само това, което е във функцията.
$send = $_POST['send'];
и
$name = $_POST['uname'];
са за удобство при работата с кода. За да не пишеш:
if($_POST['send']){

		  if(empty($_POST['name']))

		 {

			  die("<script language=javascript>alert('Не е въведено потребителско име!')</script>"); //това да ми се показва в новия прозорец

		 }

		 elseif((strlen($_POST['name'])<5) || (strlen($_POST['name'])>50))

		{

			 die("<script language=javascript>alert('Невалидно потребителско име!')</script>"); // ако е такава грешката това да ми се показва в новия прозорец

		}

		else

	   {

	   echo $_POST['name'];

	   }

}

Редактирано от idiabg (преглед на промените)

  • Автор

Ясно. Обаче как да отида на следваща страница? Аз съм свикнал да пиша формата например така:

<form name="registration" method="post" action="confirm.php" enctype="multipart/form-data">

и след като дам "Изпрати" отивам към следваща страница.

Ясно. Обаче как да отида на следваща страница? Аз съм свикнал да пиша формата например така:

<form name="registration" method="post" action="confirm.php" enctype="multipart/form-data">
и след като дам "Изпрати" отивам към следваща страница.
На последното else:
else{

	  header("Location:confirm.php");

	  }

Редактирано от idiabg (преглед на промените)

  • Автор

Силно се надявах да стане, но нещо неще да проработи, може и аз да не правя нещо правилно. Ето пример горния код:

<?php

$self = $_SERVER['PHP_SELF'];

$send = $_POST['send'];

$name = $_POST['uname'];

echo("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />

<title>Форма за регистрация</title>

</head>

<body>

<form  action=\"$self\" method=\"post\">

<input type=\"text\" name=\"uname\" size=\"50\" value=\"$name\" />

<input type=\"submit\" name=\"send\" value=\"Изпрати\" />

</form>

</body>

</html>");

if($send){

		  if(empty($name))

{

die("&lt;script language=javascript>alert('Не е въведено потребителско име!')</script>"); //това да ми се показва в новия прозорец

}

elseif((strlen($name)<5) || (strlen($name)>50))

{

die("&lt;script language=javascript>alert('Невалидно потребителско име!')</script>"); // ако е такава грешката това да ми се показва в новия прозорец

}

else{

	  header("Location:confirm.php"); // Когато цъкна "Изпрати" пак ми зарежда същата страница

}

}

//Ако го сложа тук пак се получава същото.

?>

Редактирано от complex (преглед на промените)

Според мен е много по-ефектно когато няма такива изкачащи прозорчета ерори и темподобни , по изчистено е. А и на дали някой ще натисне вход преди да си е написал потребителското име...

Според мен е много по-ефектно когато няма такива изкачащи прозорчета ерори и темподобни , по изчистено е. А и на дали някой ще натисне вход преди да си е написал потребителското име...

Недеи така :):no-no: . Знаеш ли колко хора по енерция пишат потребителското име и забравят паролата или обратното. И натискат Вход и след това се дразнат и се чудят що става така че немога да вляза.

А как се казва страницата, която трябва да зареди. Явно не е confirm.php.

  • Автор

idiabg има такава страница, пробвах и с други, които ги има но и при тях нямаше разлика. Нещо при мен тази функция не се получава изобщо. Ето например съсзадавам страница със следния код и като я отворя не ме пренасочва към abv.bg:

<?php

header('Location: http://www.abv.bg/');

?>

като натиснат вход ще се върнат... И особенно ако си си пуснал музика и си усилил , туи да ти излезе с невероятния звук на ерор пф...

  • Автор

sharpshoot3r според мен не си прав, защото например ако въведе дадена парола и натисне някой бутов в повече, след това ще се чуди защо неможе да си влезне в профила.

idiabg има такава страница, пробвах и с други, които ги има но и при тях нямаше разлика. Нещо при мен тази функция не се получава изобщо. Ето например съсзадавам страница със следния код и като я отворя не ме пренасочва към abv.bg:

<?php

header('Location: http://www.abv.bg/');

?>

Че за къде си тая функция като не ти работи!

С кое PHP си?

PHP version 5.1.2

Всъщност това моето беше глупав въпрос! angry.gif

Просто трябва да разбереш защо header() функцията не работи при теб.

Защото тя се използва много често...

Поиграй си с някои примери и виж защо не тръгва...

  • Автор

idiabg четох из интернет ама нищо неможах да направя. Ще ми покажеш ли какво имаш в предвид. Предполагам, че ако изтрия apache2triad и си инсталирам XAMPP, този проблем ще се премахне.

Абе правете логин системата да е динамична php и javascript, т.е. AJAX - http://www.jamesdam.com/ajax_login/login.html е това е яко и не се чудиш къде си сбъркал а това директно прави връзка между браузъра и сървъра и търси в базата данни и извежда резултата без да презарежда страницата. Примера е за логин система. може да се приложи и за правене на регистрации, но трябва бая да се усложни. Може би там ще е полезен с това да проверява на момента user name и e-mail. Иначе сега правя една система за регистрация и за момента единсвения ajax е прилаган при презареждане на снимката за security coda, а иначе дали има въведено име, майл, парола и другите полета дали съдържат правилна информация съм ползвал само php и чрез постване в следваща стъпка се проверяват данните и се корегират където е нужно като там се добавя ако всичко е ОК и други данни, които в трета стъпка се проверяват и накрая всичко се резюмира и ако е ок се въвежда в базата данни. После мисля да ползвам това дето ви показах по-горе и ще направя динамична форма за логин. Само трябва да моделирам някой работи и ще стане супер и даинамично и функционално и удобно и лесно :hush:

Ето системата за регистрация, на която работя. Всичко съм си писал сам и съм ползвал помощта на idiabg и Ken на които им благодаря за съветите и предложените скриптове. :yanim:

http://pmg-blg.com/onlineschool/register.php

Редактирано от m_sharky (преглед на промените)

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.