vue code de sécurité - Page 2
Kommunauty
Connexion
Inscription

code de sécurité


SiMax Messages : 7572

Justement non, tu l'avais pas fait dans les codes que t'as mis sur le forum, donc je te préviens C'est pas une question d'être bête : on peut très bien être très intelligent et pas connaitre le PHP

Pour que je te dise où le mettre, fais un copier-coller de la page d'inscription stp ?

dimanche 20 juin 2010

Anonyme Messages : 0

quand je dis je suis pas bete c'est pour la décompression du fichier

sinon tu me demande de faire un screen de ma page ?

dimanche 20 juin 2010

SiMax Messages : 7572

Ah ok

Pas un screen non, tu prends juste le code de la page reg.php et tu le mets ici

Sinon, le code de sécurité tu t'en fout complétement, t'as aucun risque de bot tant que t'es pas devenu un gros site. Et la confirmation visuelle ça peut décourager de s'inscrire. Par contre, si tu vois qu'il y a des bots, là tu mettras un code. Mais pas avant, sinon c'est inutile

dimanche 20 juin 2010

Anonyme Messages : 0
<?php

/**
 * reg&#46;php
 *
 * @version 1&#46;1
 * @copyright 2008 by Chlorel for XNova
 */

define('INSIDE' , true);
define('INSTALL' , false);

