Вниз  PHP и мелкие вопросы
- 24.04.2012 / 21:55
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Ф форме emeilна email поменял, но все же:
Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 69

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 77

Notice: Undefined variable: name in W:\html\socart\www\reg.php on line 44

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 92

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 92

Notice: Undefined variable: surname in W:\html\socart\www\reg.php on line 45

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 98

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 98

Notice: Undefined variable: age in W:\html\socart\www\reg.php on line 46

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 104
Так понимаю с переменными $name $surname $age что-то не так(они у меня не обязательны), но почему? Вроде перед тем, как их проверять, проверяется их наличия ввода в форме:
  1. if (isset($_POST['name'])) $error_valid .=valid_name($name);
  2. if (isset($_POST['surname'])) $error_valid .=valid_surname($surname);
  3. if (isset($_POST['age'])) $error_valid .=valid_age($age);


Изменено Dinisimys1 (24.04 / 21:57) (всего 1 раз)
- 24.04.2012 / 22:03
Naik
  Пользователь

Naik 
Сейчас: Offline
Dinisimys1, Ты в preg_match() передаеш 1 аргумент, а надо 2

Изменено Naik (24.04 / 22:03) (всего 1 раз)
- 24.04.2012 / 22:07
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Удалил проверку введения данных и переместил ее в функцию.
  1. <?php
  2. $form=<<<_REG
  3. Реєстрація:<br />Символом <font color="red">*</font> відображенні поля для обов'язкового заповнення.<br />
  4. <form method="post" action="reg.php" />
  5. <b>Логін</b><font color="red">*</font>(Містить тільки символи a-z, A-Z , 1-9 , _): <input type="text" name="login" /><br /><br />
  6. <b>Пароль</b><font color="red">*</font>(Містить тільки символи a-z, A-Z , 1-9 , _): <input type="password" name="password" /><br /><br />
  7. <b>E-mail</b><font color="red">*</font>(У випадку втрати паролю, його можна буде відновити за допомогою e-meil): <input type="text" name="email" /><br /><br />
  8. Ім'я: <input type="text" name="name" /><br /><br />
  9. Прізвище: <input type="text" name="surname" /><br /><br />
  10. Вік: <input type="text" name="age" /><br /><br />
  11. <input type="hidden" name="id" />
  12. <input type="hidden" name="sumbit" value="yes" />
  13. <input type="submit" value="Реєстрація" />
  14. </form>
  15. _REG;
  16. if (isset($_SESSION['login']) && isset($_SESSION['password']))
  17. {
  18. $login=$_SESSION['login'];
  19. echo "Ви вже зайшли на сайт під логіном" . $login;
  20. echo <<<_BUTTONINPUT
  21. <form>
  22. <input type="submit" id="buttoninput" value="Назад" />
  23. </form>
  24. <script>
  25. document.getElementById('buttoninput').onclick = function()
  26. {
  27. history.back();
  28. return false;
  29. }
  30. </script>
  31. _BUTTONINPUT;
  32. }
  33. elseif (isset($_POST['sumbit']) == "yes")
  34.  {
  35. if (!isset($_POST['login'])) $error_valid='<font color="red">Поле <b>Логін</b> не повинне бути пустим.</font><br />';
  36. else $login=$_POST['login'];
  37. if (!isset($_POST['password'])) $error_valid .='<font color="red">Поле <b>Пароль</b> не повинне бути пустим.</font><br />';
  38. else $password=$_POST['password'];
  39. if (!isset($_POST['email'])) $error_valid .='<font color="red">Поле <b>E-mail</b> не повинне бути пустим.</font><br />';
  40. else $email=$_POST['email'];
  41. $error_valid =valid_login($login);
  42. $error_valid .=valid_password($password);
  43. $error_valid .=valid_email($email);
  44. $error_valid .=valid_name($name);
  45. $error_valid .=valid_surname($surname);
  46. $error_valid .=valid_age($age);
  47. if ($error_valid == "")
  48. {
  49. include_once "dbserver.php";
  50. $q="INSERT INTO 'user' VALUES ('$login', '$password', '$email', '$name', '$surname', '$age', '$id')";
  51. $q_result=mysql_query($q);
  52. mysql_close($db_server);
  53. echo "Вітаю! Реєстрація пройшла успішно.<br />";
  54. echo "Ваш логін:" . $login;
  55. echo "<br />Ваш пароль:" . $password;
  56. echo '<br /> <a href="/enter.php">Авторизація</a>';
  57. }
  58. else
  59. {
  60. echo $error_valid . "<br /><b>Пройдіть реєстрацію повторно</b><br />";
  61. echo $form;
  62. }
  63.  }
  64. else echo $form;
  65. function valid_login($error_valid)
  66. {
  67. if (4 > strlen($error_valid) && strlen($error_valid) < 15)
  68.  return '<font color="#ff0000"> В логіні повинно бути не менше 4 і не більше 15 символів</font><br />';
  69. if (preg_match("/\W/" . $error_valid))
  70. return '<font color="#ff0000">В логіні допускаються тільки символи a-z, A-Z, - , _</font><br />';
  71. return "";
  72. }
  73. function valid_password($error_valid)
  74. {
  75. if (4 > strlen($error_valid) && strlen($error_valid)< 15)
  76.  return '<font color="#ff0000">В паролі повинно бути не менше 4 і не більше 15 символів</font><br />';
  77. if (preg_match("/\W/" . $error_valid))
  78. return '<font color="#ff0000">В паролі допускаються тільки символи a-z, A-Z, - , _</font><br />';
  79. return "";
  80. }
  81. function valid_email($error_valid)
  82. {
  83. if (!((strpos($error_valid, ".") > 0) &&
  84. (strpos($error_valid, "@") > 0) ||
  85. preg_match("/[^a-zA-Z0-9.@_-]/", $error_valid))
  86. )
  87. return '<font color="#ff0000">Електронна пошта має невірний формат</font><br />';
  88. return "";
  89. }
  90. function valid_name($error_valid)
  91. {
  92. if ($error_valid == "") return "";
  93. if (preg_match("/\D/". $error_valid) || preg_match("/[^-_@]/". $error_valid))
  94. return '"<font color="#ff0000">В імені допускаються тільки символи україньського, російського або англійського алфавіту.</font><br />';
  95. return "";
  96. }
  97. function valid_surname($error_valid)
  98. {
  99. if ($error_valid == "") return "";
  100. if (preg_match("/\D/". $error_valid) || preg_match("/[^-_@]/". $error_valid))
  101. return '"<font color="#ff0000">В прізвищі допускаються тільки символи україньського, російського або англійського алфавіту.</font><br />';
  102. return "";
  103. }
  104. function valid_age($error_valid)
  105. {
  106. if ($error_valid == "") return "";
  107. if (preg_match("/\d/") . $error_valid)
  108. return '<font color="#ff0000">Поле <b>Вік</b> може містити тільки цифри</font><br />';
  109. if (9 > $error_valid || $error_valid < 80)
  110. return '<font color="#ff0000">Вік повинен бути між 9 і 80 років.</font><br />';
  111. return "";
  112. }
  113. ?>
