PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (5): « 1 2 3 [4] 5 »
Найдено сообщений: 70
Мужик
Отправлено: 09 Декабря, 2011 - 19:39:22 • Тема: Уязвимость в форме Фамилия • Форум: Напишите за меня, пожалуйста
Ответов: 14 Просмотров: 96
Приветствую вас форумчани
Помогите исправить ошибки в регистрации?
Я вот совсем уже не знаю что делать, тут в форме регистрации дырка есть
Файл reg.php
PHP:
скопировать код в буфер обмена
<?PHP
include 'header.php' ;
include 'country.php' ;
include 'securimage/securimage.php' ;
//// Переменные ------------
//константы, для регулярки
//p.s. константы пишуться КАПСОМ, так принято :)
define ( 'REGXP__SITY_WORD' , "/^[А-Яа-яA-Za-z ]{4,15}$/" ) ; define ( 'REGXP__ENG_WORD' , "/^[A-Za-z0-9]{4,15}$/" ) ; define ( 'REGXP__NUM_OR_SELECT' , "/^[0-9]{1,4}$/" ) ; define ( 'REGXP__RUS_AND_ENG_WORD' , "/^[А-Яа-яA-Za-z]{4,15}$/" ) ; define ( 'REGXP__EMAIL' , "/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i" ) ;
$countries [ 'start_value' ] = "- Выберите страну -" ;
//cписок месяцев
$months = array ( "Января" , "Февраля" , "Марта" , "Апреля" , "Майя" , "Июня" , "Июля" , "Августа" , "Сентября" , "Октября" , "Ноября" , "Декабря" ) ; //-> Стартовое значение поля
$months [ 'start_value' ] = "- Месяца -" ;
//SELECT * FROM user WHERE MD5(CONCAT(login,password))='<usermd5>'
//Создаем карту проверки формы. (содержание)
$fields_map [ 'r_login' ] = REGXP__ENG_WORD;
$fields_map [ 'r_pass' ] = REGXP__ENG_WORD;
$fields_map [ 'r_pass_test' ] = REGXP__ENG_WORD;
$fields_map [ 'r_email' ] = REGXP__EMAIL;
$fields_map [ 'r_name' ] = REGXP__RUS_AND_ENG_WORD;
$fields_map [ 'r_fam' ] = REGXP__RUS_AND_ENG_WORD;
$fields_map [ 'r_country' ] = REGXP__NUM_OR_SELECT;
$fields_map [ 'r_city' ] = REGXP__SITY_WORD;
$fields_map [ 'r_birthdayd' ] = REGXP__NUM_OR_SELECT;
$fields_map [ 'r_birthdaym' ] = REGXP__NUM_OR_SELECT;
$fields_map [ 'r_birthdayy' ] = REGXP__NUM_OR_SELECT;
$fields_map [ 'r_antispam' ] = REGXP__ENG_WORD;
$fields_map [ 'r_rules' ] = REGXP__NUM_OR_SELECT;
//Создаем карту проверки формы. (логика)
//_POST значени проверять не надо! Они уже проверены будут к тому моменту.
$fields_logic_map = array ( ) ; $fields_logic_map [ 'r_pass' ] = $_POST [ 'r_pass_test' ] ;
$fields_logic_map [ 'r_pass_test' ] = $_POST [ 'r_pass' ] ;
$img = new Securimage( ) ;
$fields_logic_map [ 'r_antispam' ] = $img -> getCode ( ) ;
$fields_logic_map [ 'r_rules' ] = 1 ;
$unique_fields [ 'r_login' ] = "login" ;
$unique_fields [ 'r_email' ] = "email" ;
//// Функции ------------
//Фукция для распечатывания Элементов массива.
//Аргументы: Массив, Шаблон (формат тут - http://ru.php.net/manual/ru/function.sprintf.php)
function draw_element( $array , $temple )
{
$return = NULL ;
if ( isset ( $array [ 'start_value' ] ) ) {
}
{
for ( $n = $array [ 'numeric' ] [ 0] ; $n <= $array [ 'numeric' ] [ 1] ; $n ++ )
{
$return .= sprintf ( $temple , $n , $n ) ; }
}
else
{
foreach ( $array as $key => $value )
{
$return .= sprintf ( $temple , $key , $value ) ; }
}
if ( $return != NULL )
{
return $return ;
}
}
//Адская фунция прямиком из ада :) Для проверки значений.
//Аргументы: (array)$vars_map - по типу "переменная=>регулярка", (array)$date - массив значений DATE (можно скормить POST или GET), (array)$vars_logic - необязательный парамерт для логики
//Возращает: True если все переменные "хорошие" или список "хороших" переменных, плохие отметаються.
function form_check
( $map , $date , $logic = array ( ) , $unique = array ( ) ) {
foreach ( $map as $field => $regxp )
{
$error = "null" ;
{
if ( ( isset ( $logic [ $field ] ) && $date [ $field ] == $logic [ $field ] ) || ! isset ( $logic [ $field ] ) ) {
if ( ( isset ( $unique [ $field ] ) && сheck_field_by_mysql
( $unique [ $field ] , $date [ $field ] ) == false ) || ! isset ( $unique [ $field ] ) ) {
$done_array [ ] = $field ;
}
else
{
$error = "unique" ;
}
}
else
{
$error = "logic" ;
}
}
else
{
$error = "filter" ;
}
if ( $error != "null" )
{
//далее пока никуда не возвращаем, но если надо то мы готовы :)
$error_array [ $error ] [ ] = $field ;
}
}
if ( ( $count = count ( $done_array ) ) == count ( $map ) && $count != 0
) {
return true ;
}
else
{
return $done_array ;
}
}
function сheck_field_by_mysql( $name , $value )
{
{
return true ;
}
else
{
return false ;
}
}
//// Основной код ------------
//массив для определения какие поля с заполнены правильно.
if ( is_array ( ( $done_array = form_check
( $fields_map , $_POST , $fields_logic_map , $unique_fields ) ) ) == true ) {
?>
<td width="2px"><img src="image/spacer.gif" width="2px" height=1></td>
<td valign="top" width="100%" style=" margin:0; padding:0 4 10 4px; "></td>
<div style="margin:0; padding:0; "><img src="image/spacer.gif" width="300px" height=1></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="top" style="background-color:#000000; border:1px solid #6E2500; padding:1px; ">
<table width="100%" style="height:100%; border:1px solid #2E2E2E; " border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<div style="padding-left:10px; padding-top:5px; padding-bottom:10px; padding-right:0px">
<center><font class="option" color="#FFFFFF"><b>Регистрация в интернет казино <?PHP echo $con [ 4] ; ?> </b></font></center>
<TABLE class=regform cellSpacing=0 cellPadding=3 align=center border=0>
<TBODY>
<TR>
<TD colSpan=3><center>
<?PHP
if ( count ( $done_array ) > 0
) {
echo "<br><br><FONT class=option1 color=FFFFFF>Некоторые поля были заполненны с ошибками! <br><br>Поле Логин и e-mail адрес должны иметь уникальные значения.<br><br>" ;
}
else
{
echo "<br><br><FONT class=option1 color=FFFFFF>Все поля обязательны для заполнения!</FONT><br><br></center>" ;
}
?>
</TD>
</TR>
<FORM name=form action=reg.php method=post>
<TR>
<TD align=right>Логин: </TD>
<TD>
<?= in_array ( "r_login" , $done_array ) ?
"<INPUT type=hidden name=r_login value=" . $_POST [ 'r_login' ] . ">" . $_POST [ 'r_login' ] . "" : "<INPUT name=r_login style=\" border: 1px solid rgb(0,0,0)\" >" ; ?> </TD>
<TD> </TD>
</TR>
<TR>
<TD align=right>Введите пароль: </TD>
<TD>
<?= in_array ( "r_pass" , $done_array ) ?
"<INPUT type=hidden name=r_pass value=" . $_POST [ 'r_pass' ] . ">- cкрыт -" : "<INPUT name=r_pass type=password style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD> </TD>
</TR>
<TR>
<TD align=right>Повторите пароль: </TD>
<TD>
<?= in_array ( "r_pass_test" , $done_array ) ?
"<INPUT type=hidden name=r_pass_test value=" . $_POST [ 'r_pass_test' ] . ">- cкрыт -" : "<INPUT name=r_pass_test type=password style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD> </TD>
</TR>
<TR>
<TD align=right>E-mail: </TD>
<TD>
<?= in_array ( "r_email" , $done_array ) ?
"<INPUT type=hidden name=r_email value=" . $_POST [ 'r_email' ] . ">" . $_POST [ 'r_email' ] . "" : "<INPUT name=r_email style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD> </TD>
</TR>
<TR>
<TD align=right>Имя: </TD>
<TD>
<?= in_array ( "r_name" , $done_array ) ?
"<INPUT type=hidden name=r_name value=" . $_POST [ 'r_name' ] . ">" . $_POST [ 'r_name' ] . "" : "<INPUT name=r_name style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD></TD>
</TR>
<TR>
<TD align=right>Фамилия: </TD>
<TD>
<?= in_array ( "r_fam" , $done_array ) ?
"<INPUT type=hidden name=r_fam value=" . $_POST [ 'r_fam' ] . ">" . $_POST [ 'r_fam' ] . "" : "<INPUT name=r_fam style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD></TD>
</TR>
<TR>
<TD align=right>Страна: </TD>
<TD>
<?= in_array ( "r_country" , $done_array ) ?
"<INPUT type=hidden name=r_country value=" . $_POST [ 'r_country' ] . ">" . $countries [ $_POST [ 'r_country' ] ] . "" : "<select name=r_country style=\" border: 1px solid black\" >" . draw_element
( $countries , "<option value=\" %d \" >%s </option>" ) . "</select>" ?> </TD>
</TR>
<TR>
<TD align=right>Город: </TD>
<TD>
<?= in_array ( "r_city" , $done_array ) ?
"<INPUT type=hidden name=r_city value=\" " . $_POST [ 'r_city' ] . "\" >" . $_POST [ 'r_city' ] . "" : "<INPUT name=r_city style=\" border: 1px solid rgb(0,0,0)\" >" ?> </TD>
<TD></TD>
</TR>
<TR>
<TD align=right>Дата рождения: </TD>
<TD>
<?= in_array ( "r_birthdayd" , $done_array ) ?
"<INPUT type=hidden name=r_birthdayd value=" . $_POST [ 'r_birthdayd' ] . ">" . $_POST [ 'r_birthdayd' ] . "" : "<select name=r_birthdayd> " . draw_element
( array ( 'start_value' => '---' , 'numeric' => array
( 1 , 31 ) ) , "<option value=\" %d \" >%s </option>" ) . "</select>" ?>
<?= in_array ( "r_birthdaym" , $done_array ) ?
"<INPUT type=hidden name=r_birthdaym value=" . $_POST [ 'r_birthdaym' ] . ">" . $months [ $_POST [ 'r_birthdaym' ] ] . "" : "<select name=r_birthdaym> " . draw_element( $months , "<option value=\" %d \" >%s </option>" ) . "
</select>" ?>
<?= in_array ( "r_birthdayy" , $done_array ) ?
"<INPUT type=hidden name=r_birthdayy value=" . $_POST [ 'r_birthdayy' ] . ">" . $_POST [ 'r_birthdayy' ] . "" : "<select name=r_birthdayy> " . draw_element
( array ( 'start_value' => '-года-' , 'numeric' => array
( ( date ( 'Y' ) - 70
) , ( date ( 'Y' ) - 18 ) ) ) , "<option value=\" %d \" >%s </option>" ) . "</select>" ?> </TD>
<TD></TD>
</TR>
<TR>
<TD align=right>Код с картинки: </TD>
<TD>
<img src="/securimage/securimage_show.php?sid=
<?PHP echo md5 ( uniqid ( time ( ) ) ) ; ?> " id="image" align="absmiddle" />
<br><INPUT name=r_antispam size=25 type=text value="" onfocus="if(this.value=='Введите слово с картинки'){this.value=''};" onblur="if(this.value==''){this.value='Введите слово с картинки'};"> <a href="#" onclick="document.getElementById('image').src = '/securimage/securimage_show.php?sid=' + Math.random(); return false">Другое</a>
</TD>
</TR>
<TR>
<TD colSpan=3 align=center>
<?= in_array ( "r_rules" , $done_array ) ?
"<INPUT type=hidden name=r_rules value=" . $_POST [ 'r_rules' ] . "><INPUT type=checkbox checked disabled>" : "<INPUT type=\" checkbox\" value=\" 1\" name=r_rules>" ?> С правилами ознакомлен и согласен</TD>
</TR>
<TR>
<TD colSpan=3 align=center><INPUT type=submit value="Сохранить" name=submit></TD>
</TR>
<TR>
<TD colSpan=3> </TD>
</TR>
<TR>
<TD colSpan=3></TD>
<TD> </TD>
</TR>
</FORM>
</TBODY>
</TABLE>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?
}
else
{
include './setup_virtual.php' ;
include './setup.php' ;
//тута можно юзать уже пост вары ($_POST['var']) напрямую, но только те конечно которые были в форме! :)
//Другие не проверяються.
$pus = $HTTP_COOKIE_VARS [ "par" ] ;
if ( $pus == $rowru [ 1] )
{
$partner_sql = "INSERT INTO partner VALUES('$pus ','" . $_POST [ 'r_login' ] . "','$date ','0.00')" ;
}
}
mysql_query ( "INSERT INTO users VALUES(NULL,'" . $_POST [ 'r_login' ] . "','" . $_POST [ 'r_pass' ] . "','0.50','0.00','0.00','" . $_POST [ 'r_email' ] . "','" . $_POST [ 'r_name' ] . "','" . $_POST [ 'r_fam' ] . "', '$date ', '0.00', " . $_POST [ 'r_country' ] . ", '" . $_POST [ 'r_city' ] . "', 0, '" . $_POST [ 'r_birthdayy' ] . "-" . $_POST [ 'r_birthdaym' ] . "-" . $_POST [ 'r_birthdayd' ] . "')" , $full_base ) ;
mysql_query ( "INSERT INTO users VALUES(NULL,'" . $_POST [ 'r_login' ] . "','" . $_POST [ 'r_pass' ] . "','1000','0.00','0.00','" . $_POST [ 'r_email' ] . "','" . $_POST [ 'r_name' ] . "','" . $_POST [ 'r_fam' ] . "', '$date ','0.00', " . $_POST [ 'r_country' ] . ", '" . $_POST [ 'r_city' ] . "', 0, '" . $_POST [ 'r_birthdayy' ] . "-" . $_POST [ 'r_birthdaym' ] . "-" . $_POST [ 'r_birthdayd' ] . "')" , $fun_base ) ;
include './mail/reg.php' ;
mail ( $_POST [ 'r_email' ] , $reg_reg_mail_subject , $reg_reg_mail , "Content-Type: text/plain; charset=Windows-1251\n From: $con[2] \n " ) ;
if ( $con [ 'regmail' ] == "yes" )
{
include './mail/newreg.php' ;
mail ( $con [ 'adm_email' ] , $reg_reg_mail_subject , $reg_reg_mail , "Content-Type: text/plain; charset=Windows-1251\n From: " . $con [ 'adm_email' ] . "\n " ) ; }
?>
<td width="2px"><img src="image/spacer.gif" width="2px" height=1></td><td valign="top" width="100%" style=" margin:0; padding:0 4 10 4px; "><div style="margin:0; padding:0; "><img src="image/spacer.gif" width="300px" height=1></div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="top" style="background-color:#000000; border:1px solid #6E2500; padding:1px; ">
<table width="100%" style="height:100%; border:1px solid #2E2E2E; " border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<div style="padding-left:10px; padding-top:5px; padding-bottom:10px; padding-right:10px">
<center><font class="option" color="#FFFFFF"><b>Вы зарегистрированы на сайте <? echo $con [ 4] ; ?> </b></font></center><br>
<font class="content">
Для начала общения вам необходимо подтвердить e-mail адрес. Данные для подтверждения, а так же вся Ваша информация отправленны на e-mail который Вы ввели при регистрации.
<br><br>
ВНИМАНИЕ! Некоторые почтовые системы могут помещать письма с сайта в папку "Спам" или "Сомнительные". Если Вы не получили письмо о регистрации, проверьте - нет ли его в папке со СПАМом.
<br><br>
С уважение администрация сайта <? echo $con [ 4] ; ?>
</font></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?
}
include './footer.php' ;
?>
И как я читал $HTTP_COOKIE_VARS уже устарела на что ее можно заменить?
И вот авторизация
PHP:
скопировать код в буфер обмена
<?PHP
$log = "" ;
$psw = "" ;
foreach ( $_POST as $var => $value )
{
if ( preg_match ( "/^[A-Za-z0-9]{4,15}$/" , $value ) ) { if ( $var == "log" ) { $log = $value ; }
if ( $var == "psw" ) { $psw = $value ; }
}
}
#die($log."=".$psw."\n");
{
include ( "../setup.php" ) ;
$log2 = $log ;
$base_login = $row [ 1] ;
$base_psw = $row [ 2] ;
if ( $log == $base_login && $psw == $base_psw && $log <> "" )
{
$_SESSION [ 'l' ] = $base_login ;
Header ( "Location: index.php" ) ; }
else
{
Header ( "Location: ../index.php" ) ; }
}
Мужик
Отправлено: 03 Декабря, 2011 - 11:47:58 • Тема: Помогите написать смену языка с переключателем его • Форум: Напишите за меня, пожалуйста
Ответов: 15 Просмотров: 175
Вот надыбал пример
Масив
Цитата: <?php
$lang=array(
'ru'=>array(
'home'=>'Главная',
'about'=>'О нас'
);
'en'=>array(
'home'=>'Home page',
'about'=>'About us'
);
);
?>
вывод
Цитата:
<?php
switch($_GET['lang']):
case 'ru':$mylang='ru'; break;
case 'en':$mylang='en'; break;
default:$mylang='ru'; break;
endswitch;
?>
<a href="home.php"><?php print $lang[$mylang]['home'];?></a>
<a href="about.php"><?php print $lang[$mylang]['about'];?></a>
но тут говорят много чего нужно дорабатывать!
Мужик
Отправлено: 02 Декабря, 2011 - 19:51:23 • Тема: Помогите написать смену языка с переключателем его • Форум: Напишите за меня, пожалуйста
Ответов: 15 Просмотров: 175
Приветствую вас Дамы и Господа, помогите мне пожалуйста написать смену языка на сайте с примером переключателей с Русского на Английский уже в рабочем виде
Только тут такое дело у меня сайт бес шаблонизатора, просто обычный html и php, хотелось бы его сделать разноязычным
Мужик
Отправлено: 09 Сентября, 2011 - 00:20:10 • Тема: Требуется написать модуль оплаты • Форум: FreeLance
Ответов: 9 Просмотров: 2342
White спасибо за работу
Оставлю за собой отзыв о человеке, все выполнил так как я и просил, доволен работой как слон , буду к вам обращаться
Мужик
Отправлено: 06 Сентября, 2011 - 21:19:02 • Тема: Требуется написать модуль оплаты • Форум: FreeLance
Ответов: 9 Просмотров: 2342
Champion
White Отправил
(Добавление)
Champion нет не само(пися), а самопись, ето значит что сам писал но не я а другой человек!
Мужик
Отправлено: 06 Сентября, 2011 - 18:50:29 • Тема: Требуется написать модуль оплаты • Форум: FreeLance
Ответов: 9 Просмотров: 2342
Я вот думал тут быстрей человека найду, а и тут не кто не хочет, кто подскажет хотя-бы прогера какова та кому можно обратится?
Страниц (5): « 1 2 3 [4] 5 »
Powered by ExBB FM 1.0 RC1. InvisionExBB