Суббота, 23 Ноября 2024, 09:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Создание браузерной МО
TarasAtavinДата: Понедельник, 19 Сентября 2011, 12:41 | Сообщение # 1
был не раз
Сейчас нет на сайте
Я не хочу использовать Flash. К нему потом нужен будет Flash Player, а кого то ещё и не подойдёт версия. Я таких проблем не хочу. Я хочу php и JavaScript. Графику - тегом canvas. Что посоветуете? Начиная с регистрации и отправки письма со ссылкой для активации на указанный при регистрации адрес. БД, конечно, MySQL. Пока я написал вот это:
Code
$Query = "DROP TABLE `users`;";
$Result = mysql_query($Query);
$Query = "CREATE TABLE `users` (id INT UNSIGNED NOT NULL AUTO_INCREMENT,
login VARCHAR (256) NOT NULL UNIQUE, password VARCHAR (1024) NOT NULL, email VARCHAR (64) NOT NULL, active TINYINT NOT NULL, code INT UNSIGNED NOT NULL, DeleteTheEmail INT UNSIGNED NOT NULL, avatar INT UNSIGNED, PRIMARY KEY(id));";
$Result = mysql_query($Query);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{//if ($_SERVER["REQUEST_METHOD"] == "POST")
       if (isset($_POST["Login"]))
       {//if (isset($_POST["Login"]))
        $Login = addslashes($_POST["Login"]);
       }//if (isset($_POST["Login"]))
       else
       {//if (isset($_POST["Login"])) else
        $Login = "";
       }//if (isset($_POST["Login"])) else
       if (isset($_POST["Password"]))
       {//if (isset($_POST["Password"]))
        $Password = addslashes($_POST["Password"]);
       }//if (isset($_POST["Password"]))
       else
       {//if (isset($_POST["Password"])) else
        $Password = "";
       }//if (isset($_POST["Password"])) else
       if (isset($_POST["Email"]))
       {//if (isset($_POST["Email"]))
        $Email = addslashes($_POST["Email"]);
       }//if (isset($_POST["Email"]))
       else
       {//if (isset($_POST["Email"])) else
        $Email = "";
       }//if (isset($_POST["Email"])) else
}//if ($_SERVER["REQUEST_METHOD"] == "POST")
else
{//if ($_SERVER["REQUEST_METHOD"] == "POST") else
       $Login = "";
       $Password = "";
       $Email = "";
}//if ($_SERVER["REQUEST_METHOD"] == "POST") else
echo "<form action=\"\" method=\"post\">\n";
echo "<table border=1 cellspacing=0 bordercolor=\"black\">\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Login:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Login\" value=\"";
echo $Login;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>Password:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"password\" name=\"Password\" value=\"";
echo $Password;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
echo "<p>e-mail:</p>\n";
echo "</td>\n";
echo "<td>\n";
echo "<input type=\"text\" name=\"Email\" value=\"";
echo $Email;
echo "\">\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=2 valign=\"top\">\n";
echo "<center><input type=\"submit\" value=\"Войти\"></center>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</form>";
if ($Email != "")
{//if ($Email != "")
       if (filter_var($Email, FILTER_VALIDATE_EMAIL))
       {//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
        $Query = "INSERT INTO `users` SET login='".$Login."', password='".$Password."', email='".$Email."', active=0, code=RAND()*2147483647, DeleteTheEmail=RAND()*2147483647;";
        $Result = mysql_query($Query);
        $Id = mysql_insert_id();
        $Query = "SELECT * FROM `users` WHERE (id='".$Id."');";
        $Result = mysql_query($Query);
        $Count = mysql_num_rows($Result);
        if ($Count > 0)
        {//if ($Count > 0)
         $Code = mysql_result ($Result, 0, "code");
         $DeleteTheEmail = mysql_result ($Result, 0, "DeleteTheEmail");
         $Link1 = "http://".$domain."/activation.php?id=".$Id."&code=".$Code;
         $Link2 = "http://".$domain."/activation.php?id=".$Id."&DeleteTheEmail=".$DeleteTheEmail;
         echo $Email;
         echo "<br>";
         echo $domain;
         echo "<br>";
         echo $Login;
         echo "<br>";
         echo $Password;
         echo "<br>";
         echo $Link1;
         echo "<br>";
         echo $Link2;
         echo "<br>";
         $Message = "<p>Вы получили это письмо, так как ".$Email." указан в качестве e-mail при регистрааии на ".$domain.". <h1><center>Ваши данные на сервере</center></h1><p>Login:".$Login."</p><p>Password:".$Password.".</p><p>Для активации перейдите по ссылке: <a href=".$Link1.">".$Link1."</a>.</p><p>Если не это не Вы, то пройдите по ссылке: <a href=".$Link2.">".$Link2."</a></p>";
         echo $Message;
         echo "<br>";
         $Headers = "From: atavin-ta@mail.ru <codesite@yandex.ru>\r\nMIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: 8bit";
         echo $Headers;
         echo "<br>";
         mail($Email, "=?utf-8?B?".base64_encode("Регистрация"), $Message, $Headers);
        }//if ($Count > 0)
        else
        {//if ($Count > 0) else
         $Query = "SELECT * FROM `users` WHERE (login='".$Login."');";
         $Result = mysql_query($Query);
         if (mysql_num_rows($Result)>0)
         {//if (mysql_num_rows($Result)>0)
          echo "<p>Такой login уже есть.</p>";
         }//if (mysql_num_rows($Result)>0)
         else
         {//if (mysql_num_rows($Result)>0) else
          echo "<p>Не известная ошибка.</p>";
         }//if (mysql_num_rows($Result)>0) else
        }//if ($Count > 0) else
       }//if (filter_var($Email, FILTER_VALIDATE_EMAIL))
       else
       {//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
        echo "<p>Проверьте e-mail!</p>";
       }//if (filter_var($Email, FILTER_VALIDATE_EMAIL)) else
}//if ($Email != "")
. Но получается такая гога:
Quote
Warning: mail() [function.mail]: SMTP server response: 550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from. See http://help.mail.ru/mail-help/mailer/popsmtp for details. in C:\wamp\www\index.php(142) : eval()'d code on line 112
Жанр - морская РПГ. И после регистрациии следующий вопрос. Игрок № 1 сделал протяжённый во времени ход, например, послал корабль в даль, а пока этот ход продолжался, игрок № 2 принял решение о своём ходе и сделал его например, послал куда то свой корабль, причём, оказалось что он попадает в поле зрения игрока №1. Как отобразить действия второго игрока первому? Вроде бы это делается аджаксом. А с чем этот аджакс едят? Попрошу ссылки на туториалы.


