[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с формой регистрации, мелкие доработки
feniks_iopok
ипользую эту форму, настроил под себя что смог, но не получается:
1) при регистрации отправить логин пользователя. пароль отправляется а логин не получается.
пароль там генерируется сам, поэтому он сразу в переменной, а как занести в переменную логин, который ввел пользователь. я сделал так

$names = $_POST['username']; 

send_mail(	'reg@vk-battle.ru',
$_POST['email'],
'Welcome to vk-battle.ru!',
'Ваш пароль: ' .$pass .$names);


Но так ничего не отправляется :(
Что делаю не так???

2) как сделать, чтобы на одно мыло был только один аккаунт? идею понимаю, но преобразовать ее в код не могу. мейлы хранятся в ячейке "email" в базе данных. как проверить, повторяется ли мыло, введенное пользователем с мылами из таблицы?

Спасибо!!!



Спустя 3 минуты, 19 секунд (31.05.2011 - 08:25) XCross написал(а):
Заголовки тож посылать нужно. Иногда за спам принимают.

http://www.php.su/functions/?mail

Спустя 4 минуты, 21 секунда (31.05.2011 - 08:29) feniks_iopok написал(а):
kmaks
спасибо!!!
само сообщение пока черновой вариант, надо самое главное пока сделать...как занести глогин в переменную и отправить его, и как проверить число повторений имейла в базе..

Спустя 14 минут, 17 секунд (31.05.2011 - 08:44) XCross написал(а):
Цитата
как проверить число повторений имейла в базе



$count_email = mysql_query ("SELECT * FROM `tz_members` WHERE `email` = ".mysql_real_escape_string($_POST['email'])) or die (mysql_error());

$count = mysql_num_rows($count_email);




Первый вопрос.

Попробуй так. Только кодировку в заголовках укажи

<?php
$body = '
Welcome to vk-battle.ru!<br>
Ваш логин: '
.$_POST['username']. '
Ваш e-mail: '
.$_POST['email']. '
Ваш папрль:'
.$pass. '<br>';

$sender = 'reg@vk-battle.ru';

$headers = '
From:reg@vk-battle.ru\r\n
Content-type: text/html; charset=КОДИРОВКА\r\n'
;

$subject = 'Welcome to vk-battle.ru';

if(mail($sender, $subject, $body, $headers)){
echo 'Мы отправили вам email с вашим новым паролем!';
}
else{
echo 'Ошибка отправки сообщения!';
}

?>

Спустя 18 минут, 38 секунд (31.05.2011 - 09:02) feniks_iopok написал(а):
kmaks
большое спасибо!!!!
сейчас нет возможности проверить, но огромное спасибо!!!!

Спустя 38 минут, 5 секунд (31.05.2011 - 09:40) feniks_iopok написал(а):
все равно регистрирует на одинаковые имейлы( а письмо вообще не отправляет

при регистрации не выводит ни одного сообщения из
if(mail($sender, $subject, $body, $headers)){
echo 'Мы отправили вам email с вашим новым паролем!';
}
else{
echo 'Ошибка отправки сообщения!';
}
а выводит сообщение из
	$_SESSION['msg']['reg-success']='<font style="font-size:9px; color: green;">Мы отправили вам письмо с вашим Новым паролем!</font>';


вот пхп код на странице, которые у меня получился...что не так сделал?
я только добавил ваш код, так где проверяются ошибки. и изменил код отправки сообщений...

<?php

define('INCLUDE_CHECK',true);

require 'connect.php';
require 'functions.php';
// Данные два файла нужно включать только в случае определения INCLUDE_CHECK



session_name('tzLogin');
// Запуск сессии

session_set_cookie_params(2*7*24*60*60);
// Устанавливаем время жизни куки 2 недели

session_start();

if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
{
// Если вы вошли в систему, но куки tzRemember (рестарт браузера) отсутствует
// и вы не отметили чекбокс 'Запомнить меня':


$_SESSION = array();
session_destroy();

// Удалаяем сессию
}


if(isset($_GET['logoff']))
{
$_SESSION = array();
session_destroy();

header("Location: index.php");
exit;
}

if($_POST['submit']=='Войти')
{
// Проверяем, что представлена форма Войти

$err = array();
// Запоминаем ошибки


if(!$_POST['username'] || !$_POST['password'])
$err[] = '<font style="font-size:9px; color: red;">Все поля должны быть заполнены!</font>';

if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];

// Получаем все ввденые данные

$row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));

