Нашел и скачал пакет уроков по созданию браузерки. Создал формы входа и регистрации, а так же БД MySQL и таблицу users в ней. Но при попытке "регистрации" соответствующая запись в таблицу users не добавляется:(
$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("Could not connect : " . mysql_error()); mysql_select_db($my_database) or die("Could not select database");
Может быть кто-нибудь согласится давать мне консультации по ICQ, Skype? А то по ходу написания возникают вопросы, ставящие меня в тупик, и спросить по сути не у кого:(
Я приобрел курс по созданию браузерной игры, и часть информации оттуда мне помогает (в том числе с его помощью я разобрался в чем была проблема со скриптами из первого поста - я пытался их запустить перетаскиванием соответствующего файла в строку браузера ), но так как курс основан на создании клона БК, формат отличается и я встречаюсь с проблемами буквально после создания формы регистрации и формы входа в игру...
В скриптинге я полный нуб - так что вопросов наверное будет много и много таких которы вам покажутся глупыми...
Если вы готовы откликнуться, пожалуйста пишите тут или в личку.
Сообщение отредактировал Andy-go - Понедельник, 24 Октября 2011, 14:10
1- Мне нужно чтобы после того как новый игрок только что залогинился он попадал на страничку "выбор карты героя" на которой игрок может выбрать одну из двух расс и затем одну из двух карт героя соответствующей расы (вместе с картой он так же получает и стартовую колоду из 21 карты) - как это реализовать технически? Если я просто прикручу эту страничку то после логина игрок будет на неё попадать каждый раз, а этого не нужно. При последующих логинах он должен попадать сразу на "главную страницу игры".
Сообщение отредактировал Andy-go - Понедельник, 24 Октября 2011, 14:52
@include("config.inc.php"); //Необходимо подключиться к БД $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" ); // сделать $DB текущей базой данных mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
//Создаем запрос к базе для проверки существования Пользователя $login = mysql_escape_string( $_POST['login'] ); $pass = mysql_escape_string( $_POST['pass'] );
@include("config.inc.php"); //Необходимо подключиться к БД $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" ); // сделать $DB текущей базой данных mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
//Создаем запрос к базе для проверки существования Пользователя $login = mysql_escape_string( $_POST['login'] ); $pass = mysql_escape_string( $_POST['pass'] );
<?php @include("config.inc.php"); //Необходимо подключиться к БД $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" ); // сделать $DB текущей базой данных mysql_select_db($DB, $link) or die ('Не могу выбрать БД'); $result = mysql_query("SELECT * FROM users WHERE stat=1 and login='".$_SESSION['login']."'"); $row = mysql_fetch_array( $result ); $sql = "UPDATE users SET status = "1" WHERE id = '$row[usr_id]' limit 1"; $res = mysql_query($sql) or die(mysql_error()); ... ?>
Такой вот вопрос возник: в index.php не пойму как устроенна центральная (по горизонтали) часть окрашенная в бежевый - не могу найти в коде ни указания на её цвет, ни в Дримвиевире разобраться что это вообще за блок такой, вроде бы и не таблица (сама форма входа с кнопкой в таблице), и непонятно что...
но тут нет указания на цвет, да и вообще таблица которая тут описана, это маленькая табличка с полями логин, пароль и кнопкой. А вот чем определен цвет всей полосы никак не могу понять.
Теперь к скриптам которые вы выложили мне в помощь: users предполагает что игрок при регистрации НЕ создает персонажа, а создает его потом при первом логине в игру. - Это не совсем то, что я имел ввиду.
Нужно так: при регистрации игрок создает персонажа, но в силу игрового жанра сам персонаж будет выступать в роли некоего Демирурга, который "вдохновляет героев", таким образом игровой персонаж имеет следующие характеристики(кроме стандартных никнейм, пасс, ДР, session ID и т. д.): золото, статистику (сыгранные бои; из них выигранные, из них проигранные). Коллекцию карт героев (именно одну из этих карт игрок выбирает при первом логине в игру), коллекцию карт юнитов и магии, а так же коллекцию артефактов я так понимаю вносить в эту табличку не нужно.
Такие вот дела, таблицу юзерс я создал. А что дальше получится сейчас поглядим
Добавлено (25.10.2011, 11:15) --------------------------------------------- с auth.php все ясно.
Возник вопрос с newuser.php - я так понял что это начальная его часть предполагающая что дальше я сам справлюсь - предположение логичное, но проблема в том что в уроках которые у меня есть совершенно отсутствует такой раздел как "создание персонажа", поэтому я не представляю с какой стороны взяться за эту страничку (сверстать её в DW - как она должна выглядеть и что где должно находиться - это я могу), а вот какой код нужен чтобы все заработало я не знаю. К стати на этой же стадии возникает и ещё один вопрос: для "карт героев" я создал соответствующую табличку "hero-cards" (на данный момент там 4-е героя), как связать эту табличку с страницей newuser.php и соответственно процессом выбора расы и героя?
Добавлено (27.10.2011, 10:16) --------------------------------------------- Как в этом куске кода сделать так чтобы вместо echo осуществлялся переход на другую страницу?
Code
if(sendmail($email,$subject,$message,$headers) !== FALSE) { echo 'Регистрация завершена, код активации отправлен Вам на электронный адрес!'; }
Добавлено (27.10.2011, 10:31) --------------------------------------------- Вроде бы все сделал, ошибок не выдает, но при отправке формы регистрации остается на той же самой странице вместо того чтобы перейти на указанную...
Code
<?php session_start();
@include("config.inc.php"); @include("functions.inc.php"); //Необходимо подключиться к БД $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" ); // сделать $DB текущей базой данных mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
// данные отправлены if($_POST['do'] !='') { //Начинаем проверять входящие данные if($_POST['sid'] == $_SESSION['uid']) {
//Создаем запрос к базе для проверки существования Пользователя $login = $_POST['login']; mysql_query("SELECT * FROM users WHERE login='".strtolower($login)."'");
//Создаем запрос для записи данных в БД $query = "INSERT INTO users (login,pass,email,gender,user_birthday,character_birthday,sessionid,realname) VALUES('".strtolower($login)."','$pass','$email','$Gender','$Date',Now(),'$uniq_id','$RealName')"; $r = mysql_query($query,$link) or die("Query failed : " . mysql_error()); if($r) {
// Для отправки e-mail в виде HTML устанавливаем необходимый mime-тип и кодировку $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n"; // Откуда пришло $headers .= 'From: NewBk <game@newbk.org>'."\r\n"; //Здесь укажите электронный адрес, куда будут уходить сообщения $subject = "Подтверждение регистрaции на сайте"; $message = 'Для активации аккаунта пройдите по следующей ссылке <a href="http://newbk/regank.php?activation='.$uniq_id.'" target="_blank">http://newbk/regank.php?activation='.$uniq_id.'</a>'; $message .= 'или скопируйте ссылку в окно ввода адреса браузера и нажмите enter.'; //Отправляем сообщение if(sendmail($email,$subject,$message,$headers) !== FALSE) { "window.location.href = 'reg_sucess.php'"; } }
Andy-go, дам вам небольшой совет, учите php/html/css и сами их принцепы, ибо без этих знаний будет тяжело.
Так же совет используйте кодировку utf 8 уникод (как в базе данных так на страничках, перекодировать можно с помощю нотепада++) ибо с windows-1251 ака АНС, будет много проблем на продакшене.
Quote
Как в этом куске кода сделать так чтобы вместо echo осуществлялся переход на другую страницу?
Добавлено (27.10.2011, 11:37) --------------------------------------------- Но у меня скирпт какой-то специальный - ничего не помогает :))
Добавлено (27.10.2011, 11:41) --------------------------------------------- насчет смены кодировки: у меня уроки по которым я "учусь" они все написаны с использованием windows-1251... если я поменяю кодировочку то не станут ли все эти уроки бесполезны?
Кодировка это «набор символов» (англ. character set, charset) у вас сейчас используется windows-1251 читаем как ASCII, но для продакшена лучше использовать utf8 Юникоде так как всякие там люниксоводы, мобайлюзеры испытывают проблемы при виде страниц в ASCII.
а если и он не работает?... потому что все это я уже попробовал и результат всегда тот - же: страничка обновляется с неё исчезает форма регистрации и остается только картинка, название странички при этом остается тем же (regank.php)