Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

[réglé] Update Bdd avec ajax !

[réglé] Update Bdd avec ajax !


[réglé] Update Bdd avec ajax !     Posté le 24/10/2007 à 21:29
Proze
Membre
proze
73 posts
Inscrit le : 7/04/2007
Bonsoir,

J'ai une petite question histoire de ne pas galérer toute la nuit si cela n'est pas posible !

Je cherche à faire une update de la BDD avec ajax ! posible ?

le lien :
onclick="request('map/update_bdd_map.php?1=1&X='.$x.'&Y='.$y.'','xmlhttp');return(false)


le script :
<?
include("config.php");

if(
$_GET['1']==1)
    { 
    
$X $_GET['X'];
    
$Y $_GET['Y'];
    
    
// Update ds données GPS du joueur.
    
$req_update_1 " UPDATE user SET x='$X',y='$Y' WHERE login='$pseudo' ";
    
$result_update_1 mysql_query ($req_update_1) or die ('Erreur : '.mysql_error());
    
    echo 
$X."/".$Y;
    
    }
?>


mais sa ne marche pas !

Y'aurais moyen de m'aider ?

Merci !
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 25/10/2007 à 08:34
sky
Administrateur
Avatar
Site perso
4068 posts
Inscrit le : 13/08/2003
Salut
Voici un exemple en AJAX + PHP :

La page update.php :
<?PHP
include("config.php");

if(
$_GET['1']==1)

  
$X $_GET['X'];
  
$Y $_GET['Y'];
  
$pseudo 'sky';
  
  
// Update ds données GPS du joueur.
  
$req_update_1 " UPDATE users SET x='$X',y='$Y' WHERE login='$pseudo' ";
  
$result_update_1 mysql_query ($req_update_1) or die ('Erreur : '.mysql_error());
  
  
//si on veut afficher un resultat :
  
echo 'Update : '.$result_update_1;
}
?>


Ensuite, pour appeller cette page j'ai utiliser l'AJAX de cette façon (page user.htm) :
<script language="javascript">
function request(url,cadre) {
    var XHR = null;

    if(window.XMLHttpRequest) // Firefox
        XHR = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
        XHR = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }
        // envoie de la requête, methode GET et de l'url
    XHR.open("GET",url, true);

        // on guette les changements d'état de l'objet
    XHR.onreadystatechange = function attente() {

        // l'état est à 4, requête reçu !
    if(XHR.readyState == 4)     {

        // ecriture de la réponse
    document.getElementById(cadre).innerHTML = XHR.responseText;
   }
    }
    XHR.send(null);        // le travail est terminé
    return;
}
</script>

<div id="xmlhttp"></div>
<a href="" onclick="request('update.php?X=12583&Y=58994&1=1','xmlhttp');return(false)">Cliquer pour mettre à jours</a>


Le div avec pour id htmlhttp est là uniquement si tu veut afficher un résultat lors de la mise à jours.

Important : ne pas oublier que n'importe qui pourrai trouver cette page "update.php". Donc pense à bien sécuriser tes requêtes MySQL.

Voilà, j'espère que ça t'aura aidé.
Sky

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 25/10/2007 à 08:58
proze
Membre
Avatar
73 posts
Inscrit le : 7/04/2007
Oui tu m'as aider !

j'avait trouver dans la nuit, mais se n'etait pas trés propre !

Merci à toi !

Mais j'aimerai quelque expliquation pour sécuriser les requêtes Mysql ! posible ? smiley

_______________________
Aucun
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 25/10/2007 à 09:03
sky
Administrateur
Avatar
Site perso
4068 posts
Inscrit le : 13/08/2003
D'accord smiley

Pour sécurisé tes requêtes MySQL lors de la mise à jours :
- un addslashes(); sur chaque variable NON numérique
- si la variable est numérique, OBLIGER son type

Exemple de la page setup.php :
<?PHP
include("config.php");

