JeuWeb - Crée ton jeu par navigateur
XAJAX/PHP/MYSQL Probleme - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : XAJAX/PHP/MYSQL Probleme (/showthread.php?tid=5494)

Pages : 1 2 3 4


XAJAX/PHP/MYSQL Probleme - Bazooka - 16-06-2011

Salut a tous voila j'ai un méchant problème aider moi car ses au point tel que je vais pitcher le pc par la fenetre GRRRRRRRRRRRRRRRRRRRRRRRR


voila il veux pas aller chercher .. se que je lui demande a la premiere select a la 2eme .. mais si je fais a la 2eme directement $_GET['id'] sa fonctione mais le probleme es que je ne peux pas simplement avec le get car ses une messagerie .. donc je vais pas cherche 1 mais tout ceux associer ..

voici mon code


Code :
<?
function afficher()
{
        $reponse = new xajaxResponse();// Création d'une instance de xajaxResponse pour traiter les réponses serveur.
        $chat = '';// Initialisation de la variable $chat.
        $fichier_texte = fopen('./chat.txt', 'r');// On ouvre notre fichier texte en lecture seule.
        $chat = fread($fichier_texte, filesize('./chat.txt'));//On lit notre fichier et on stocke son contenu dans la variable $chat.
        fclose($fichier_texte);//On ferme notre fichier texte.
/////// ICI
$query1 = "SELECT * FROM msg where `id`=".$_GET['id']."";
$qry_result1 = mysql_query($query1) or die(mysql_error());
$row1 = mysql_fetch_assoc($qry_result1);

$query = "SELECT * FROM msg where `player`=".$row1[player]." and `enemy`=".$row1[enemy]."";

////// FIN DU PROBLEME

$qry_result = mysql_query($query) or die(mysql_error());
    //Build Result String
$display_string = '<table class="tableau" width="490">';
$display_string .= "<tr>";
$display_string .= '<th width="20">Joueur</th>';
$display_string .= '<th width="180">Message</th>';
$display_string .= "</tr>";

    // Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
    $display_string .= "<tr>";
    $display_string .= "<td width=\"80\">$row[player2]</td>";
    $display_string .= "<td width=\"180\">$row[body]</td>";
    $display_string .= "</tr>";

    
}
$display_string .= "</table>";

        $reponse->assign('block', 'innerHTML', $display_string);// Enfin, on remplace le contenu du div block par le contenu de $chat.
    $reponse->script("hideLoadingMessage();");// ON CACHE LE MESSAGE DE CHARGEMENT.
        return $reponse;
}
?>



RE: XAJAX/PHP/MYSQL Probleme - niahoo - 17-06-2011

Hello, je ne comprends rien à ce que tu racontes, mais je veux bien t'aider. Seulement, je ne comprends pas ton problème.


RE: XAJAX/PHP/MYSQL Probleme - php_addict - 17-06-2011

Citation :$query1 = "SELECT * FROM msg where `id`=".$_GET['id']."";

oulala c'est quoi toutes ces guillemets doubles ? et les conventions typologiques dans tes requêtes ???

ca serait pas plutot:


$id = $_GET['id'];
$query1 = "SELECT * FROM msg WHERE id=$id";

mais avec ca bonjour les injections de code SQL...il faut que:

1) ne plus écrire "se que je lui" mais "ce que je lui"
2) écrire WHERE au lieu de where
3) étudier les requêtes préparées ou au moins utiliser mysql_real_escape_string()
4) utiliser les feuilles de styles dans ton code HTML
5) séparer ton code HTML de ton code php (un peu à la sauce Modèle Vue Contrôleur)
6) ne pas s'énerver sur son ordi Wink il fait juste ce qu'on lui demande de faire...


RE: XAJAX/PHP/MYSQL Probleme - Bazooka - 17-06-2011

merci bon j'apprend presentement le XAJAX donc sa peux arriver par moment ... ^^ ses normal
pour les injections je test le code avant de proteger pas d'inquétude Smile

mais sa marche toujour pas :/


Le problème est le suivant:

la premièe requette ne se fait pas donc il associe rien pour la 2ème requette donc rien s'affiche :S


RE: XAJAX/PHP/MYSQL Probleme - djidi - 17-06-2011

Tu es sur que $_GET['id'] existe ?
S'il existe, est-ce bien un nombre ? (si c'est un caractère non numérique, tu auras une erreur SQL car tu n'utilises pas de quotes).


RE: XAJAX/PHP/MYSQL Probleme - niahoo - 17-06-2011

ça n'existe pas « le XAJAX » , c'est comme les gens qui parlent d'un site fait « en Ruby on Rails », « c'est un site écrit en Django ? ».

sinon tu peux nous faire un petit var_dump($row1) quelque part et nous montrer ce que ça imprime ?


RE: XAJAX/PHP/MYSQL Probleme - Ter Rowan - 17-06-2011

(17-06-2011, 05:58 PM)niahoo a écrit : sinon tu peux nous faire un petit var_dump($row1) quelque part et nous montrer ce que ça imprime ?

et un echo de $query1

et le contenu des tables





RE: XAJAX/PHP/MYSQL Probleme - Bazooka - 17-06-2011

J'ai découvert le probleme mais la j'ai un gros soucis !

il lis pas les champ text, vachar .. ! :S

