Файл: wapxl.ru/user/addsite.php
Строк: 376
<?php
require_once ('../shaxty.php');
$title = 'Создание сайта';
function utf8_str_split($str) {
// place each character of the string into and array
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]);
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
/**
* Функция вырезки
* @param <string> $str
* @return <string>
*/
function clearstr($str){
$sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю';
$s1 = array_merge(utf8_str_split($sru), utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'));
$codes = array();
for ($i=0; $i<count($s1); $i++){
$codes[] = ord($s1[$i]);
}
$str_s = utf8_str_split($str);
for ($i=0; $i<count($str_s); $i++){
if (!in_array(ord($str_s[$i]), $codes)){
$str = str_replace($str_s[$i], '', $str);
}
}
return $str;
}
switch($mod){
default:
$align = 'left';
$head = '<big>Создание сайта | Правила</big>';
include_once ('../shaxty/head.php');
echo '<div class="mess">
<b>Что-то пошло не так, пожалуйста вернитесь назад и повторите попытку.</b><br />
';
echo '</div>';
break;
case 'domain':
$align = 'left';
$head = '<big>Адрес сайта</big>';
include_once ('../shaxty/head.php');
if (!isset($_POST['domain'])){
header('Location: my_sites.php');
exit();
}else{
$reg_domain = isset($_POST['domain']) ? func::checkin(func::rus_utf_tolower($_POST['domain'])) : '';
$reg_dom = isset($_POST['dom']) ? func::checkin(func::rus_utf_tolower($_POST['dom'])) : '';
$_SESSION['domain'] = $reg_domain;
$_SESSION['dom'] = $reg_dom;
unset($_SESSION['domain_err']);
// Проверка домена
if(ctype_digit($reg_domain)){
$error.= 'Адрес сайта не может состоять только из цифр.<br />';
$_SESSION['domain_err'] = 'Адрес сайта не может состоять только из цифр.';
header('Location: my_sites.php');
exit();
}
if (empty($reg_domain)){
$error .= 'Не указан адрес<br/>';
$_SESSION['domain_err'] = 'Не указан адрес';
header('Location: my_sites.php');
exit();
}
if (!preg_match('|^[a-z0-9-]+$|i', $reg_domain)){
$error .= 'Недопустимые символы в адресе<br/>';
$_SESSION['domain_err'] = 'Недопустимые символы в адресе';
header('Location: my_sites.php');
exit();
}
if (func::utf_strlen($reg_domain) < 3 || func::utf_strlen($reg_domain) > 20){
$error .= 'Недопустимая длина адреса (От 3 до 20 символов)<br />';
$_SESSION['domain_err'] = 'Недопустимая длина адреса (От 3 до 20 символов)';
header('Location: my_sites.php');
exit();
}
$m= core::$db -> queryFetch("SELECT * FROM `sites` WHERE `domain`=?;", array($reg_domain.'.'.$reg_dom));
if ($m > 0) {
$error .= 'Указаный вами Адрес занят, выберите другой.';
$_SESSION['domain_err'] = 'Указаный вами Адрес занят, выберите другой.';
header('Location: my_sites.php');
exit();
}
if ($reg_domain == 'www') {
$error .= 'Указаный вами Адрес занят, выберите другой.';
$_SESSION['domain_err'] = 'Указаный вами Адрес занят, выберите другой.';
header('Location: my_sites.php');
exit();
}
if ($reg_domain == 'forum') {
$error .= 'Указаный вами Адрес занят, выберите другой.';
$_SESSION['domain_err'] = 'Указаный вами Адрес занят, выберите другой.';
header('Location: my_sites.php');
exit();
}
if ($reg_domain == 'wap') {
$error .= 'Указаный вами Адрес занят, выберите другой.';
$_SESSION['domain_err'] = 'Указаный вами Адрес занят, выберите другой.';
header('Location: my_sites.php');
exit();
}
header('Location: addsite.php?mod=reg');
}
break;
case 'reg':
$align = 'left';
$head = '<big>Учетные данные Администратора</big>';
include_once ('../shaxty/head.php');
if(!isset($_POST['submit'])){
echo '<form method="post" action="?mod='.$mod.'&'.SID.'" name="auth">';
echo '<dl></dl><div class="c2"><img src="/style/img/ind.png" alt="*"/> <b>Данные сайта</b></div>';
echo '<div class="mess">';
echo '<b>Адрес сайта:</b><br /> <b>'.$_SESSION['domain'].'.'.$_SESSION['dom'].'</b> <dt></dt>';
echo "<dl></dl><b>Карегория:</b><br />";
echo '<select name="cat" ' . (isset($_SESSION['cat_err']) ? ' style="background-color: #FFCCCC"' : '') . '>';
echo '<option value="0">Выберите категорию</option>';
$raz = mysql_query("SELECT id,name FROM `top_razdels`;");
while ($r = mysql_fetch_array($raz)) //пускаем цикл и выводим
{
$selected = ($r['id'] == $_SESSION['cat']) ? ' selected="selected"' : '';
echo '<option value="'.$r['id'].'"'.$selected.'>'.$r['name'].'</option>';
}
echo '</select> ' . (isset($_SESSION['cat_err']) ? '<span style="color:#DD0000">'.$_SESSION['cat_err'].'</span>' : '') . '<br />
Выберита категорию, схожую с тематикой Вашего сайта,<br />
для правильного отображения сайта в ТОПе конструктора.<br />';
echo "<dl></dl><b>Описание:</b><br />";
echo '<input name="about" maxlength="200" value="'.$_SESSION['about'].'" ' . (isset($_SESSION['about_err']) ? ' style="background-color: #FFCCCC"' : '') . '/> ' . (isset($_SESSION['about_err']) ? '<span style="color:#DD0000">'.$_SESSION['about_err'].'</span>' : '') . '<br />
Краткое описание сайта, максимум 200 символов.<br />';
echo '</div>';
echo '<dl></dl><div class="c2"><img src="/style/img/ind.png" alt="*"/> <b>Учетные данные Администратора</b></div>';
echo '<div class="mess">';
echo '<b>Логин (Ник):</b><br/><input type="text" name="reg_nick" maxlength="30" value="'.$_SESSION['reg_nick'].'" ' . (isset($_SESSION['reg_nick_err']) ? ' style="background-color: #FFCCCC"' : '') . '/> ' . (isset($_SESSION['reg_nick_err']) ? '<span style="color:#DD0000">'.$_SESSION['reg_nick_err'].'</span>' : '') . '<br />От 3 до 15 символов.<br />Разрешины любые символы и знаки.<dl></dl>';
if(isset($_GET['passgen'])){
$_SESSION['password'] = func::generate_password(8);
}
echo '<b>Пароль:</b><br/><input name="password" maxlength="20" value="'.$_SESSION['password'].'" title="nick" ' . (isset($_SESSION['pass_err']) ? ' style="background-color: #FFCCCC"' : '') . ' /> <a href="reg.php?mod=reg&passgen" class="href">Генерация Пароля</a> ' . (isset($_SESSION['pass_err']) ? '<span style="color:#DD0000">'.$_SESSION['pass_err'].'</span>' : '') . '<br />';
echo 'От 6 до 15 символов.<br />Разрешены буквы Латинского алфавита,<br />цифры (кроме нуля) и знак -<br /> Пароль не должен состоять из одних цифр, пример: <b>'.func::generate_password(6).'</b><dl></dl>';
echo 'E-mail:<br /><input name="email" maxlength="50" value="'.$_SESSION['email'].'" ' . (isset($_SESSION['email_err']) ? ' style="background-color: #FFCCCC"' : '') . '/><br />';
echo 'Адрес электронной почты для восстановления пароля.<br />Указывайте реальный E-mail, иначе вы не сможете восстановить доступ к вашему сайту.<br /><dl></dl>';
echo '<b>Секретный вопрос:</b><br/>';
echo '<select name="vopros_pass">';
$odobr = array(0 => 'Ввести свой', 'Девичья фамилия матери' => 'Девичья фамилия матери', 'Любимое блюдо' => 'Любимое блюдо', 'Кличка домашнего животного' => 'Кличка домашнего животного', 'Любимый цвет' => 'Любимый цвет', 'Первый учитель' => 'Первый учитель', 'Гос номер авто' => 'Гос номер авто');
foreach($odobr as $k => $v) {
$selected = ($k == $_SESSION['vopros_pass']) ? ' selected="selected"' : '';
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>';
}
echo '</select><br />';
echo '<b>Вопрос:</b><br/><input type="text" name="vopros_pass1" maxlength="30" value="'.$_SESSION['vopros_pass1'].'" ' . (isset($_SESSION['vopros_err']) ? ' style="background-color: #FFCCCC"' : '') . '/> ' . (isset($_SESSION['vopros_err']) ? '<span style="color:#DD0000">'.$_SESSION['vopros_err'].'</span>' : '') . '<br />';
echo '<b>Ответ:</b><br/><input type="text" name="otvet_pass" maxlength="30" value="'.$_SESSION['otvet_pass'].'" ' . (isset($_SESSION['otvet_err']) ? ' style="background-color: #FFCCCC"' : '') . '/> ' . (isset($_SESSION['otvet_err']) ? '<span style="color:#DD0000">'.$_SESSION['otvet_err'].'</span>' : '') . '<br />';
echo 'Секретные вопрос и ответ необходимы для восстановления пароля и изменения учетных данных. После регистрации эти данные нельзя будет изменить.<br /><dl></dl>';
echo '<img src="/PAGES/shaxty_code.php?r='.rand(1000, 9999).'" alt="Проверочный код"/><br />';
echo '<b>Код с картинки:</b><br/><input type="text" size="5" maxlength="5" name="kod" ' . (isset($_SESSION['code_err']) ? ' style="background-color: #FFCCCC"' : '') . '/> ' . (isset($_SESSION['code_err']) ? '<span style="color:#DD0000">'.$_SESSION['code_err'].'</span>' : '') . '<br /><br />';
echo '<br />
<input name="domain" type="hidden" value="'.$_SESSION['domain'].'">
<input name="dom" type="hidden" value="'.$_SESSION['dom'].'">
<input type="submit" class="ibutton" value="Далее>>" name="submit"/></form><br /><br /><b>Все поля обязательны к заполнению!</b>';
echo '</div><br />';
}else{
$reg_kod = isset($_POST['kod']) ? func::checkin($_POST['kod']) : '';
//$lat_nick = isset($_POST['lat_nick']) ? func::checkin($_POST['lat_nick']) : '';
$reg_nick = isset($_POST['reg_nick']) ? func::checkin($_POST['reg_nick']) : '';
$reg_pass = isset($_POST['password']) ? func::checkin($_POST['password']) : '';
$email = isset($_POST['email']) ? func::checkin($_POST['email']) : '';
$vopros_pass = isset($_POST['vopros_pass']) ? func::checkin($_POST['vopros_pass']) : '';
$vopros_pass1 = isset($_POST['vopros_pass1']) ? func::checkin($_POST['vopros_pass1']) : '';
$otvet_pass = isset($_POST['otvet_pass']) ? func::checkin(func::rus_utf_tolower($_POST['otvet_pass'])) : '';
$reg_domain = isset($_POST['domain']) ? func::checkin($_POST['domain']) : '';
$reg_dom = isset($_POST['dom']) ? func::checkin($_POST['dom']) : '';
if (empty($reg_domain)){
$_SESSION['domain_err'] = 'Что-то пошло не так,пожалуйста попробуйте еще раз.';
header('Location: my_sites.php');
exit();
}
if (empty($reg_dom)){
$_SESSION['domain_err'] = 'Что-то пошло не так,пожалуйста попробуйте еще раз.';
header('Location: my_sites.php');
exit();
}
$cat = isset($_POST['cat']) ? func::checkin(intval($_POST['cat'])) : '0';
$about = isset($_POST['about']) ? func::checkin($_POST['about']) : '';
$_SESSION['reg_nick'] = $reg_nick;
//$_SESSION['lat_nick'] = $lat_nick;
$_SESSION['password'] = $reg_pass;
$_SESSION['domain'] = $reg_domain;
$_SESSION['shablon'] = $reg_sex;
$_SESSION['email'] = $email;
$_SESSION['vopros_pass'] = $vopros_pass;
$_SESSION['vopros_pass1'] = $vopros_pass1;
$_SESSION['otvet_pass'] = $otvet_pass;
$_SESSION['cat'] = $cat;
$_SESSION['about'] = $about;
unset($_SESSION['reg_nick_err']);
//unset($_SESSION['lat_nick_err']);
unset($_SESSION['email_err']);
unset($_SESSION['vopros_err']);
unset($_SESSION['otvet_err']);
unset($_SESSION['pass_err']);
unset($_SESSION['domain_err']);
unset($_SESSION['code_err']);
unset($_SESSION['about_err']);
unset($_SESSION['cat_err']);
if (func::utf_strlen($about) < 1 || func::utf_strlen($about) > 200){
$error .= 'Не указано описание сайта или превышена его длина.<br />';
$_SESSION['about_err'] = 'Не указано описание сайта или превышена его длина.';
}
if ($cat==0){
$error .= 'Выберите категорию!<br/>';
$_SESSION['cat_err'] = 'Выберите категорию!';
}
// Проверка Ника
if (empty($reg_nick)){
$error .= 'Не введён ник<br/>';
$_SESSION['reg_nick_err'] = 'Не введён ник.';
}
if (func::utf_strlen($reg_nick) < 3 || func::utf_strlen($reg_nick) > 15){
$error .= 'Недопустимая длина Ника (От 3 до 15 символов)<br />';
$_SESSION['reg_nick_err'] = 'Недопустимая длина Ника (От 3 до 15 символов)';
}
$lat_nick =func::rus_utf_tolower(clearstr(func::retranslit(func::del(func::checkin($reg_nick))))); //логин
if (func::utf_strlen($lat_nick) < 3){
$error .= 'В нике должны присутствовать не толоько символы, но и не менее 3 букв Латинского или Русского алфавита или цифры<br/>';
$_SESSION['reg_nick_err'] = 'В логине должны присутствовать не толоько символы, но и не менее 3 букв Латинского или Русского алфавита или цифры';
}
if (ctype_digit($lat_nick)){
$error .= 'В нике должны присутствовать не толоько символы и цифры, но и буквы Латинского или Русского алфавита<br/>';
$_SESSION['reg_nick_err'] = 'В нике должны присутствовать не толоько символы и цифры, но и буквы Латинского или Русского алфавита';
}
// Проверка E-mail
if (empty($email)){
$error .= 'Не введён E-mail<br/>';
$_SESSION['email_err'] = 'Не введён E-mail';
}
// Проверка вопроса
if ($vopros_pass == '0' && empty($vopros_pass1)){
$error .= 'Не указан вопрос<br/>';
$_SESSION['vopros_err'] = 'Не указан вопрос';
}
if (empty($otvet_pass)){
$error .= 'Не указан ответ<br/>';
$_SESSION['otvet_err'] = 'Не указан ответ';
}
// Проверка пароля
if (empty($reg_pass)){
$error .= 'Не введён пароль<br/>';
$_SESSION['pass_err'] = 'Не указан пароль';
}
if (func::utf_strlen($reg_pass) < 6 || func::utf_strlen($reg_pass) > 15){
$error .= 'Недопустимая длина пароля (От 6 до 15 символов)<br />';
$_SESSION['pass_err'] = 'Недопустимая длина пароля (От 6 до 15 символов)';
}
if (!preg_match('|^[a-z0-9-]+$|i', $reg_pass)){
$error .= 'Недопустимые символы в пароле<br/>';
$_SESSION['pass_err'] = 'Недопустимые символы в пароле';
}
// Проверка домена
if(ctype_digit($reg_domain)){
$error.= 'Адрес сайта не может состоять только из цифр.<br />';
$_SESSION['lat_nick_err'] = 'Адрес сайта не может состоять только из цифр.';
header('Location: addsite.php');
exit();
}
if (empty($reg_domain)){
$error .= 'Не указан адрес<br/>';
$_SESSION['domain_err'] = 'Не указан адрес';
header('Location: addsite.php');
exit();
}
if (!preg_match('|^[a-z0-9-]+$|i', $reg_domain)){
$error .= 'Недопустимые символы в адресе<br/>';
$_SESSION['domain_err'] = 'Недопустимые символы в адресе';
header('Location: addsite.php');
exit();
}
if (func::utf_strlen($reg_domain) < 3 || func::utf_strlen($reg_domain) > 20){
$error .= 'Недопустимая длина адреса (От 3 до 20 символов)<br />';
$_SESSION['domain_err'] = 'Недопустимая длина адреса (От 3 до 20 символов)';
header('Location: addsite.php');
exit();
}
$m= core::$db -> queryFetch("SELECT * FROM `sites` WHERE `domain`=?;", array($reg_domain.'.'.$reg_dom));
if ($m > 0) {
$error .= 'Указаный вами Адрес занят, выберите другой.';
$_SESSION['domain_err'] = 'Указаный вами Адрес занят, выберите другой.';
header('Location: my_sites.php');
exit();
}
// Проверка кода CAPTCHA
if ($reg_kod != $_SESSION['code']){
$error .= 'Проверочный код неверен<br/>';
$_SESSION['code_err'] = 'Проверочный код неверен';
}
if (empty($error)) {
unset($_SESSION['reg_nick']);
//unset($_SESSION['lat_nick']);
unset($_SESSION['password']);
unset($_SESSION['domain']);
unset($_SESSION['shablon']);
unset($_SESSION['email']);
unset($_SESSION['meil']);
unset($_SESSION['vopros_pass']);
unset($_SESSION['vopros_pass1']);
unset($_SESSION['otvet_pass']);
unset($_SESSION['cat']);
unset($_SESSION['about']);
$reg_domain = $reg_domain.'.'.$reg_dom;
$pass = md5(md5($reg_pass));
$otvet_pass1 = md5(md5($otvet_pass));// шифруем ответ на вопрос
if($vopros_pass == '0') $vopros_pass = $vopros_pass1;
$dbi = core::$db -> prepare("INSERT INTO `sites` SET `admin_id`=?, `domain`=?, `timereg`=?, `size_max`=?, `timeedite`=?, `email`=?, `cat`=?, `about`=?");
$dbi -> execute(core::$user_id,$reg_domain,core::$realtime,314572800,0,$email,$cat,$about);
$sid = core::$db -> lastInsertId();
$dbi = core::$db -> prepare("INSERT INTO `users` SET `sid`=?, `user`=?, `ruser`=?, `pass`=?, `level`=?, `user_ip`=?, `user_soft`=?, `email_pass`=?, `vopros_pass`=?, `otvet_pass`=?, `timereg`=?, `date`=?");
$dbi -> execute($sid,$reg_nick,$lat_nick,$pass,9,core::$ipp,core::$agn,$email,$vopros_pass,$otvet_pass1,core::$realtime,core::$realtime);
$usid = core::$db -> lastInsertId();
$dbi = core::$db -> prepare("INSERT INTO `setting` SET `sid`=?, `namesite`=?, `nickname`=?");
$dbi -> execute($sid,$reg_domain,$reg_nick);
// Высылаем инструкции на E-mail
$mail = "" . $reg_nick . ", Ваш сайт http://".$reg_domain." успешно создан и уже доступен!nn Сохраните ваш пароль и логин в надежном месте nВаши данные для входа на сайт n ID: ".$usid." n Логин: ".$reg_nick." n Пароль: ".$reg_pass." nnСсылка для автовхода: nhttp://".$reg_domain."/PAGES/in.php?nick=".$usid . "&ps=".$reg_pass." nnВсю необходимую информацию вы можете найти на нашем форуме http://1wm.su , там вам всегда помогут в решении ваших задач...nnС Уважением Администрация 1WM.SU";
func::addmail($email, "Ваш сайт создан!", $mail, 'support@1wm.su', 'Конструктор сайтов 1WM.SU');
$dirnew = '../sites/'.$reg_domain;
if(mkdir($dirnew, 0777)){
mkdir('../sites/'.$reg_domain.'/styles', 0777);// Папка с дизайном
mkdir('../sites/'.$reg_domain.'/modul_files', 0777); // Папка для файлов сайта загруженных через модули
mkdir('../sites/'.$reg_domain.'/modul_files/photos', 0777);// Папка для фото юзеров
mkdir('../sites/'.$reg_domain.'/modul_files/forum', 0777);// Папка файлов форума
mkdir('../sites/'.$reg_domain.'/modul_files/privat', 0777);
mkdir('../sites/'.$reg_domain.'/modul_files/ava', 0777);
$read = "../shablony/shablon1.zip";
$dirs = '../sites/'.$reg_domain.'/';
include_once"../admin/pclzip.php";
$archive = new PclZip($read);
function myPreExtractCallBack($p_event, &$p_header)
{
$info = pathinfo($p_header['filename']);
// ----- пропускаем все .php файлы
if ($info['extension'] == 'php') {
return 0;
}
// ----- пропускаем все .htaccess файлы
/*if ($info['extension'] == 'htaccess') {
return 0;
}*/
}
$value = $archive->extract(PCLZIP_OPT_PATH, $dirs);
$newmsg = 'Поздравляем, ваш сайт [b]'.$reg_domain.'[/b] успешно создан.
Теперь вы можете перейти к его редактированию, все необходимое для этого вы найдете в вашей "Админской"';
$news = core::$db -> prepare("INSERT INTO `news` SET `sid`=?, `user_id`=?, `time`=?, `msg`=?");
$news -> execute($sid,$usid, core::$realtime, $newmsg);
core::$db->query ("INSERT INTO moduls (sid,modul) VALUES (?,?)",array($sid,'gbook'));
}
echo "<b>Ваш сайт <b>".$reg_domain."</b> успешно создан!</b><br/>Теперь вы можете приступить к его редактированию
<br/><br />Пожалуйста запомните ваши данные для входа:<br />";
echo "Ваш id: <b>".$usid."</b><br/>";
echo "Ваш логин: <b>".$reg_nick."</b><br/>";
echo "Ваш E-mail: <b>".$email."</b><br/>";
echo "Ваш Пароль: <b>".$reg_pass."</b><br/>";
echo "Секретный вопрос: <b>".$vopros_pass."</b><br/>";
echo "Секретный ответ: <b>".$otvet_pass."</b><br/><br />";
echo "Номер вашего сайта в системе: <b>".$sid."</b><br/>";
echo 'Адрес сайта: <a href="http://'.$reg_domain.'">http://'.$reg_domain.'</a><br /><br />';
echo '<a href="http://'.$reg_domain.'/PAGES/in.php?nick='.$lat_nick.'&ps='.$reg_pass.'&mod=admin" class="href">Перейти к редактированию</a><br /><br />';
//echo "PS: не удаляйте файл <b>index.html</b> и папку <b>styles</b>, они нужны для правильной работы вашего сайта. index.html - это главная страница сайта, а папка styles - содержит дизайн вашего сайта.";
}else{
header('Location: addsite.php?mod=reg');
func::errors($error, '<a href="addsite.php?mod=reg" class="href">Вернуться</a>');
}
}
break;
}
echo '<br />';
include_once ('../shaxty/foot.php');
?>