Количество ошибок меньше:

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 69

Warning: preg_match() expects at least 2 parameters, 1 given in W:\html\socart\www\reg.php on line 77

Notice: Undefined variable: name in W:\html\socart\www\reg.php on line 44

Notice: Undefined variable: surname in W:\html\socart\www\reg.php on line 45

Notice: Undefined variable: age in W:\html\socart\www\reg.php on line 46

Notice: Undefined variable: name in W:\html\socart\www\reg.php on line 50

Notice: Undefined variable: surname in W:\html\socart\www\reg.php on line 50

Notice: Undefined variable: age in W:\html\socart\www\reg.php on line 50

Notice: Undefined variable: id in W:\html\socart\www\reg.php on line 50
Теперь сообщило о успешной реги, но в бд нет ничего
- 24.04.2012 / 22:14
TAPAHbl4
  Пользователь

TAPAHbl4 
Сейчас: Offline
А чё у тебя в регулярках не запятые, а точки?:-D
- 24.04.2012 / 22:14
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Первых две ошибки исправил, а остальные - чет не пойму в чем проблема
- 24.04.2012 / 22:15
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
TAPAHbl4 (24.04.2012/22:14)А чё у тебя в регулярках не запятые, а точки?:-DДа, я это именно исправил. В учебнику не видно было запятые, они как точки были. Вот и писал так
- 24.04.2012 / 22:16
TAPAHbl4
  Пользователь

TAPAHbl4 
Сейчас: Offline
функцию valid_name в студию
- 24.04.2012 / 22:23
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Ура, ошибок нет. Надо было просто переменные инициализировать(или как там это называется :-D )
НоБ лин в бд юзера не записывает. Еще вопрос:
Поле id записываеться в бд, но оно пустое, но в таблице я ему доп.свойство AUTO_INCREMENT присвоил. Получаеться id будет автоматическм цыфры присваиваться?
- 24.04.2012 / 22:26
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
TAPAHbl4, function valid_name($error_valid)
{
if ($error_valid == "") return "";
if (preg_match("/\D/", $error_valid) || preg_match("/[^-_@]/", $error_valid))
return '"<font color="#ff0000">В імені допускаються тільки символи україньського, російського або англійського алфавіту.</font><br />';
return "";
}
- 24.04.2012 / 22:29
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
  1. include_once "dbserver.php";
  2. $q="INSERT INTO user VALUES ('$login', '$password', '$email', '$name', '$surname', '$age', '$id')";
  3. $q_result=mysql_query($q);
  4. mysql_close($db_server);
Здесь все верно?
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)