Envoyé par : trollchichon
Date : 13/04/2006 14:31
Bonjour, Je n'arrive pas a faire un script de connexion avec php/xul
est ce que quelqu'un connait la solution, j'ai beau cherhcer sur google, je ne trouve pas...
Pour le moment j'ai ceci:
<? session_start(); //on fait savoir au navigateur que l'on envoie du xul header ("Content-type: application/vnd.mozilla.xul+xml; charset=iso-8859-15"); header ("title: Gestion des groupes"); header ("id: main"); echo '<' . '?xml version="1.0" encoding="iso-8859-15" ?' . '>'; echo '<' . '?xml-stylesheet href="chrome://global/skin/" type="text/css"?' . '>' . "\n"; echo ('<' . '?xml-stylesheet href="css/style.css" type="text/css"?' . '>' . "\n"); error_reporting(E_ALL ^ E_NOTICE); ?> <window id="login" title="Connexion" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <script type="application/x-javascript" src="js/doLogin.js"/> <commandset> <command id="doLogin" oncommand="doLogin()"/> </commandset> <vbox align="center" flex="1"> <html:h2> <label id="title" value="Veuillez entrer votre nom d'utilisateur et votre mot de passe pour vous connecter" /> </html:h2> <hbox align="center"> <html:b><label value="Nom d'utilisateur : " control="log" width="110"/></html:b> <textbox id="log" width="200"/> </hbox> <hbox align="center"> <html:b><label value="Mot de passe : " control="password" width="110"/></html:b> <textbox id="password" width="200"/> </hbox> <html:p> <html:label for="etudiant">Se connecter automatiquement à chaque visite</html:label> <html:input id="etudiant" type="checkbox"/> </html:p> <button label="Se connecter" oncommand="doLogin();"/> </vbox> <?php if(!isset($_POST['log']) && !isset($_POST["password"])){ $text = '<label value="'.$_POST['log'].'"/>' . "\n"; } else{ $text = '<label value="'.$_POST['log'].'"/>' . "\n"; } echo $text; ?> </window>
et le code javascript suivant :
function doLogin() { var login = document.getElementById("log").value; alert("login "+login); var password = document.getElementById("password").value; alert("password "+password); if(!verification()) return false; alert("login "+login+", password "+password); essai_login(); alert("Fini"); } function verification(){ var login = document.getElementById("log").value; var password = document.getElementById("password").value; if(login == "" ) { alert("L'identifiant est obligatoire."); return false; } if(password == "" ) { alert("Le mot de passe est obligatoire."); return false; } return true; } function essai_login() { var login = document.getElementById("log").value; var password = document.getElementById("password").value; alert("essai de connexion"); alert("login "+login+", password "+password); var req = new XMLHttpRequest(); var requ=new String("log="+login+"&password="+password); req.open("POST", "login.php", true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(requ); alert("fin de connexion"); }
D'avance merci
Envoyé par : Utilisateur anonyme
Date : 13/04/2006 14:50
Salut,
j'envoie comme toi 2 champs (nom et prenom) à un script php, chez moi ça fonctionne... je te montre les fonctions, tu pourrais essayer de les utiliser :
function ajouter(){ var val=document.getElementById("nom").value; var s = escape("nom")+"="+escape(val); var val2=document.getElementById("prenom").value; var t = escape("prenom")+"="+escape(val2); envoyer(s+"&"+t , "./add_nom.php", "Enregistrement"); reloadTree(); }
function envoyer(chaine, urlservice, message){ p = new XMLHttpRequest(); p.onload = null; p.open("POST",urlservice, false); p.setRequestHeader("Content-type","application/x-www-form-urlencoded"); p.send(chaine); status = p.status; if ( status != "200" ) { alert("arg ! mauvaise réponse http ("+ status +")"); } else { if(p.responseText == 'ok'){ alert(message + " effectué"); document.getElementById("nom").value = ''; }else{ alert("Il y a eu une erreur :\n" + p.responseText); } } }
bonne chance!
Envoyé par : trollchichon
Date : 13/04/2006 15:33
merci a premiere vus ca marche mais pourrai m'envoyer le script php stp? parce que j'ai une fenetre d'erreur qui apparait et je ne comprend pas d'ou vient le 'ok' des tests en fin de script...
Par contre j'ai lu qu'il fallait utiliser les xmlhttprequest + ajax, quelqu'un pourrai m'expliquer en quoi ca consiste (simplement neewbies in place)...
Envoyé par : laurentj
Date : 13/04/2006 16:05
j'ai lu qu'il fallait utiliser les xmlhttprequest + ajax
ajax, c'est entre autre l'utilisation de xmlhttprequest, donc ça veut rien dire xmlhttprequest+ajax ;-)
sinon, regarde dans le wiki, tu as des exemples d'utilisations.
Envoyé par : Utilisateur anonyme
Date : 13/04/2006 17:35
en fait je me suis largement insipré de cette page : http://xulfr.org/wiki/ApplisWeb/ExempleP(..) (tu verras en bas de la page on peut télécharger un fichier zip qui comprend tout le nécessaire)
voici le fichier php associé (que j'ai à peine retouché) :
require('../config.php'); $cnx=mysql_connect($db, $user, $password); mysql_select_db($base,$cnx); header('Content-type: text/plain'); if(!get_magic_quotes_gpc()) { foreach ($_POST as $index => $value) $_POST[$index] = addslashes($_POST[$index]) ; } if(isset($_POST['nom']) && trim($_POST['nom']) != ''){ $sql = 'INSERT INTO sample_tbl (name)values(\'' . $_POST['nom'] . ' '. $_POST['prenom'] . '\')'; $res=mysql_query($sql,$cnx); if($res === false) echo mysql_error($cnx); else echo 'ok'; }else { echo 'Pas de nom'; } mysql_close($cnx); ?>
Envoyé par : trollchichon
Date : 18/04/2006 15:50
voila une reponse un peu tardive. Est que que tes fonctions javascript sont dans le meme fichier que les source php? comment le javascript comprend le " echo 'ok' " lui est adressé?
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.