Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Кодировка в регестрации. (https://forum.zone-game.info/showthread.php?t=7877)

HuKoJIaC 30.04.2010 22:20

Кодировка в регестрации.
 
Такс для некоторых нужд мне нужна сделать регестрацию так чтобы пароль не шифровался а записывался в таком виде в котором его вписал пользователь.
Ну или на крайний случай скажите как расшифровать кодировку base64

Добавлено через 19 минут
Так также мне нужно узнать как сделать проверку не на количество символов а на их содержимое.
Допусти в одной из строк должно быть введено число от 1 до 50 и нужно сделать проверку которая проверяла бы этот промежуток на правильный ввод.

Добавлено через 2 часа 21 минуту
Так с кодировкой я сам разобрался.
С проверкой ещё вопрос в силе.
Также ещё возник один вопрос.
При регистрации на один майл 2 аккаунтов пишет
Не удалось вас зарегестрировать: Duplicate entry 'kulibenok@mail.ru' for key 3
Как от этого избавится?

PROGRAMMATOR 01.05.2010 01:13

Re: Кодировка в регестрации.
 
PHP код:

if ($a >= and $a <= 50)
{
    
// число от 1 до 50


?

HuKoJIaC 01.05.2010 02:56

Re: Кодировка в регестрации.
 
По ? я догадался о вопросе типа "Сложно было догадаться?"
Ну в принципе да я php не изучал я самоучка.
И до меня до сих пор не дошло как это сделать :(
Я понял что за место а нужно вписать своё значение.
А вот дальше :( Ни как до меня дойти не может :(
Разъясните плиззз.

Добавлено через 44 минуты
Всё по поводу этого можно не отвечать но хотя охото узнать как это делать :)
Так что если нетрудно :).
Я просто через select сделал.
А теперь по поводу майла как можно это исправить?

Ametist 01.05.2010 08:15

Re: Кодировка в регестрации.
 
Цитата:

Сообщение от HuKoJIaC (Сообщение 66529)
[size="1"][color="#FFCC00"]
При регистрации на один майл 2 аккаунтов пишет
Не удалось вас зарегестрировать: Duplicate entry 'kulibenok@mail.ru' for key 3
Как от этого избавится?


Код в студию, а так если поймете, то убeрите проверку на Email:)

HuKoJIaC 01.05.2010 08:44

Re: Кодировка в регестрации.
 
Всё сори с этим уже разобрался.
Просто при создании базы столбик mail сделал универсальным полем.
Теперь проблема в следующем.
Так как при регистрации указывается сервер на которм играют пришлось сделать функцию select то есть нужно выбрать из доступных серверов.
когда регистрация закончена при кнопке Зарегистрироваться регистрация проходит успешно. Но есть одно но сервер не записывается в базу:(
Вот собственно и сам скрипт регистрации:
PHP код:

<?php 
if (isset($_POST['submit'])) { 
    
$mysql_host "127.0.0.1"
    
$mysql_login "root"
    
$mysql_pass "vertrigo"
    
$mysql_db "pw"
        
mysql_connect($mysql_host$mysql_login$mysql_pass) or die("Не удалось подключится к MySQL: ".mysql_error()); 
    
mysql_select_db($mysql_db) or die("Не удалось выбрать базу данных: ".mysql_error()); 

    
$nick htmlspecialchars(stripslashes(trim($_POST['login'])));   
    
$password htmlspecialchars(stripslashes(trim($_POST['password'])));
    
$password2 htmlspecialchars(stripslashes(trim($_POST['password2']))); 
        
$mail htmlspecialchars(stripslashes(trim($_POST['mail'])));  
        
$server htmlspecialchars(stripslashes(trim($_POST['server'])));       
    
$result mysql_query("SELECT id FROM pw WHERE login='".$nick."'");  
    
$no_errors 1
     
    print 
"<center>"
    if(empty(
$nick)) { $no_errors 0; print "<b>Введите пожалуйста Логин.</b><br>"; } 
    elseif(
preg_match("[0-9a-Zа-Я]",$nick)) { $no_errors 0; print "<b>Введен неправильный Логин.</b><br>"; } 
    elseif(
strlen($nick) < 0) { $no_errors 0; print "<b>Логин должен состоять минимум из 4x символов.</b><br>"; }  
    elseif(
mysql_num_rows($result) >= 1) { $no_errors 0; print "<b>Логин который вы указали уже существует.</b><br>"; } 
    if(empty(
$password)) { $no_errors 0; print "<b>Вы забыли написать пароль.</b><br>"; }  
    elseif(
preg_match("[0-9a-z]",$password)) { $no_errors 0; print "<b>Введен неправильный Пароль.</b><br>"; } 
    elseif(
strlen($password) < 6) { $no_errors 0; print "<b>Пароль должен состоять минимум из 6и символов.</b><br>"; } 
        if(empty(
$mail)) { $no_errors 0; print "<b>Вы забыли написать E-mail</b><br>"; }
    elseif(
strlen($mail) < 4) { $no_errors 0; print "<b>Указаный E-mail слишком короткий.</b><br>"; }         
        if(empty(
$server)) { $no_errors 0; print "<b>Вы забыли указать сервер.</b><br>"; }    
    print 
"</center>"

    if (
$no_errors == 1) { 
        
//$password_md5 = md5($password);  
        
$password_md5 $password;  
        
$query "INSERT INTO pw (id, login, password, mail, server VALUES ('', '$nick', '$password', '$mail', '$server')";  
        
$result mysql_query($query) or die("Не удалось вас зарегестрировать: ".mysql_error());  
        print 
"<center>Ваш Логин <b>".$nick."</b><br>"
        print 
"Пароль <b>".$password."</b><br> удачно зарегестрирован.<br>";  
                print 
"E-mail <b>".$mail."</b><br>";
                print 
"Сервер <b>".$server."</b><br>"
        print 
"Приятной игры ожидайте ваш голд в течении 24 часов.<br></center>";     
    } else { print 
"<center><b>Не заполнены все поля.</b></center>"; } 

?> 
<form action="" method="post"> 
<br><br> 
<center> 
<table>
<tr><td><b style="color: rgb(136, 0, 0); font-size: 11pt;">E-mail</b><font color="red">*</font><b>:</b></td><td><input name="mail" type="text" value=""></td></tr> 
<tr><td><b style="color: rgb(136, 0, 0); font-size: 11pt;">Логин</b><font color="red">*</font><b>:</b></td><td><input name="login" type="text" value=""></td></tr> 
<tr><td><b style="color: rgb(136, 0, 0); font-size: 11pt;">Пароль</b><font color="red">*</font><b>:</b></td><td><input name="password" type="password" value=""></td></tr> 
<tr><td><b style="color: rgb(136, 0, 0); font-size: 11pt;">Пвторите Пароль</b><font color="red">*</font><b>:</b></td><td><input name="password" type="password" value=""></td></tr> 
<tr><td><b style="color: rgb(136, 0, 0); font-size: 11pt;">Cервер</b><font color="red">*</font><b>:</b></td><td><select size="1">
<option>Антарес</option> 
<option>Пегас</option> 
<option>Астра</option> 
<option>Процион</option> 
<option>Альтаир</option> 
<option>Таразед</option> 
<option>Мира</option> 
<option>Сириус</option> 
<option>Процион</option> 
<option>Вега</option> 
<option>Орион</option></select></td></tr>
</table> 
<input type="submit" value="Зарегестрироватся" name="submit"> 
</form>  
</center>

Сайт для игроков ПВ с оффа.
Типа информационного сайта где можно прочитать новости пообщатся и скачать различные файлы.

PROGRAMMATOR 02.05.2010 17:24

Re: Кодировка в регестрации.
 
Цитата:

Сообщение от HuKoJIaC
Я понял что за место а нужно вписать своё значение.

Указать то, чем получается значение например $_POST или $_GET не забыв обвернуть это все intval().

Цитата:

Сообщение от HuKoJIaC
сервер не записывается в базу

Как же он запишется, если вы не верно создали <select>.
Код HTML:

<select name="server">
        <option value="name1">имя сервера 1</option>
        <option value="name2">имя сервера 2</option>
        <option value="name3">имя сервера 3</option>
</select>

Проверки на "Повторить пароль" у вас нет, и вообще, два инпута имеют одинаковые названия:
Код HTML:

<input name="password" ... />
Хотя один точно должен быть назван:
Код HTML:

<input name="password2" ... />

Ametist 02.05.2010 19:50

Re: Кодировка в регестрации.
 
Запрос INSERT составлен не верно:
Цитата:

Сообщение от HuKoJIaC (Сообщение 66592)

PHP код:

 
        $query 
"INSERT INTO pw (id, login, password, mail, server VALUES ('', '$nick', '$password', '$mail', '$server')"


А надо так:

PHP код:

 
        $query 
"INSERT INTO `pw` (id, login, password, mail, server) VALUES ('', '$nick', '$password', '$mail', '$server')"

Либо так:
PHP код:

 
        $query 
"INSERT INTO `pw`  VALUES ('', '$nick', '$password', '$mail', '$server')"

А еше напишите регулярку на проверку "ВАЛИДНОСТИ" Электронной почты, а то в дальнейшем будите испытывать проблемы...

PROGRAMMATOR 02.05.2010 21:09

Re: Кодировка в регестрации.
 
Цитата:

Сообщение от Ametist
напишите регулярку на проверку

PHP код:

$email filter_var('support@site.ru'FILTER_VALIDATE_EMAIL); 

Если мыло неверного формата, то вернет False, в противном случае вернет мыло.

PHP код:

if (!$email)
{
    
// фигня какая-то а не мыло


Ссылки по теме:
http://php.net/manual/en/function.filter-var.php
http://www.php.net/manual/en/filter....s.validate.php

HuKoJIaC 03.05.2010 03:56

Re: Кодировка в регестрации.
 
По воводу <b>Insert</b> всё правельно нормально записывает всё в базу без всяких ошибок.
Поповду селекта не такто правельно сделал select просто забыл указать name=server
По поводу проверки майл так токова ненужна так как рассылки небудет также активация аккаунта будет производится исключительно только администратором.
Также поповоду проверки ну это я добавил уже однако есть вывод пароля после регистрации.
Такто темку уже можно прикрыть.
и оффтоп.
Подскажите хостинг куда можно будет поместить свой сайт желательно бесплатный просто один из клиенто жлоб на лаве :(
Сайт примерно DLE.

PROGRAMMATOR 03.05.2010 14:56

Re: Кодировка в регестрации.
 
Так для чего тогда вообще писать мыло пользователя, если оно не нужно?
Оно то как, если делать, то делать это правильно, а если нет, то лучше вообще не делать. ;)

Клиентов "жлобов" лучше вообще стороной обходить и объяснить, что бесплатный сыр только в мышеловке.


Текущее время: 01:00. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot