[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Исправить
Xpund
Вот код, вот такая ошибка:
HTML
Parse error: syntax error, unexpected '>' in /home/xpund/public_html/register.php on line 100
Просьба подсказать!!!


PHP
<?


$array_error = array();
if(isset(
$_POST['registr']))

if(!
$logins)  
$array_error[0] = "Вы не написали логин.";


if(empty(
$passwords) || empty($rpasswords) || $passwords != $rpasswords)
$array_error[1] = "Пароли не совподают.";
elseif(
$passwords && strlen($passwords) < 6
$array_error[2] = "Длина пароля меньше 8 символов.";

if(!
$email)  
$array_error[3] = "Вы не написали E-mail."
elseif(!
preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/",$email) && $email
$array_error[4] = "E-mail написан не корректно";


if(!
$name)  
$array_error[5] = "Вы не написали имя.";
if(!
$fameli)  
$array_error[6] = "Вы не написали фамилию.";




include 
"config.php";



if(isset(
$_POST['logins'])) {$logins $_POST['logins'];}
if(isset(
$_POST['passwords'])) {$passwords $_POST['passwords'];}
if(isset(
$_POST['rpasswords'])) {$rpasswords $_POST['rpasswords'];}
if(isset(
$_POST['email'])) {$email $_POST['email'];}
if(isset(
$_POST['name'])) {$name $_POST['name'];}
if(isset(
$_POST['fameli'])) {$fameli $_POST['fameli'];}





//Удаление пробелов  
$logins trim($logins);  
$passwords trim($passwords);  
$rpasswords trim($rpasswords); 
$email trim($email);  
$name trim($name);  
$fameli trim($fameli); 





//Осуществляем регистарацию
//Генерируем uniq_id
$uniq_id md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].mktime());
$passwords $_POST['passwords'];
$email $_POST['email'];

$reg = @mysql_query("INSERT INTO userlist VALUES(NULL,'".strtolower($logins)."','".md5($passwords)."','".$email."','".$name."','".$fameli."','".$uniq_id."','".date("dmY")."')");
if(
$reg) {

// Для отправки e-mail в виде HTML устанавливаем необходимый mime-тип и кодировку
$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=windows-1251' "\r\n";

// Откуда пришло
$headers .= 'From:Сайт %sitename%' "\r\n";

//Здесь укажите электронный адрес, куда будут уходить сообщения
$mailto $email;
$subject "Подтверждение регистарции на сайте";
$message 'Для активации аккаунта пройдите по следующей ссылке <a href="http://xpund.byethost4.com/register.php?

activation='
.$uniq_id.'" target="_blank">http://xpund.byethost4.com/register.php?activation='.$uniq_id.'</a>';
$message .= 'или скопируйте ссылку в окно ввода адреса браузера и нажмите enter.';
//Отправляем сообщение
if(sendmail($mailto,$subject,$message,$headers) !== FALSE)
{echo 
'Регистрация завершена, на введеный Вами e-mail было отправлено сообщение для активации аккаунта';}



//Модуль отвечающий за активацию аккаунта

if($_GET['activation'] AND $_GET['activation']!='') {

$uniq_id $_GET['activation'];
//Создаем запрос
$r=@mysql_query("UPDATE userlist SET status=1 WHERE uniq_id='".$uniq_id."' AND status=0");
if(
$r) {echo '<h2>Ваша учетная запись активирована.</h2><br/> Теперь вы можете <a href="index.php">войти на сайт</a> используя данные указанные при регистрации';}

else {echo 
'Активация невозможна: профиль уже активирован';}

}
exit;

>






Спустя 22 минуты, 11 секунд (28.04.2009 - 20:17) vasa_c написал(а):
Подсказываю: unexpected '>' on line 100

Спустя 2 часа, 22 минуты, 54 секунды (28.04.2009 - 22:40) jetistyum написал(а):
Логично. Лаконично.

Спустя 1 час, 16 минут, 38 секунд (28.04.2009 - 23:57) sergeiss написал(а):
Как "главный телепат форума" wink.gif подсказываю:
Цитата (Xpund @ 28.04.2009 - 19:55)
else {echo 'Активация невозможна: профиль уже активирован';}

}
exit;

>

Тут перед угловой скобкой, которая через 2 строки после exit, надо поставить знак вопроса (?). Это и есть текущая проблема.



Плюс к этому есть другая проблема (тут возможна SQL-инъекция), и не только в этом месте. Приведенный пример является только одним из проблемных мест:
Цитата (Xpund @ 28.04.2009 - 19:55)
$uniq_id = $_GET['activation'];
//Создаем запрос
$r=@mysql_query("UPDATE userlist SET status=1 WHERE uniq_id='".$uniq_id."' AND status=0");


Ну, и еще несколько примечаний:
Блок определения переменных и удаления переменных
PHP
if(isset($_POST['logins'])) {$logins $_POST['logins'];}
if(isset(
$_POST['passwords'])) {$passwords $_POST['passwords'];}
...

должен находиться в самом начале, ДО ПЕРВОГО ИСПОЛЬЗОВАНИЯ любой переменной из этого блока.

При этом можно объединить 2 действия:
PHP
if(isset($_POST['logins'])) $logins trim($_POST['logins']);



Затем. В строках вида
PHP
if(isset($_POST['passwords'])) {$passwords $_POST['passwords'];}
// или
else {echo 'Активация невозможна: профиль уже активирован';}

Не нужно (!!!) писать фигурные скобки. Хуже не будет, но это излишество. Скобки нужны для формирования блока, если в блоке более одного оператора или вызова функции.

Спустя 14 часов, 50 минут, 4 секунды (29.04.2009 - 14:47) jetistyum написал(а):
Офтоп перенес в отдельную ветку:
http://phpforum.ru/index.php?showtopic=176...t=0&#entry96568

Спустя 4 часа, 27 минут, 53 секунды (29.04.2009 - 19:15) Xpund написал(а):

Опять неполучается


Выходит вот что:

Код
http://xpund.byethost4.com/register.php?activation='.$uniq_id.'; $message .= 'или скопируйте ссылку в окно ввода адреса браузера и нажмите enter.'; //Отправляем сообщение if(sendmail($mailto,$subject,$message,$headers) !== FALSE) {echo 'Регистрация завершена, на введеный Вами e-mail было отправлено сообщение для активации аккаунта';}} //Модуль отвечающий за активацию аккаунта if($_GET['activation'] AND $_GET['activation']!='') { $uniq_id = $_GET['activation']; //Создаем запрос $sql=@mysql_query("UPDATE userlist SET status=1 WHERE uniq_id='".$uniq_id."' AND status=1"); if($sql) {echo '
Ваша учетная запись активирована.

Теперь вы можете войти на сайт используя данные указанные при регистрации';} else {echo 'Активация невозможна: профиль уже активирован';} } exit; ?>


Пожалуйста исправте ошибочки очень надо!!!

PHP
<php


include "config.php";



if(isset(
$_POST['logins'])) {$logins $_POST['logins'];
if(isset(
$_POST['passwords'])) {$passwords $_POST['passwords'];
if(isset(
$_POST['rpasswords'])) {$rpasswords $_POST['rpasswords'];
if(isset(
$_POST['email'])) {$email $_POST['email'];
if(isset(
$_POST['name'])) {$name $_POST['name'];
if(isset(
$_POST['fameli'])) {$fameli $_POST['fameli'];





//Удаление пробелов  
$logins trim($logins);  
$passwords trim($passwords);  
$rpasswords trim($rpasswords); 
$email trim($email);  
$name trim($name);  
$fameli trim($fameli); 




$array_error = array();
if(isset(
$_POST['registr']))

if(!
$logins)  
$array_error[0] = "Вы не написали логин.";


if(empty(
$passwords) || empty($rpasswords) || $passwords != $rpasswords)
$array_error[1] = "Пароли не совподают.";
elseif(
$passwords && strlen($passwords) < 6
$array_error[2] = "Длина пароля меньше 6 символов.";

if(!
$email)  
$array_error[3] = "Вы не написали E-mail."
elseif(!
preg_match("/^[a-z0-9_.-]+@([a-z0-9_]+.)+[a-z]{2,4}$/",$email) && $email
$array_error[4] = "E-mail написан не корректно";


if(!
$name)  
$array_error[5] = "Вы не написали имя.";
if(!
$fameli)  
$array_error[6] = "Вы не написали фамилию.";




//Осуществляем регистарацию
//Генерируем uniq_id
$uniq_id md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].mktime());
$passwords $_POST['passwords'];
$email $_POST['email'];

$reg = @mysql_query("INSERT INTO userlist VALUES(NULL,'".strtolower($logins)."','".md5($passwords)."','".$email."','".$name."','".$fameli."','".$uniq_id."','".date("dmY")."')");
if(
$reg) {

// Для отправки e-mail в виде HTML устанавливаем необходимый mime-тип и кодировку
$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=windows-1251' "\r\n";

// Откуда пришло
$headers .= 'From:Сайт %sitename%' "\r\n";

//Здесь укажите электронный адрес, куда будут уходить сообщения
$mailto $email;
$subject "Подтверждение регистарции на сайте";
$message 'Для активации аккаунта пройдите по следующей ссылке <a href="http://xpund.byethost4.com/register.php?

activation='
.$uniq_id.'" target="_blank">http://xpund.byethost4.com/register.php?activation='.$uniq_id.'</a>;
$message .= '
или скопируйте ссылку в окно ввода адреса браузера и нажмите enter.';
//Отправляем сообщение
if(sendmail($mailto,$subject,$message,$headers) !== FALSE)
{echo '
Регистрация завершенана введеный Вами e-mail было отправлено сообщение для активации аккаунта';}}

//Модуль отвечающий за активацию аккаунта

if($_GET['
activation'] AND $_GET['activation']!='') {

$uniq_id = $_GET['
activation'];
//Создаем запрос
$sql=@mysql_query("UPDATE userlist SET status=1 WHERE uniq_id='".$uniq_id."' AND status=1");
if($sql) {echo '
<h2>Ваша учетная запись активирована.</h2><br/> Теперь вы можете <a href="index.html">войти на сайт</aиспользуя данные указанные при регистрации';}

else {echo '
Активация невозможнапрофиль уже активирован;}

}
exit;


Спустя 39 минут, 41 секунда (29.04.2009 - 19:54) agrus написал(а):
blink.gif
тут были ошибки, но может еще где-то есть...

PHP
$message 'Для активации аккаунта пройдите по следующей ссылке <a href=\"http://xpund.byethost4.com/register.php?

activation='
.$uniq_id.'" target="_blank">http://xpund.byethost4.com/register.php?activation='.$uniq_id.'</a>';
$message 'или скопируйте ссылку в окно ввода адреса браузера и нажмите enter.';


_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.