si je fais sa sa fonctione autrement en text vachar.. sa plante ..
$query = "SELECT * FROM msg where id=".$row1['id']."";

le message d'erreur:

Unknown column 'test' in 'where clause'


Code :
<?php


include("lib.php");
define("PAGENAME", "Concession");
$player = check_user($secret_key, $db);

function afficher()
{
        $reponse = new xajaxResponse();// Création d'une instance de xajaxResponse pour traiter les réponses serveur.
        $chat = '';// Initialisation de la variable $chat.
        $fichier_texte = fopen('./chat.txt', 'r');// On ouvre notre fichier texte en lecture seule.
        $chat = fread($fichier_texte, filesize('./chat.txt'));//On lit notre fichier et on stocke son contenu dans la variable $chat.
        fclose($fichier_texte);//On ferme notre fichier texte.

$id = $_GET['id'];
$query1 = "SELECT * FROM msg WHERE id=$id";
$qry_result1 = mysql_query($query1) or die(mysql_error());
$row1 = mysql_fetch_array($qry_result1);

$query = "SELECT * FROM msg where player=".$row1['player']."";

$qry_result = mysql_query($query) or die(mysql_error());
    //Build Result String
$display_string = '<table class="tableau" width="490">';
$display_string .= "<tr>";
$display_string .= '<th width="20">Joueur</th>';
$display_string .= '<th width="180">Message</th>';
$display_string .= "</tr>";

    // Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
    $display_string .= "<tr>";
    $display_string .= "<td width=\"80\">$row[player2]</td>";
    $display_string .= "<td width=\"180\">$row[body]</td>";
    $display_string .= "</tr>";

    
}
$display_string .= "</table>";

        $reponse->assign('block', 'innerHTML', $display_string);// Enfin, on remplace le contenu du div block par le contenu de $chat.
    $reponse->script("hideLoadingMessage();");// ON CACHE LE MESSAGE DE CHARGEMENT.
        return $reponse;
}








    
require_once('./xajax_core/xajax.inc.php');
$xajax = new xajax(); // On initialise l'objet xajax.
$xajax->setCharEncoding('iso-8859-1');// On précise à xAjax qu'on souhaite travailler en ISO-8859-1.
$xajax->register(XAJAX_FUNCTION, 'afficher');// On enregistre nos fonctions.
$xajax->register(XAJAX_FUNCTION, 'envoyer');
$xajax->processRequest();// Fonction qui va se charger de générer le Javascript, à partir des données que l'on a fournies à xAjax APRÈS AVOIR DÉCLARÉ NOS FONCTIONS.
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
                <title>Chat xAjax</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
                <script type="text/javascript">
                function refresh()// Code Javascript qui va appeler la fonction afficher toutes les 5 secondes.
                {
        printLoadingMessage('');// On va appeler xajax_afficher, alors juste avant on affiche notre message.
                        xajax_afficher();
                        setTimeout(refresh, 5000);
                }
        function printLoadingMessage(loadingMessageText)
                {
                        if(!loadingMessageText)//Si aucun message personnalisé n'a été précisé, on lui donne le message par défaut.
                        {
                                loadingMessageText = '';
                        }
                        var parentNode = document.getElementById('loadingMessage');// On récupère le nœud parent qui est la balise div.
                        var textNode = document.createTextNode(loadingMessageText);//On crée un nœud enfant qui est tout simplement le texte.
                        parentNode.replaceChild(textNode, parentNode.firstChild);// On accroche le texte à la balise div.
                        document.getElementById('loadingMessage').style.visibility='hidden';// Puis on rend visible le bloc.
                }
                function hideLoadingMessage()
                {
                        document.getElementById('loadingMessage').style.visibility='hidden';// On rend le message invisible.
                }
                </script>
        </head>
        <body>
<?
$display_string .= "</table>";
include("templates/private_header.php");
echo "<div class=\"contenu\">
<div class=\"contenu_bloc\">";

?>

        <div id="loadingMessage" style="font-size: 15px; color: white; position: fixe; visibility: hidden; padding: 5px; background-color: red; width: 40%;">Chargement...</div>
                <div id="block"></div>

                <form action="">
                        <fieldset>
                         <legend>Entrer ici votre message :</legend>
                         <div>
                          <label>Nom : <input type="text" size="15" readonly="readonly" value="<?=$player->username;?>" id="posteur" name="posteur" /></label><br /><br />
                          <label>Message : <textarea type="textarea" maxLength="520" size="10" cols="30" rows="5" id="message" name="message" /></textarea></label><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                          <input type="submit" class="btn_medium" value="Envoyer" onclick="printLoadingMessage(''); xajax_envoyer(xajax.getFormValues(this.form)); return false;" />


                         </div>
                        </fieldset>
                </form>

                <script type="text/javascript">
                        refresh();// On appelle la fonction refresh() pour lancer le script.
                </script>



RE: XAJAX/PHP/MYSQL Probleme - php_addict - 17-06-2011

>>> Unknown column 'test' in 'where clause'

tu n'a pas de colonne 'test' dans ta table SQL ...

tu ne réponds pas aux questions: fais nous un var_dump et echo...


RE: XAJAX/PHP/MYSQL Probleme - Bazooka - 17-06-2011

heum i dont no var_dump :S
je ne sais pas fais sa encore Confused

on peux m'expliquer comment je peux faire sa svp Smile merci