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

Форум MySQL

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

 

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

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

тема: Parse error: syntax error
 
 автор: TrunK   (02.05.2005 в 17:51)   письмо автору
 
 


<?php
     $dblocation 
"localhost"
     
$dbname "indep"
     
$dbuser "root"
     
$dbpassword "";   
     
$connect mysql_connect($dblocation$dbuser$dbpassword) OR DIE("Не могу создать соединение ");  ; 
     @
mysql_select_db($dbname$connect) or die("Не могу выбрать базу данных "); 
     
$login htmlspecialchars($login);
     
$passw htmlspecialshars($passw);
     if (
preg_match("/[0-9a-z_], $login))
{
     echo " 
<HTML><head>
     <
META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
     <
title>Ошибка></title>
     <
body bgcolor=black text=white>
     <
align=left>
     
Ошибка...
     </
align></body></html";
     exit();
}
     if (empty(
$login)) 
{
     echo '<HTML><head>
     <META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
     <title>Ошибка></title>
     <body bgcolor=black text=white>
     <align=left>
     Ошибка! Возможные причины: <br>
     - Вы не ввели имя.<br>
     </align></body></html> ';
}
     if(empty(
$passw) || empty($passw2) || $passw != $passw2)
{
     echo "
<html><head>
     <
META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
     <
titleОшибка</title>
     <
body bgcolor=black text=white>
     <
align=left>
     - 
Вы ошиблись при введении повторного пароля!<br>
     </
align></body></html>";
     exit();
}
     
     
$result=mysql_query ("SELECT FROM users WHERE login like '$login' ");
     if(!
$result) exit("Ошибка ".mysql_error()); 
     if (mysql_num_rows(
$result) >0)


     echo "
<HTML><head>
     <
META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
     <
TITLE>Ошибка.</TITLE>
     <
body bgcolor=black text=white>
     <
align=left>
      - 
Пользователь с таким ником уже зарегистрированПридумайте себе другой ник.<br>
      </
align>
      </
body>
      </
html>"; 
}
else
{
$ins= "insert into users values ('','$login','$passw','','');";
mysql_query(
$ins);
$result=mysql_query($ins);
if(
$result)
{
echo "
<html>
<
head><META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.htm'></head>
<
body bgcolor=black text=white>
Регистрация прошла успешноТеперь вы можете зайти!
</
body></html>";
}
}
?>

С этим скриптом произошли какие-то непонятности... Как только его написал и начал тестить - всё работало на "ура"! Потом через некоторое время опять начал пробывать, пишет:

Parse error: syntax error, unexpected '>' in c:\www\ind\registr.php on line 13

Если удаляю эту строчку - пишет ошибка в другой строчке, но из-за того же символа (>)! Просто не понимаю...
И ещё, может подскажите, почему этот скрипт заносит в БД значения 2(!) раза!

   
 
 автор: Artem S.   (02.05.2005 в 18:15)   письмо автору
 
   для: TrunK   (02.05.2005 в 17:51)
 

пропущена " в if (preg_match("/[0-9a-z_], $login))
надо так
<?
if (preg_match("/[0-9a-z_]/"$login)) 
?>

   
 
 автор: TrunK   (02.05.2005 в 18:59)   письмо автору
 
   для: Artem S.   (02.05.2005 в 18:15)
 

Спасибо! Помогло!
Но осталась проблема двойного заноса в БД... Прям не знаю что делать!

   
 
 автор: Serge   (02.05.2005 в 19:30)   письмо автору
 
   для: TrunK   (02.05.2005 в 18:59)
 

Попробуй следующий код, все должно работать:

<?php

$dblocation 
"localhost";
$dbname "indep";
$dbuser "root";
$dbpassword "";

$connect mysql_connect($dblocation$dbuser$dbpassword) OR DIE("Не могу создать соединение ");  ;
@
mysql_select_db($dbname$connect) or die("Не могу выбрать базу данных ");
$login htmlspecialchars($login);
$passw htmlspecialchars($passw);

$result=mysql_query ("SELECT * FROM users WHERE login like '$login' ");
if(!
$result) exit("Ошибка - ".mysql_error());

if (
preg_match("/[0-9a-z_]/"$login))
  {
  echo 
"<HTML><head>
  <META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
  <title>Ошибка></title>
  <body bgcolor=black text=white>
  <align=left>
  Ошибка...
  </align></body></html>"
;
  exit();
  }
  elseif (empty(
$login))
  {
  echo 
"<HTML><head>
  <META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
  <title>Ошибка></title>
  <body bgcolor=black text=white>
  <align=left>
  Ошибка! Возможные причины: <br>
  - Вы не ввели имя.<br>
  </align></body></html>"
;
  }
  elseif (empty(
$passw) || empty($passw2) || $passw != $passw2)
  {
  echo 
"<html><head>
  <META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
  <title> Ошибка</title>
  <body bgcolor=black text=white>
  <align=left>
  - Вы ошиблись при введении повторного пароля!<br>
  </align></body></html>"
;
  exit();
  }
  elseif (
mysql_num_rows($result)>0)
  {
  echo 
"<HTML><head>
  <META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
  <TITLE>Ошибка.</TITLE>
  <body bgcolor=black text=white>
  <align=left>
  - Пользователь с таким ником уже зарегистрирован! Придумайте себе другой ник.<br>
  </align>
  </body>
  </html>"
;
  }
  else
  {
  
$ins"insert into users values ('','$login','$passw','','');";
  
mysql_query($ins);
  
$result=mysql_query($ins);

  echo 
"<html>
  <head><META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.htm'></head>
  <body bgcolor=black text=white>
  Регистрация прошла успешно! Теперь вы можете зайти!
  </body></html>"
;
  }
?>

   
 
 автор: TrunK   (02.05.2005 в 19:36)   письмо автору
 
   для: Serge   (02.05.2005 в 19:30)
 

Таже проблема... Заносит 2 одинаковых значения в таблицу!

   
 
 автор: Serge   (02.05.2005 в 19:40)   письмо автору
 
   для: TrunK   (02.05.2005 в 19:36)
 

Прости, я проглядел: ошибка в

mysql_query($ins);
$result=mysql_query($ins);

2 раза повторяется запрос к базе данных, а надо 1. Удали любой из запросов.

   
 
 автор: TrunK   (02.05.2005 в 19:42)   письмо автору
 
   для: Serge   (02.05.2005 в 19:40)
 

Огромное человеческое спасибо! все работает как надо...

   
 
 автор: TrunK   (02.05.2005 в 19:45)   письмо автору
 
   для: TrunK   (02.05.2005 в 19:42)
 

Пока вспомнил ещё одну проблему:
Если будет русский логин или пароль, то в таблицу заносятся всякие нечитаемые символы. Может ты мне подскажешь что надо сделать?

   
 
 автор: Serge   (02.05.2005 в 21:51)   письмо автору
 
   для: TrunK   (02.05.2005 в 19:45)
 

Над каждым запросом пропиши такую строчку

mysql_query ("SET NAMES cp1251;");

Тогда запрос примет следующий вид:

mysql_query ("SET NAMES cp1251;");
$ins= "insert into users values ('','$login','$passw','','');"; 

   
Rambler's Top100
вверх

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