$xnova_root_path = '&#46;/';
include($xnova_root_path &#46; 'extension&#46;inc');
include($xnova_root_path &#46; 'common&#46;' &#46; $phpEx);

includeLang('reg');

function sendpassemail($emailaddress, $password)
{
    global $lang;

    $parse&#91;'gameurl'&#93; = GAMEURL;
    $parse&#91;'password'&#93; = $password;
    $email = parsetemplate($lang&#91;'mail_welcome'&#93;, $parse);
    $status = mymail($emailaddress, $lang&#91;'mail_title'&#93;, $email);
    return $status;
}

function mymail($to, $title, $body, $from = '')
{
    $from = trim($from);

    if (!$from) {
        $from = Warmoon;
    }

    $rp = ADMINEMAIL;

    $head = '';
    $head &#46;= "Content-Type&#58; text/plain rn";
    $head &#46;= "Date&#58; " &#46; date('r') &#46; " rn";
    $head &#46;= "Return-Path&#58; $rp rn";
    $head &#46;= "From&#58; $from rn";
    $head &#46;= "Sender&#58; $from rn";
    $head &#46;= "Reply-To&#58; $from rn";
    $head &#46;= "Organization&#58; $org rn";
    $head &#46;= "X-Sender&#58; $from rn";
    $head &#46;= "X-Priority&#58; 3 rn";
    $body = str_replace("rn", "n", $body);
    $body = str_replace("n", "rn", $body);

    return mail($to, $title, $body, $head);
}

if ($_POST) {
    $errors = 0;
    $errorlist = "";

    $_POST&#91;'email'&#93; = strip_tags($_POST&#91;'email'&#93;);
    if (!is_email($_POST&#91;'email'&#93;)) {
        $errorlist &#46;= """ &#46; $_POST&#91;'email'&#93; &#46; "" " &#46; $lang&#91;'error_mail'&#93;;
        $errors++;
    }

    if (!$_POST&#91;'planet'&#93;) {
        $errorlist &#46;= $lang&#91;'error_planet'&#93;;
        $errors++;
    }

    if (preg_match("/&#91;^A-z0-9_-&#93;/", $_POST&#91;'hplanet'&#93;) == 1) {
        $errorlist &#46;= $lang&#91;'error_planetnum'&#93;;
        $errors++;
    }

    if (!$_POST&#91;'character'&#93;) {
        $errorlist &#46;= $lang&#91;'error_character'&#93;;
        $errors++;
    }

    if (strlen($_POST&#91;'passwrd'&#93;) < 4) {
        $errorlist &#46;= $lang&#91;'error_password'&#93;;
        $errors++;
    }
    if (strlen($_POST&#91;'passwrd'&#93;) < 4) {
        $errorlist &#46;= $lang&#91;'error_password'&#93;;
        $errors++;
    }

    if (preg_match("/&#91;^A-z0-9_ -&#93;/", $_POST&#91;'character'&#93;) == 1) {
        $errorlist &#46;= $lang&#91;'error_charalpha'&#93;;
        $errors++;
    }

    if ($_POST&#91;'rgt'&#93; != 'on') {
        $errorlist &#46;= $lang&#91;'error_rgt'&#93;;
        $errors++;
    }
    // Le meilleur moyen de voir si un nom d'utilisateur est pris c'est d'essayer de l'appeler !!
    $ExistUser = doquery("SELECT `username` FROM {{table}} WHERE `username` = '" &#46; mysql_escape_string($_POST&#91;'character'&#93;) &#46; "' LIMIT 1;", 'users', true);
    if ($ExistUser) {
        $errorlist &#46;= $lang&#91;'error_userexist'&#93;;
        $errors++;
    }
    // Si l'on verifiait que l'adresse email n'existe pas encore ???
    $ExistMail = doquery("SELECT `email` FROM {{table}} WHERE `email` = '" &#46; mysql_escape_string($_POST&#91;'email'&#93;) &#46; "' LIMIT 1;", 'users', true);
    if ($ExistMail) {
        $errorlist &#46;= $lang&#91;'error_emailexist'&#93;;
        $errors++;
    }

    if ($_POST&#91;'sex'&#93; != '' && $_POST&#91;'sex'&#93; != 'F' && $_POST&#91;'sex'&#93; != 'M') {
        $errorlist &#46;= $lang&#91;'error_sex'&#93;;
        $errors++;
    }

    if ($errors != 0) {
        message ($errorlist, $lang&#91;'Register'&#93;);
    } else {
        $newpass = $_POST&#91;'passwrd'&#93;;
        $UserName = CheckInputStrings ($_POST&#91;'character'&#93;);
        $UserEmail = CheckInputStrings ($_POST&#91;'email'&#93;);
        $UserPlanet = CheckInputStrings (addslashes($_POST&#91;'planet'&#93;));


        $md5newpass = md5($newpass);
        // Creation de l'utilisateur
        $QryInsertUser = "INSERT INTO {{table}} SET ";
        $QryInsertUser &#46;= "`username` = '" &#46; mysql_escape_string(strip_tags($UserName)) &#46; "', ";
        $QryInsertUser &#46;= "`email` = '" &#46; mysql_escape_string($UserEmail) &#46; "', ";
        $QryInsertUser &#46;= "`email_2` = '" &#46; mysql_escape_string($UserEmail) &#46; "', ";
        $QryInsertUser &#46;= "`sex` = '" &#46; mysql_escape_string($_POST&#91;'sex'&#93;) &#46; "', ";
$QryInsertUser &#46;= "`ip_at_reg` = '" &#46; $_SERVER&#91;"REMOTE_ADDR"&#93; &#46; "', ";
        $QryInsertUser &#46;= "`id_planet` = '0', ";
        $QryInsertUser &#46;= "`register_time` = '" &#46; time() &#46; "', ";
        $QryInsertUser &#46;= "`password`='" &#46; $md5newpass &#46; "';";
        doquery($QryInsertUser, 'users');
        // On cherche le numero d'enregistrement de l'utilisateur fraichement créé
        $NewUser = doquery("SELECT `id` FROM {{table}} WHERE `username` = '" &#46; mysql_escape_string($_POST&#91;'character'&#93;) &#46; "' LIMIT 1;", 'users', true);
        $iduser = $NewUser&#91;'id'&#93;;
        // Recherche d'une place libre !
        $LastSettedGalaxyPos = $game_config&#91;'LastSettedGalaxyPos'&#93;;
        $LastSettedSystemPos = $game_config&#91;'LastSettedSystemPos'&#93;;
        $LastSettedPlanetPos = $game_config&#91;'LastSettedPlanetPos'&#93;;
        while (!isset($newpos_checked)) {
            for ($Galaxy = $LastSettedGalaxyPos; $Galaxy <= MAX_GALAXY_IN_WORLD; $Galaxy++) {
                for ($System = $LastSettedSystemPos; $System <= MAX_SYSTEM_IN_GALAXY; $System++) {
                    for ($Posit = $LastSettedPlanetPos; $Posit <= 4; $Posit++) {
                        $Planet = round (rand (4, 12));

                        switch ($LastSettedPlanetPos) {
                            case 1&#58;
                                $LastSettedPlanetPos += 1;
                                break;
                            case 2&#58;
                                $LastSettedPlanetPos += 1;
                                break;
                            case 3&#58;
                                if ($LastSettedSystemPos == MAX_SYSTEM_IN_GALAXY) {
                                    $LastSettedGalaxyPos += 1;
                                    $LastSettedSystemPos = 1;
                                    $LastSettedPlanetPos = 1;
                                    break;
                                } else {
                                    $LastSettedPlanetPos = 1;
                                }
                                $LastSettedSystemPos += 1;
                                break;
                        }
                        break;
                    }
                    break;
                }
                break;
            }

            $QrySelectGalaxy = "SELECT * ";
            $QrySelectGalaxy &#46;= "FROM {{table}} ";
            $QrySelectGalaxy &#46;= "WHERE ";
            $QrySelectGalaxy &#46;= "`galaxy` = '" &#46; $Galaxy &#46; "' AND ";
            $QrySelectGalaxy &#46;= "`system` = '" &#46; $System &#46; "' AND ";
            $QrySelectGalaxy &#46;= "`planet` = '" &#46; $Planet &#46; "' ";
            $QrySelectGalaxy &#46;= "LIMIT 1;";
            $GalaxyRow = doquery($QrySelectGalaxy, 'galaxy', true);

            if ($GalaxyRow&#91;"id_planet"&#93; == "0") {
                $newpos_checked = true;
            }

            if (!$GalaxyRow) {
                CreateOnePlanetRecord ($Galaxy, $System, $Planet, $NewUser&#91;'id'&#93;, $UserPlanet, true);
                $newpos_checked = true;
            }
            if ($newpos_checked) {
                doquery("UPDATE {{table}} SET `config_value` = '" &#46; $LastSettedGalaxyPos &#46; "' WHERE `config_name` = 'LastSettedGalaxyPos';", 'config');
                doquery("UPDATE {{table}} SET `config_value` = '" &#46; $LastSettedSystemPos &#46; "' WHERE `config_name` = 'LastSettedSystemPos';", 'config');
                doquery("UPDATE {{table}} SET `config_value` = '" &#46; $LastSettedPlanetPos &#46; "' WHERE `config_name` = 'LastSettedPlanetPos';", 'config');
            }
        }
        // Recherche de la reference de la nouvelle planete (qui est unique normalement !
        $PlanetID = doquery("SELECT `id` FROM {{table}} WHERE `id_owner` = '" &#46; $NewUser&#91;'id'&#93; &#46; "' LIMIT 1;", 'planets', true);
        // Mise a jour de l'enregistrement utilisateur avec les infos de sa planete mere
        $QryUpdateUser = "UPDATE {{table}} SET ";
        $QryUpdateUser &#46;= "`id_planet` = '" &#46; $PlanetID&#91;'id'&#93; &#46; "', ";
        $QryUpdateUser &#46;= "`current_planet` = '" &#46; $PlanetID&#91;'id'&#93; &#46; "', ";
        $QryUpdateUser &#46;= "`galaxy` = '" &#46; $Galaxy &#46; "', ";
        $QryUpdateUser &#46;= "`system` = '" &#46; $System &#46; "', ";
        $QryUpdateUser &#46;= "`planet` = '" &#46; $Planet &#46; "' ";
        $QryUpdateUser &#46;= "WHERE ";
        $QryUpdateUser &#46;= "`id` = '" &#46; $NewUser&#91;'id'&#93; &#46; "' ";
        $QryUpdateUser &#46;= "LIMIT 1;";
        doquery($QryUpdateUser, 'users');
        // Envois d'un message in-game sympa ^^
        $from = $lang&#91;'sender_message_ig'&#93;;
        $sender = "Admin";
        $Subject = $lang&#91;'subject_message_ig'&#93;;
        $message = $lang&#91;'text_message_ig'&#93;;
        SendSimpleMessage($iduser, $sender, $Time, 1, $from, $Subject, $message);

        // Mise a jour du nombre de joueurs inscripts
        doquery("UPDATE {{table}} SET `config_value` = `config_value` + '1' WHERE `config_name` = 'users_amount' LIMIT 1;", 'config');

        $Message = $lang&#91;'thanksforregistry'&#93;;
        if (sendpassemail($_POST&#91;'email'&#93;, "$newpass")) {
            $Message &#46;= " (" &#46; htmlentities($_POST&#91;"email"&#93;) &#46; ")";
        } else {
            $Message &#46;= " (" &#46; htmlentities($_POST&#91;"email"&#93;) &#46; ")";
            $Message &#46;= "<br><br>" &#46; $lang&#91;'error_mailsend'&#93; &#46; " <b>" &#46; $newpass &#46; "</b>";
        }
        message($Message, $lang&#91;'reg_welldone'&#93;);
    }
} else {
    // Afficher le formulaire d'enregistrement
    $parse = $lang;
    $parse&#91;'servername'&#93; = $game_config&#91;'game_name'&#93;;
    $page = parsetemplate(gettemplate('registry_form'), $parse);

    display ($page, $lang&#91;'registry'&#93;, false);
}
// -----------------------------------------------------------------------------------------------------------
// History version
// 1&#46;0 - Version originelle
// 1&#46;1 - Menage + rangement + utilisation fonction de creation planete nouvelle generation
?>

voila ma page reg.php

dimanche 20 juin 2010

SiMax Messages : 7572

Ah ouais j'avais oublié qu'il y avait le système de templates

Ca va être très dur à faire... Il faudrait modifier le système de template, rajouter une entrée, modifier le fichier de template, modifier la page PHP pour que ça marche. Inutile de préciser que c'est quasi-impossible >.<

Du coup, je te conseille de prendre en compte mon conseil précédent : occupe-toi du jeu pour le moment et tu verras les codes de confirmation si jamais t'en as besoin

dimanche 20 juin 2010

Anonyme Messages : 0

Euh d accord je reviens dessus dans 2 semaines

sinon y a d'autre tutos qui ont l'air plus simple

ps: j'ai du mal a piger ce qu'il a de dure dans ce sujet

dimanche 20 juin 2010

Anonyme Messages : 0

tiens

je viens d'aller sur le forum officiel

et bah voila

http&#58;//board&#46;xnova-ng&#46;org/index&#46;php?showtopic=42

pour ce qui essaye

la c'est simple

lundi 21 juin 2010

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !