![](https://fr.metin2.dev/uploads/set_resources_42/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://fr.metin2.dev/uploads/set_resources_42/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
Hystos
-
Compteur de contenus
256 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Boutique
Calendrier
Messages posté(e)s par Hystos
-
-
Passe le champs last_vote en DATETIME,
Sais-tu si la variable $date est définie dans le contrôleur (index.php) ? Car là je la vois pas dans le code. Théoriquement, elle doit être une date au format DATETIME.
-
Essaie de rajouter sur la première requête :
$sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'");
ceci :
$sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'") or die(mysql_error());
Il est possible que l'erreur vienne de cette requête mais qu'elle ne te soit pas affichée.
-
Nan : je te le fais pour une et tu fais parreil pour les autres :
$sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account WHERE ip = '$ip'");
On rajoute un account. devant la table :
$sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'");
-
et vote ?
Sinon, rajoute à toutes tes requêtes la base dans laquelle s'exécuter (par exemple à la place d'uniquement account mettre account.account).
-
$cash = $donnees['cash'] 100; /* Nombre de point ajouté au compte */ $vote = $donnees['vote'] 1;
Pas du tout, ce qui bloque, c'est cette condition :
if($last_vote >= 5400)
En effet, ça lui affiche l'erreur. C'est donc qu'il y a un problème avec la variable $last_vote
De plus, là, je vois pas trop ce que tu veux faire ? ça veut rien dire ce que tu as écris... Mettre 2 valeurs comme ça, ça ne fera uniquement que planter encore plus le script
-
As-tu bien configuré les champs last_vote et vote dans ta table account ?
-
Fait de même avec ton anti-virus, on sait jamais.
Sinon, si tu utilises skype, ferme le et relance wamp puis seulement quand l'icon est vert relance skype.
-
Essaie de désactiver ton firewall.
-
Si ton port 80 n'est pas ouvert dans portmap, ouvre le de la même manière que les autres.
-
Et surtout ouvrir ton port 80 pour que les requêtes HTTP puissent passer
-
Bonjour,
Avez-vous bien votre serveur ouvert ? Avez-vous rentré les identifiants corrects de connexion à votre base de données ? Vous pouvez les vérifier dans le fichier config.inc.log.php
-
Essaie de modifier ça pour voir si les informations sont bien générées :
if(!is_numeric($k)) { $tpl->assign('config_is_'.$k, $v); echo 'k = '.$k.' et v = '.$v.' '; }
-
Ton site utilise PDO.
Essaie comme ça :
<?php if($key_secu != "Kotus&MonsterSontGeniaux:97528643@B$") { exit(); } /** * MT2-CMS * @author JigSaw * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ * @version b1.002 24/04/2010 * @link http://mt2cms.free.fr * * [payement.php] * Page de Recharge de compte. Cette page permet aux joueurs de recharger leurs comptes en Cash. * L'achat se fait via Allopass. La configuration se fait sur 'config_is.php' * **/ /** *Configuration de l'IS **/ $sql = bdd('website')->query("SELECT * FROM payement LIMIT 1"); $CONFIG_is = $sql->fetch(); foreach ($CONFIG_is as $k => $v) { if(!is_numeric($k)) { $tpl->assign('config_is_'.$k, $v); } } //On met le payement a false $payement=false; /** *Si on Utilise Allopass **/ if($CONFIG_is['method'] == 1) { /** *Si on recoit un payement validé **/ if(isset($_GET['valid']) and $_GET['valid']=='ok' and @!empty($_GET['RECALL'])) { //Vérification du code par allopass $RECALL = urlencode($_GET['RECALL']); $AUTH = urlencode($CONFIG_is['auth']); $r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" ); //Si le code est validé, on crédite le compte if( substr( $r[0],0,2 ) == "OK" ) { $payement=true; } // Sinon on affiche un essage d'erreur else { $tpl->assign('valid_pay', 'nok'); } } /** *Si on recoit un payement érroné **/ elseif(isset($_GET['valid']) and $_GET['valid']=='nok') { $tpl->assign('valid_pay', 'nok'); } /** *Si on ne recoit pas de payement **/ else { $tpl->assign('valid_pay', '0'); } } /** *Si on Utilise Starpass **/ if($CONFIG_is['method'] == 2) { /** *Si on a envoyé le code **/ if(isset($_POST['idd']) and $_GET['valid']=='ok') { //Déclaration des variables $ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas=''; //On récupère les identifiants sous la forme "xxx;xxx;xxx" if(isset($_POST['idp'])) $idp = $_POST['idp']; if(isset($_POST['ids'])) $ids = $_POST['ids']; //$ids n'est plus utilisé, mais il faut conserver la variable pour une question de compatibilité if(isset($_POST['idd'])) $idd = $_POST['idd']; $ident=$idp.";".$ids.";".$idd; //On récupère le(s) code(s) sous la forme "xxxxxxxx;xxxxxxxx" if(isset($_POST['code1'])) $code1 = $_POST['code1']; if(isset($_POST['code2'])) $code2 = ";".$_POST['code2']; if(isset($_POST['code3'])) $code3 = ";".$_POST['code3']; if(isset($_POST['code4'])) $code4 = ";".$_POST['code4']; if(isset($_POST['code5'])) $code5 = ";".$_POST['code5']; $codes=$code1.$code2.$code3.$code4.$code5; //On récupère le champ DATAS" if(isset($_POST['DATAS'])) $datas = $_POST['DATAS']; //On encode les trois chaines en URL $ident=urlencode($ident); $codes=urlencode($codes); $datas=urlencode($datas); /* Envoie de la requête vers le serveur StarPass Dans la variable tab[0] on récupère la réponse du serveur Dans la variable tab[1] on récupère l'URL d'accès ou d'erreur suivant la réponse du serveur */ $get_f=@file("http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas"); //Si on contact le serveur if($get_f) { $tab = explode("|",$get_f[0]); // dans $pays on a le pays de l'offre. exemple "fr" $pays = $tab[2]; // dans $palier on a le palier de l'offre. exemple "Plus A" $palier = urldecode($tab[3]); // dans $id_palier on a l'identifiant de l'offre $id_palier = urldecode($tab[4]); // dans $type on a le type de l'offre. exemple "sms", "audiotel, "cb", etc. $type = urldecode($tab[5]); // vous pouvez à tout moment consulter la liste des paliers à l'adresse : http://script.starpass.fr/palier.php //Si $tab[0] répond "OUI" if(substr($tab[0],0,3) == "OUI") { $payement=true; } else { $tpl->assign('valid_pay', 'nok'); } } else { $tpl->assign('valid_pay', 'error'); } } /** *Si on ne recoi pas de payement **/ else { $tpl->assign('valid_pay', '0'); } } /** *Sinon on désactive **/ else { //Action en début du fichier payement.tpl } /** *On teste si le payement est OK *Si oui, on crédite le compte **/ if($payement) { $sql = bdd('account')->query("UPDATE account SET cash = cash+".$CONFIG_is['nb_cash']." WHERE id = $id_membre"); $tpl->assign('valid_pay', 'ok'); } $tpl->parse('account/payement.tpl'); ?>
-
1
-
-
Là il y a pas de connexion SQL. C'est sans doute pour ça que ça bug
Montre nous ta page function.php au cas où elle serait dedans.
-
Avez-vous bien installé les tables SQL dans le tutoriel ?
-
Pour l'erreur 3, peux-tu nous faire un dump de ta table log ?
-
Tu peux en supprimant le pack de ta map et en au même chemin sur ton ordinateur mettant les fichiers.
Je m'explique :
Pour les textures, mon client fait appel aux fichiers présents dans D:/Ymir work/terrainmaps, même quand je n'ai pas le pack dedans. Ainsi j'ai supprimé mon pack, mis les fichiers à l'endroit demandé et ça marche pareil, et pas besoin de repack pour tester
-
Si tu as besoin d'un développeur PHP pour t'aider, je suis disponible en cas de besoin.
-
Il me semble que c'est la map de coordonnées 832 0 sur les files 2012 (metin2_map_turko mais je suis pas sur du nom).
Pour les groupes, c'est le fichier group.txt.
-
site
dans Questions & Réponses
Le tutoriel est en ligne : https://fr.metin2.dev/topic/12387-thread/&pid=331508#pid331508.
-
site
dans Questions & Réponses
Bonsoir,
Je me charge de vous en écrire un
-
Théoriquement, il n'y a que 2 statuts possibles : OK et BLOCK. Cela reviendra au même. Cependant, il faut voir au niveau temps d'exécution. Après quelques tests, la version "!=" est meilleur.
Pilori # Compte Début du ban Fin du ban Raison Banni par <?php echo $joueurs2['login']; ?>
-
L'erreur te signale qu'il y a quelque chose qui n'est pas fermé dans la page, ici c'est la boucle while.Cependant, ton code, même corrigé, ne fonctionnera pas. Je vais essayer de te faire comprendre pourquoi.
<?php $nb3=mysql_query("SELECT * FROM $db_account.account WHERE status='BLOCK'")or die(mysql_error()); while($joueurs2 = mysql_fetch_assoc($nb3)); { ?>
Ce code PHP va sélectionner tous les comptes dont le status est bloqué, ce qui est correct. Ensuite, on créé une boucle pour lire le contenu de toutes les entrées conscernées, une à une.On sait que toute boucle commence par un { et se termine par }. L'erreur que t'affiche PHP vient du fait que là tu n'as pas fermé la boucle. Cependant, tout le code entre les accolades sera exécute pour chaque boucle de la boucle. Ce n'est pas ce qu'on veut ici. En effet, on veut un tableau fixe dans lequel on va afficher pour chaque ligne un compte. Le code PHP est donc mal placé.Voici le code corrigé :
Pilori # Compte Début du ban Fin du ban Raison Banni par <?php echo $joueurs2['login']; ?>
Attention : Il te manque des informations pour remplir ton tableau !
-
Je ne suis pas certain que ça soit possible facilement en jeu.
Pour moi, la meilleure méthode est de proposer ce système sur le site, ce qui permet l'actualisation quasi instantanée.
De ce fait, pour le système, c'est assez simple et complexe à la fois. Lorsque le joueur veut redevenir niveau 1, il passe par le site. Le système le fait d'abord patienter quelques minutes en bloquant son compte jeu (ban). Au bout d'un temps défini, il modifie les données dans la table player. Dès que c'est fait, il peut encore attendre pendant un petit temps avant de debloquer le compte.
Pour le temps, je pense que la manière la plus simple est de faire un compteur en javascript qui dira à l'utilisateur d'actualiser sa page après le temps défini écoulé.
Je ne sais pas si j'ai été très clair... Si tu as des questions, n'hésite pas.
aide site problème vote
dans Questions & Réponses
Posté(e)
Peux-tu faire un screen du contenu du champs last_vote dans navicat ?