if($row['usr'])
{
// Если все в порядке - входим в систему

$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];

// Сохраняем некоторые данные сессии

setcookie('tzRemember',$_POST['rememberMe']);
}
else $err[]='<font style="font-size:9px; color: red;">Ошибочный пароль или/и имя пользователя!</font>';
}

if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
// Сохраняем сообщение об ошибке сессии

header("Location: index.php");
exit;
}
else if($_POST['submit']=='Регистрация')
{
// Проверяем, что представлена форма Зарегистрироваться



$err = array();

$count_email = mysql_query ("SELECT * FROM `tz_members` WHERE `email` = ".mysql_real_escape_string($_POST['email']));
$counts = mysql_num_rows($count_email);

if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
{
$err[]='<font style="font-size:9px; color: red;">Логин должен содержать от 3 до 32 символов!</font>';
}

if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
{
$err[]='<font style="font-size:9px; color: red;">Ваше имя пользователя сожержит недопустимые символы!</font>';
}

if(!checkEmail($_POST['email']))
{
$err[]='<font style="font-size:9px; color: red;">Email не правильный!</font>';

}

if($counts > 1)
{
$err[]='<font style="font-size:9px; color: red;">Такое Email уже зарегистрирован! </font>';
}

if(!count($err))
{
// Если нет ошибок

$pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
// Генерируем случайный пароль

$_POST['email'] = mysql_real_escape_string($_POST['email']);
$_POST['username'] = mysql_real_escape_string($_POST['username']);
// Получаем введеные данные


mysql_query(" INSERT INTO tz_members(usr,pass,email,regIP,dt)
VALUES(

'"
.$_POST['username']."',
'"
.md5($pass)."',
'"
.$_POST['email']."',
'"
.$_SERVER['REMOTE_ADDR']."',
NOW()

)"
);

if(mysql_affected_rows($link)==1)
{
$body = '
Welcome to vk-battle.ru!<br>
Ваш логин: '
.$_POST['username']. '
Ваш e-mail: '
.$_POST['email']. '
Ваш папрль:'
.$pass. '<br>';

$sender = 'reg@vk-battle.ru';

$headers = '
From:reg@vk-battle.ru\r\n
Content-type: text/html; charset=windows-1251\r\n'
;

$subject = 'Welcome to vk-battle.ru';
if(mail($sender, $subject, $body, $headers)){
echo 'Мы отправили вам email с вашим новым паролем!';
}
else{
echo 'Ошибка отправки сообщения!';
}

$_SESSION['msg']['reg-success']='<font style="font-size:9px; color: green;">Мы отправили вам письмо с вашим Новым паролем!</font>';
}
else $err[]='<font style="font-size:9px; color: red;">Данное имя пользователя уже занято!</font>';
}

if(count($err))
{
$_SESSION['msg']['reg-err'] = implode('<br />',$err);
}

header("Location: index.php");
exit;
}

$script = '';

if($_SESSION['msg'])
{
// Скрипт ниже показывает выскаьзывающую панель

$script = '
<script type="text/javascript">

$(function(){

$("div#panel").show();
$("#toggle a").toggle();
});

</script>'
;

}
?>

Спустя 48 минут, 22 секунды (31.05.2011 - 10:29) feniks_iopok написал(а):
С письмо разобрался...
Нужно только чтобы выводилось сообщение, если на ваш мэил уже зарегистрирован пользователь.

Спустя 1 час, 52 минуты, 2 секунды (31.05.2011 - 12:21) XCross написал(а):
Ты понимаешь что написано в скрипте?

У тебя идет проверка на уникальность.

if($counts > 1){

//Код.

}

т.е. ты проверяешь есть ли хотя бы один пользователь...

Тогда уж пробуй больше или равно.

Хотя лучше так:
if($counts != 0){

//Код.

}


Дальше.

Сначало проверь входящие данные и обработай, а потом уже подставляй в запрос. Так ты хоть защитишься от SQL-инъекции.


Лучше сходи на irbis-team. Там то точно все проверено.


if($_POST['submit']=='Войти')


Будет нотайс. Неопределенная переменная. Лучше делай так:

if(isset($_POST['login']))


И в форме поменяй имя у кнопки входа.


Тож самое вот здесь:

if(!$_POST['username'] || !$_POST['password'])



_____________
есть сайт, 3-4к уников в сутки. зарабатываю 100 рублей в день, почему так мало?
Быстрый ответ:

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