if(
$_GET['1']==1)

  
$X = (int)$_GET['X']; // numérique, donc on oblige le type
  
$Y = (int)$_GET['Y']; // numérique, donc on oblige le type
  
$pseudo addslashes($_GET['pseudo']); // non numérique
  
  // Update ds données GPS du joueur.
  
$req_update_1 " UPDATE users SET x='$X',y='$Y' WHERE login='$pseudo' ";
  
$result_update_1 mysql_query ($req_update_1) or die ('Erreur : '.mysql_error());
  
  
//si on veut afficher un resultat :
  
echo 'Update : '.$result_update_1;
}
?>


_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 25/10/2007 à 16:41
proze
Membre
Avatar
73 posts
Inscrit le : 7/04/2007
Ok d'ac, j'ai compris !

Je vais m'y méttre de suite ! smiley

J'ai du boulot !

Merci !

_______________________
Aucun
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 16/03/2008 à 13:48
AzRaEl
Membre
Avatar
2 posts
Inscrit le : 16/03/2008
Bonjours a tous!

je suis tous nouveau sur ce forum, et je suis tombé sur ce sujet extrêmement intéressant.

j'ai essayé plus ou moins en suivant ta méthode SKY, Mais ca marche pas je ne doute pas que l'erreur soit de ma part mais pourrais tu m'éclairer un peu?

Appel de la fonction:

<select name=".$id." onclick=\"request('maj_bd.php?id='+this.name+'&valeur='+this.value+'&1=1','xmlhttp');return(false)\">


Comme tu peux le voir je l'applique sur un <select> donc j'aurais préféré appeler la fonction sur "onchange" es ce que c'est possible?

J'ai été obligé d'utiliser "this...." car le <select> fait partie d'une boucle donc le nom sera égal à l'$id.

La fonction:

j'ai bêtement réécrit ce que tu mis...

<script language="javascript">
function request(url,cadre) {
    var XHR = null;

    if(window.XMLHttpRequest) // Firefox
        XHR = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
        XHR = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return;
    }
        // envoie de la requête, methode GET et de l'url
    XHR.open("GET",url, true);

        // on guette les changements d'état de l'objet
    XHR.onreadystatechange = function attente() {

        // l'état est à 4, requête reçu !
    if(XHR.readyState == 4)     {

        // ecriture de la réponse
    //document.getElementById(cadre).innerHTML = XHR.responseText;
   }
    }
    XHR.send(null);        // le travail est terminé
    return;
}
</script>


puis ma page maj_bd:

<?PHP
include("./../../phpbb3/config.php");

if(
$_GET['1']==1)

  
$id = (int)$_GET['X']; // numérique, donc on oblige le type
  
$valeur addslashes($_GET['valeur']); // non numérique
  
  // Update ds données GPS du joueur.
  
$req_update_1 " UPDATE site_appartement SET dispo='$valeur' WHERE id='$id' ";
  
$result_update_1 mysql_query ($req_update_1) or die ('Erreur : '.mysql_error());
  
  
//si on veut afficher un resultat :
  //echo 'Update : '.$result_update_1;
}
?>


Je suis un peu perdu donc si t'as 5 min pour m'aider merci beaucoup!

Az

_______________________
Aucun
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 16/03/2008 à 14:43
AzRaEl
Membre
Avatar
2 posts
Inscrit le : 16/03/2008
J'ai trouvé c'été la:

$id = (int)$_GET['X']; // numérique, donc on oblige le type

Remplacé par:

$id = (int)$_GET['id']; // numérique, donc on oblige le type

copier collé pas bon !! smiley

Az

_______________________
Aucun
 
Réponse à : [réglé] Update Bdd avec ajax !     Posté le 18/03/2008 à 11:06
sky
Administrateur
Avatar
Site perso
4068 posts
Inscrit le : 13/08/2003
Salut

Ok, nikel et bonne conitnuation smiley

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net