аккаунт ...
| |
webstrict666 | Дата: Суббота, 22 Января 2011, 22:00 | Сообщение # 21 |
постоянный участник
Сейчас нет на сайте
| Я вроде показал пример (: если знаешь как пользоватся JOIN в MYSQL то создай таблицу Char_Slot с столбами cs_uid cs_slot_1 cs_slot2 cs_slot3 и при регистрации сдеалй запрос чтоб записывался ID из таблицы Users в cs_uid и выдавай всем остальным столбцам 0 далее мутишь проверку типа if ( $slot == '0') { тут код для создания персонажа } else { выводим код что слот занят } все до боли просто ... просто посидите составьте алгоритм на бумаге и далее выложите сюда а далее будем думать как вам лучше сделать.
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Воскресенье, 23 Января 2011, 00:11 | Сообщение # 22 |
частый гость
Сейчас нет на сайте
| Quote (webstrict666) ну сделай в таблицу авторизации еще 3 столбца Slot1 Slot2 Slot3 и записывай в них char_id (далее мути проверку ) очень прошу помочь,как это в скрипте выглядит... как при создании нового чара впихивать в слоты id chara? не получается присвоить, помогите...
Сообщение отредактировал Dizelist - Воскресенье, 23 Января 2011, 00:15 |
|
| |
webstrict666 | Дата: Воскресенье, 23 Января 2011, 01:27 | Сообщение # 23 |
постоянный участник
Сейчас нет на сайте
| 0_о попроси написать за тебя скрипт (:
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Воскресенье, 23 Января 2011, 02:19 | Сообщение # 24 |
частый гость
Сейчас нет на сайте
| вот что я накалякал)) не знаю может надо было по другому... тут все сразу скрипт без запросов... Code <? include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
$name=test; // login users $query0 = mysql_query("SELECT * FROM users WHERE name='$name'"); $row = mysql_fetch_array($query0); $uid = $row["id"];
$char_name=test1; $char_race=test2; $char_level=test3; //================== //присваевание слота $query = "INSERT INTO char_slot (cs_uid) VALUES('$uid')"; $result = mysql_query($query);
$query1 = "INSERT INTO char_slot (cs_uid,cs_slot_1,cs_slot_2,cs_slot_3) VALUES('???','???','???','???')"; $result1 = mysql_query($query1); $query2 = "INSERT INTO char (uid,char_name,char_race,char_level) VALUES('$ID','$char_name','$char_race','$char_level')"; $result2 = mysql_query($query2);
if ( $slot1== '0') { $query11 = "INSERT INTO char_slot (cs_uid,cs_slot_1) VALUES('???','???')"; $result11 = mysql_query($query11); } else { if ( $slot2== '0') { $query12 = "INSERT INTO char_slot (cs_uid,cs_slot_2) VALUES('???','???')"; $result12 = mysql_query($query12); } else { if ( $slot3== '0') { $query13 = "INSERT INTO char_slot (cs_uid,cs_slot_3) VALUES('???','???')"; $result13 = mysql_query($query13); } else { //выводим код что слот занят } } } ?> подскажи как мне uid из таблицы chars присвоить к слотам....
Сообщение отредактировал Dizelist - Воскресенье, 23 Января 2011, 02:25 |
|
| |
webstrict666 | Дата: Воскресенье, 23 Января 2011, 03:08 | Сообщение # 25 |
постоянный участник
Сейчас нет на сайте
| Начнем с базы создаешь 2 таблицы (пользователей и слотов чаров) Структура таблицы `char_slot` Code CREATE TABLE IF NOT EXISTS `char_slot` ( `uid` int(11) NOT NULL, `slot1` int(11) NOT NULL, `slot2` int(11) NOT NULL, `slot3` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Разберем: uid - это индификатор пользователя, записывается согласно ID пользователя в таблице USER slot1 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара slot2 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара slot3 - в данный слот записываются только integer значения (только цифры), я подразумеваю что будет записываться ID чара Структура таблицы `users` Code
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `name` varchar(15) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; id - Уникальный индефикатор... выдается согласно условию авто инкрумент. name - поле логина (15 символов) password - Поле пароля (20 символов), если будешь делать шифрование под md5 или sha1 то тип поля TEXT и не каких ограничений С базой закончили... Создаем структуру ядра. Создаем папку engine в ней создаем папку data В корневой папке 1 файл и в папке data 2 файла. Начнем с папки DATA, создаем файл в папке DATA обзываем его config.php Code <?php
/** * @author WebStrict666 (GameSkrol) * @copyright 2011 */
define ( 'DB_USER', '' ); //Юзер define ( 'DB_PASSWORD', '' ); //Пароль define ( 'DB_HOST', '' ); //Хост базы define ( 'DB_NAME', '' ); //Название базы
?> Это данные для подключения к MYSQL , переходим непосредственно к подключению, создаем файл connet.php Code <?php
/** * @author WebStrict666(GameSkrol) * @copyright 2011 */ //Подключаем файл конфигураций include 'config.php'; //Производим подключение к базе mysql_connect ( DB_HOST, DB_USER, DB_PASSWORD ); mysql_query( 'SET NAMES cp1251' ); mysql_select_db ( DB_NAME ); //Включаем сессию. session_start();
?> Все прокомментировано, хочу сказать насчет сесси - ее по желанию используем здесь , но советую не убирать... переходим в корневую папку и создаем index.php (Он будет и регистрацию и авторизацию производить) Code <?php
/** * @author WebStrict666 (GameSkrol) * @copyright 2011 */
//Подключаемся к базе include 'engine/data/connect.php'; //Проверяем нажата ли кнопка регистрации if ($_POST['btn_reg']) { //Здесь записываем $name = trim($_POST['name']); //Записываем поле name в переменную $password = trim($_POST['password']); //Записываем password name в переменную $raca = $_POST['raca']; //Записываем поле raca в переменную //Выполняем запрос добавляющее пользователя в базу USER $query = "INSERT INTO users (name,password) VALUES('$name','$password')"; $result = mysql_query($query); // Обращаемся к таблице users по нику для определения ID $query = "SELECT * FROM users WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $uid=$row['id'];
// Создаем строку персонажей в таблицу Char_Slot $query = "INSERT INTO Char_Slot (uid,slot1,slot2,slot3) VALUES('$uid','0','0','0')"; $result = mysql_query($query); } // Проверяем переданы ли Логин и пароль if(isset($name) && isset($password)) { //проверяем есть ли ник в базе $query = "SELECT * FROM users WHERE name='{$name}'"; $result = mysql_query ($query); if (!($result)) { // Проверяем если ник есть в базе то записываем переданные данные формы в сессию $Login=$_SESSION['name']; $ID=$_SESSION['id']; $Pass=$_SESSION['Password']; $messages = 'Вы успешно авторизовались <a href=index.php>На главную</a>'; } else { $messages = 'Че за? Зарегся епт...'; }
} ?> <!-- С PHP Частью мы закончили идем к HTML, начинаем все с формы --> <form name="" method="post"> <table> <?php if(isset($messages)) { echo $messages;}?> <tr><td>Логин:</td><td><input type="text" name="name"></td></tr> <tr><td>Пароль:</td><td><input type="password" name="password"></td></tr> <tr><td> </td><td><input type="submit" value="Регистрация" name="btn_reg"></td></tr> </table> </form> В принципе все очень просто... если вы этого не поймете, то оплачивайте я вам напишу ядро... Добавлено (23.01.2011, 03:08) --------------------------------------------- Код исправлен все работает 100%
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
Сообщение отредактировал webstrict666 - Воскресенье, 23 Января 2011, 03:55 |
|
| |
Dizelist | Дата: Воскресенье, 23 Января 2011, 03:13 | Сообщение # 26 |
частый гость
Сейчас нет на сайте
| webstrict666, спасибо за ваш труд,пойду разбираться! вам+
|
|
| |
webstrict666 | Дата: Воскресенье, 23 Января 2011, 03:21 | Сообщение # 27 |
постоянный участник
Сейчас нет на сайте
| Алгоритм http://imglink.ru/pictures/23-01-11/7030540cf2982a38a2d9c79d5f6c253a.jpg
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Воскресенье, 23 Января 2011, 03:49 | Сообщение # 28 |
частый гость
Сейчас нет на сайте
| выдает ошибку Parse error: parse error in C:\xampp\htdocs\game\test\index.php on line 57 что тут не так... <? if(isset($messages) { echo $messages;}?> Добавлено (23.01.2011, 03:49) --------------------------------------------- нашол, тат скобка открыта(
|
|
| |
webstrict666 | Дата: Воскресенье, 23 Января 2011, 03:51 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| Сори быстро писал (: не заметил ...
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Понедельник, 24 Января 2011, 09:35 | Сообщение # 30 |
частый гость
Сейчас нет на сайте
| не подскажите как сделать выбор чара и вход в игру под ним... я думал как то так... Code <tr><td><? echo $hname1; ?></td><td><input type="checkbox" name="checkme1" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr> Code if ($_POST['chars_enter']) { if ( $checkme1 == '1') { $query = mysql_query("SELECT * FROM chars WHERE id_chars='".$email."'"); $row = mysql_fetch_array($query); $num = mysql_num_rows($query); if ($num > 0){ $_SESSION['name'] = $row['chars']; $_SESSION['id_chars'] = $row['id_chars']; echo "<script>location.href='game.php';</script>"; } } } у меня 3 checkbox, как их выбирать...
|
|
| |
webstrict666 | Дата: Понедельник, 24 Января 2011, 11:10 | Сообщение # 31 |
постоянный участник
Сейчас нет на сайте
| почитай про case PHP думаю сам разберешся Добавлено (24.01.2011, 11:10) --------------------------------------------- не понятно еще Code $query = mysql_query("SELECT * FROM chars WHERE id_chars='".$email."'"); Ты делаешь запрос на выборку ID_chara а тебе надо проверить есть ли у него вообще чары... еще ты выбираешь ID по емэйлу не кажется абсурдным?:)
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Понедельник, 24 Января 2011, 13:46 | Сообщение # 32 |
частый гость
Сейчас нет на сайте
| вот весь код,может поймете... Code <? session_start(); include "conf.php"; $data = mysql_connect($base_name, $base_user, $base_pass); mysql_select_db($db_name);
if (isset($_SESSION['email'])) { //===================================================================== // Обращаемся к таблице users по нику для определения ID $query = "SELECT * FROM users WHERE email='".$_SESSION['email']."'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $uid=$row['id_user']; //===================================================================
// Обращаемся к таблице char_slot по uid для проверки slot $query = "SELECT * FROM char_slot WHERE uid='$uid'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $slot1=$row['slot1']; $slot2=$row['slot2']; $slot3=$row['slot3'];
//================================================================== if ($_POST['chars_add']) { //Здесь записываем $name = trim($_POST['name']); //Записываем поле name в переменную //проверяем есть ли чар в базе $query = "SELECT * FROM chars WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $char_name=$row['name']; if ( $char_name == $name ) { // Проверяем если ник есть в базе то записываем переданные данные формы в сессию echo "Имя занято"; } else { if ( $slot1== '0') { // Создаем имя чара в таблицу Char $query = "INSERT INTO chars (name) VALUES('$name')"; $result = mysql_query($query); // Обращаемся к таблице chars по нику для определения ID $query = "SELECT * FROM chars WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hid=$row['id_chars']; // $query = mysql_query("UPDATE Char_Slot SET slot1='$hid' WHERE uid='$uid'"); } else { if ( $slot2== '0') { // Создаем имя чара в таблицу Char $query = "INSERT INTO chars (name) VALUES('$name')"; $result = mysql_query($query); // Обращаемся к таблице chars по нику для определения ID $query = "SELECT * FROM chars WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hid=$row['id_chars']; // $query = mysql_query("UPDATE Char_Slot SET slot2='$hid' WHERE uid='$uid'"); } else { if ( $slot3 == '0') { // Создаем имя чара в таблицу Char $query = "INSERT INTO chars (name) VALUES('$name')"; $result = mysql_query($query); // Обращаемся к таблице chars по нику для определения ID $query = "SELECT * FROM chars WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hid=$row['id_chars']; // $query = mysql_query("UPDATE Char_Slot SET slot3='$hid' WHERE uid='$uid'"); } else { echo "нет свободных слотов"; } } } } } //==================================================================== function checkbox_verify($_name) { // Создаем имя чара в таблицу Char $query = "DELETE FROM chars WHERE id='".$id."'"; $result = mysql_query($query); // Обращаемся к таблице chars по нику для определения ID $query = "SELECT * FROM chars WHERE name='$name'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hid=$row['id_chars']; // $query = mysql_query("UPDATE Char_Slot SET slot1='0' WHERE uid='$uid'"); } echo checkbox_verify('checkme1'); $query = "SELECT * FROM Char_Slot WHERE uid='$uid'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $sid_1=$row['slot1']; $sid_2=$row['slot2']; $sid_3=$row['slot3']; if ($_POST['chars_del']) { $checkme1 = trim($_POST['checkme1']); //Записываем поле name в переменную $checkme2 = trim($_POST['checkme2']); //Записываем поле name в переменную $checkme3 = trim($_POST['checkme3']); //Записываем поле name в переменную if ( $checkme1 == '1') { $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_1."'"); $query = mysql_query("UPDATE Char_Slot SET slot1='0' WHERE uid='$uid'"); echo "персонаж удален"; } if ( $checkme2 == '1') { $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_2."'"); $query = mysql_query("UPDATE Char_Slot SET slot2='0' WHERE uid='$uid'"); echo "персонаж удален"; } if ( $checkme3 == '1') { $query = mysql_query("DELETE FROM chars WHERE id_chars='".$sid_2."'"); $query = mysql_query("UPDATE Char_Slot SET slot3='0' WHERE uid='$uid'"); echo "персонаж удален"; } }
$query = "SELECT * FROM chars WHERE id_chars='$sid_1'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hname1=$row['name']; $query = "SELECT * FROM chars WHERE id_chars='$sid_2'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hname2=$row['name']; $query = "SELECT * FROM chars WHERE id_chars='$sid_3'"; $result = mysql_query ($query) or die ("Ошибка получения ID".mysql_error()); $row = mysql_fetch_array($result); $hname3=$row['name']; echo "id=",$uid,", slot_1=",$slot1,", slot_2=",$slot2,", slot_3=",$slot3; ?>
<form name="" method="post"> <table> <?php //if(isset($messages)) { echo $messages;}?> <tr><td>Имя:</td><td><input type="text" name="name"></td></tr> <tr><td> </td><td><input type="submit" value="создать" name="chars_add"></td></tr> </table> </form> <form action="" method="post"> <table> <tr><td><? echo $hname1; ?></td><td><input type="checkbox" name="checkme1" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr> <tr><td><? echo $hname2; ?></td><td><input type="checkbox" name="checkme2" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr> <tr><td><? echo $hname3; ?></td><td><input type="checkbox" name="checkme3" value="1"><input type="submit" value="войти" name="chars_enter"><input type="submit" value="удалить" name="chars_del"></td></tr> </table> </form>
<? }else{ echo "<script>location.href='index.php';</script>"; } ?>
|
|
| |
webstrict666 | Дата: Понедельник, 24 Января 2011, 16:44 | Сообщение # 33 |
постоянный участник
Сейчас нет на сайте
| Ужас нах)я написал о чем почитать
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
Dizelist | Дата: Понедельник, 24 Января 2011, 16:46 | Сообщение # 34 |
частый гость
Сейчас нет на сайте
| а вы как думали,с первого раза тыкву в хамер превратить да?) читаю,спасибо за совет!
|
|
| |
webstrict666 | Дата: Понедельник, 24 Января 2011, 21:34 | Сообщение # 35 |
постоянный участник
Сейчас нет на сайте
| Думаю если хочешь создавать игру а тем более браузерную ... надо хотя бы 60% багажа знаний ...
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
vladboss | Дата: Понедельник, 24 Января 2011, 22:11 | Сообщение # 36 |
постоянный участник
Сейчас нет на сайте
| дык эти знания из опыта и беруться не так ли и из подобных этому форуму??? главное чтоб желание не пропало)
-помог ставь +
АБП production ©
Сообщение отредактировал vladboss - Понедельник, 24 Января 2011, 22:11 |
|
| |
webstrict666 | Дата: Вторник, 25 Января 2011, 00:29 | Сообщение # 37 |
постоянный участник
Сейчас нет на сайте
| нет , они берутся не с форумов а из учебников ... такие форумы нужны для помощи (это подправить кусочек кода (правельно написаного.) но надо примерный алгоритмы (а половину людей пишут от "Балды")) Ну так начать надо с PHP4 потом перейти на PHP5 потом организовать ядро, вот как я сейчас делаю:
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
Сообщение отредактировал webstrict666 - Вторник, 25 Января 2011, 00:29 |
|
| |
vovnet | Дата: Среда, 26 Января 2011, 09:59 | Сообщение # 38 |
почетный гость
Сейчас нет на сайте
| Quote (webstrict666) ...вот как я сейчас делаю: webstrict666, это с использованием MVC?
Сообщение отредактировал vovnet - Среда, 26 Января 2011, 10:00 |
|
| |
webstrict666 | Дата: Четверг, 27 Января 2011, 00:30 | Сообщение # 39 |
постоянный участник
Сейчас нет на сайте
| Угу , все через контроллер + защита всех файлов (:
http://GAMESKROL.RU Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
|
|
| |
|