Сообщение отредактировал TarasAtavin - Понедельник, 19 Сентября 2011, 12:50
cougraAccДата: Понедельник, 19 Сентября 2011, 13:40 | Сообщение # 2
Яркая личность GD
Сейчас нет на сайте
Quote (TarasAtavin)
Warning: mail() [function.mail]: SMTP server response: 550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from. See http://help.mail.ru/mail-help/mailer/popsmtp for details. in C:\wamp\www\index.php(142) : eval()'d code on line 112

Качай sendmail. Ибо ругается на не настроенный sendmail и smtp
TarasAtavinДата: Понедельник, 19 Сентября 2011, 13:48 | Сообщение # 3
был не раз
Сейчас нет на сайте
Давно скачал и распокавал, все настройки по инструкции.

Сообщение отредактировал TarasAtavin - Понедельник, 19 Сентября 2011, 13:48
cougraAccДата: Понедельник, 19 Сентября 2011, 13:55 | Сообщение # 4
Яркая личность GD
Сейчас нет на сайте
Quote (TarasAtavin)
Давно скачал и распокавал, все настройки по инструкции.

Но ошибка актуальна, значит не все по инструкции
webpsyhopatДата: Вторник, 20 Сентября 2011, 09:22 | Сообщение # 5
был не раз
Сейчас нет на сайте
Quote (TarasAtavin)
$Login = addslashes($_POST["Login"]);

советую прочитать о безопасности при составлении запросов вот тут
Quote (TarasAtavin)
More specially, 'From:' header must match user you are sending mail from

Тут вроде как ругается на неправильное составление заголовка. Дословно - поле "От" должно соответствовать имени пользователя, от которого отсылается письмо.
Quote (TarasAtavin)
Как отобразить действия второго игрока первому?

Да Аяксом - либо каждые 2 секунды дергать скрипт который будет проверять на сервере появились ли какие-либо объекты в зоне видимости либо использовать более сложные технологии - long poll (тот же аякс) или comet или HTTP binding (BOSH)
Ссылки на мануалы не дам ибо сам бы не отказался от хороших манов ))


Сообщение отредактировал webpsyhopat - Вторник, 20 Сентября 2011, 11:08
SufirДата: Пятница, 23 Сентября 2011, 14:27 | Сообщение # 6
частый гость
Сейчас нет на сайте
Quote
long poll (тот же аякс) или comet или HTTP binding (BOSH)
Ссылки на мануалы не дам ибо сам бы не отказался от хороших манов ))

Присоединяюсь.


Сообщение отредактировал Sufir - Пятница, 23 Сентября 2011, 14:27
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг