Aller au contenu

KewlCat

Membres
  • Compteur de contenus

    24 815
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par KewlCat

  1. Tu as tout ce qu'il te faut, déjà. Pour t'aider un peu, voici une transposition en PHP du code du webservice (moins la gestion des erreurs) : <?php $group = (isset($_GET['groupe']))?$_GET['groupe']:'deGoer'; $data = (isset($_GET['data']))?$_GET['data']:''; $isTypeXML = (isset($_GET['type']) && $_GET['type'] == 'xml'); if ($isTypeXML) { $strbResponse = '<?xml version="1.0" encoding="UTF-8"?><reponse>'; if (empty($data) || $data == 'nbconn') { $nbConn = file_get_contents('http://www.tontchat.com/api/connections.php?group=' . $group); $strbResponse .= '<nbconn>' . substr($nbConn, strpos($nbConn, '\'') + 1, strrpos($nbConn, '\'') - strlen($nbConn)) . '</nbconn>'; } if (empty($data) || $data == 'nbusers') { $nbUsers = file_get_contents('http://www.tontchat.com/api/logon_users.php?group=' . $group); $strbResponse .= '<nbusers>' . substr($nbUsers, strpos($nbUsers, '\'') + 1, strrpos($nbUsers, '\'') - strlen($nbUsers)) . '</nbusers>'; } if (empty($data) || $data == 'usernames') { $usernames = file_get_contents('http://www.tontchat.com/api/user_list.php?group=' . $group); $strbResponse .= '<usernames>' . substr($usernames, strpos($usernames, '\'') + 1, strrpos($usernames, '\'') - strlen($usernames)) . '</usernames>'; } $strbResponse .= '</reponse>'; header('Content-type: text/xml'); echo $strbResponse; } else { if (empty($data) || $data == 'nbconn') { echo file_get_contents('http://www.tontchat.com/api/connections.php?group=' . $group); } if (empty($data) || $data == 'nbusers') { echo file_get_contents('http://www.tontchat.com/api/logon_users.php?group=' . $group); } if (empty($data) || $data == 'usernames') { echo file_get_contents('http://www.tontchat.com/api/user_list.php?group=' . $group); } } ?>
  2. Voici un premier jet de script Greasemonkey. Il faut que tu mettes l'URL de la page concernée dans la ligne "@include .." qui dit à Greasemonkey que ce script s'applique aux URL qui ont la forme "http://*" (actuellement), afin de lui éviter de lancer inutilement cette fonction sur tous les sites que tu visites Tu peux personnaliser les deux tableaux de libellés et de textes. Ceci étant dit, je signale que je n'ai pas pu tester ce script donc il se pourrait qu'il comporte encore des erreurs YMMV // // ------------------------------------------------- // // ==UserScript== // @name Saisie automatique // @namespace http://forum.zebulon.fr // @description Ajoute une liste déroulante pour des textes prédéfinis // @include http://XXXX.XX/front/helpdesk.php* // ==/UserScript== var tabLibelles = new Array( "Libelle1", "Libelle2", "Libelle3", "Libelle4"); var tabTextes = new Array( "Ceci est un test", "Le second texte à insérer", "Bla bla bla bla bla", "Il était une fois..."); var textareaContent = null; function initScript(event) { // Recherche du textarea nommé "content" var tabTextareas = document.getElementsByTagName("textarea"); if (tabTextareas != null) { for (var i = 0; i < tabTextareas.length; i++) { if (tabTextareas[i].name == "content") { textareaContent = tabTextareas[i]; break; } } } if (textareaContent == null) { return; } // Construction de la liste déroulante var select = document.createElement("select"); select.options = new Array(); var optionParDefaut = new Option(); optionParDefaut.text = " -- Choisir un texte --"; optionParDefaut.value = ""; optionParDefaut.defaultSelected = true; select.options.push(optionParDefaut); for (var i = 0; i < tabLibelles.length; i++) { var option = new Option(); option.text = tabLibelles[i]; option.value = tabTextes[i]; select.options.push(option); } select.onchange = function() { var texte = this.options[this.selectedIndex].value; while (textareaContent.firstChild != null) { textareaContent.removeChild(textareaContent.firstChild); } textareaContent.value = texte; textareaContent.appendChild(document.createTextNode(texte)); } // Ajout de la liste au document textareaContent.parentNode.insertBefore(select, textareaContent); } window.addEventListener("load", initScript, false); Au cas où : tu es censé sauvegarder ce script avec un nom qui se finit par ".user.js" puis l'ouvrir avec Firefox (et Greasemonkey se chargera du reste)
  3. KewlCat

    dvd master

    Si tu le "renvoies en garantie" pourquoi aurais-tu besoin d'un "master" ? A mon avis le SAV n'aura aucun problème pour réinstaller l'OS tel qu'il était à l'origine, si c'est ça qui t'inquiète ! Perso c'est plus pour les données perso que je m'inquièterais... A moins bien sûr d'avoir installé un OS que le SAV serait susceptible d'accuser d'être à l'origine du problème pour lequel la machine est retournée, mais bon...
  4. OK On va faire un test. Peux-tu surfer jusqu'à cette page et copier-coller le texte suivant dans la barre d'adresse ? javascript:void(function (){var select = document.createElement("select"); var tabLibelles = new Array(4); for (var i = 0; i < 4; i++) { var option = new Op tion(); option.text = "test" + i; option.value = "Ceci est un test. " + i; select.options[i] = option; }; var tabTextareas = document.getElementsByTagName(" textarea"); if (tabTextareas != null && tabTextareas[0] != null) { tabTextareas[0].parentNode.insertBefore(select, tabTextareas[0]); select.onchange = funct ion() { this.nextSibling.value = this.options[this.selectedIndex].value; }}}()) .. sur une seule ligne... et tu valides... Juste pour voir. Si ça génère une erreur, laquelle ? (je n'ai pas testé ce script dans les bonnes conditions...) En théorie, ce bout de code parcourt la page à la recherche d'un textarea et le précède d'une liste déroulante. Si c'est concluant on pourra faire en sorte de mettre les bonnes valeurs dans les options du select. Après on réécrira ça au propre dans un script GreaseMonkey
  5. En théorie, les deux switch doivent être reliés avec un câble croisé, ou bien reliés par un câble droit mais avec l'une des extrémités branchée sur la prise "Uplink". Maintenant, la technologie a un peu évolué et les switches sont capables de déterminer si le câble qu'on branche sur chaque prise est droit ou croisé (MDI / MDI-X), donc en fonction de la vétusté du matériel tu n'es pas forcé de te poser trop de questions.
  6. Ca serait pas plus simple de dire à ceux qui maintiennent l'appli que tu préférerais avoir une liste déroulante à la place du champ de saisie ? ;-D Niveau complexité du code, c'est pas super sorcier. Ca va être un truc du genre "après le chargement de la page, ajouter derrière tel ou tel champ de saisie une liste déroulante contenant tel et tel choix qui remplira automatiquement le champ précédent". En revanche ce qui risque de compliquer le boulot, c'est la structure du code HTML sur lequel on va vouloir se greffer... Tu pourrais nous copier-coller l'extrait du source de la page qui correspond à un des formulaires / un des champs de saisie que tu dois remplir ?
  7. KewlCat

    p'tite erreur de code

    Euh... Oui, sauf que ce n'est pas une "fonction". Où est exécuté ce code ? En quoi c'est une "amélioration" ? A part le fait que c'est maintenant une fonction mais qu'elle fait la même chose que le code au-dessus en une seule ligne, et que le session_start() a disparu... ? Où est-elle appelée ? En te contentant d'inclure la déclaration de la fonction tu ne fais rien. A quel moment cette fonction est-elle appelée ? Est-ce que le session_start() est bien fait avant d'appeler cette fonction ? Il faut que PHP récupère la session avant que tu ne puisse réellement récupérer les données que tu as stockées dedans... Le "récupérer" d'accord mais d'où ? De la session où tu l'as stocké après authentification, ou depuis un $_POST qui n'est pas forcément là, comme tu le fais dans le code que tu as fourni au-dessus ? Réécrire ? Autre table ? Nulle part il n'est question d'aller vérifier l'authentification de l'utilisateur en base de données, donc il faudrait déjà nous expliquer où tu pioches les données avant de vouloir les réécrire ailleurs. A ce sujet, où veux-tu les "réécrire" ? Pour quelle raison ? Franchement nous non plus on ne comprend pas pourquoi tu écrases les données de session systématiquement Tu "récupères" l'idbees du formulaire de connexion un peu trop systématiquement (i.e. à chaque chargement de la page), c'est ça le problème. Tu ne vérifies pas que des données ont été réellement envoyées par POST avant de les mettre en session (et tu ne vérifies pas, d'abord, s'il n'y avait pas des données en session avant de les écraser)...
  8. Non mais ça va pas la tête ?!? Qu'est-ce que tu veux aller modifier la base de registre pour faire des modifications dans Firefox ou Chrome, alors que ce sont les environnement les plus facilement scriptables qui existent (ce sont des pages web !). Tu connais GreaseMonkey ? Les textes que tu as à coller dans ces champs sont prédéterminés ? La base de registre ne contient que des paramétrages, pas des applications. J'ignore ce que tout le monde croit qu'il est possible de faire avec la base de registre mais certainement pas ce que tu demandes !
  9. Juste comme ça, elle affiche quoi la "palette de transfert" de ADSL Autoconnect ? C'est un genre de TCPView que tu cherches ?
  10. La table moz_places contient les URL La table moz_bookmarks contient les bookmarks (sachant que leurs URLS sont dans moz_places) Si tu veux juste extraire les bookmarks, tu peux t'aider de la requête suivante : SELECT url, title FROM moz_places mp WHERE EXISTS (SELECT 1 FROM moz_bookmarks mb WHERE mb.fk = mp.id);
  11. KewlCat

    p'tite erreur de code

    Qu'on soit bien d'accord sur le fonctionnement du code tel qu'il est écrit actuellement, à chaque chargement de page, on fait : 1) écrasement des données de session avec les données postées (même s'il n'y en a pas) 2) "vérification" de la présence des données de session (sans les comparer au contenu de la base de données) C'est bien ça ? Au fait, tu n'as pas réagi à ma première question : où fais-tu le session_start() ?
  12. KewlCat

    p'tite erreur de code

    Si tu ne peux pas faire cette "séparation" alors il faut modifier le code actuel pour n'écraser les données de session que lorsque le formulaire correspondant à l'authentification est POSTé (et validé, cela va de soi...) ce qui signifie que la validation ne doit pas être faite sur les données qui sont stockées en session mais sur les données qui ont été POSTées, puisque par la suite tu considères que si les données de session sont présentes c'est qu'elles sont valides ! En ce qui concerne la possibilité de changer de base de données, je ne vois pas ce qui pourrait coincer vu que tout ce que tu aurais à faire c'est de changer la "connect-string" que tu passes à new PDO() ...
  13. 1) ma page est une JSP parce que c'est le langage dans lequel je l'ai programmée. Toi, ce que tu as récupéré, c'est le HTML que cette page génère. 2) ma page fait référence au webservice qui est hébergé sur ma machine. En transférant cette page sur un autre serveur l'AJAX ne pourra fonctionner que si le webservice est hébergé sur le même domaine, donc tu vas avoir besoin de créer ce webservice et tu vas devoir modifier l'URL qui est consultée (parce que, même raison que le premier point, je n'utilise pas le même langage de programmation que toi) 3) ton serveur est configuré pour du PHP, je peux fournir le code intégral de ces deux pages mais tu vas devoir les réécrire en PHP (ce qui n'est pas super compliqué puisque les mécanismes qui entrent en jeu n'utilisent aucune subtilité de programmation de Java ou des JSP) Si tu veux, tu peux renommer cette page "tontchat.html" tu auras un affichage sans styles, mais ça ne fera pas pour autant afficher les nombres de présents sur ton chat. Pour info, voici le code du webservice : <%@page contentType="text/plain" language="java" pageEncoding="UTF-8" import="java.net.URL" import="java.io.File" import="java.io.InputStream" import="java.io.OutputStream" import="java.net.URL" import="java.net.HttpURLConnection" %><%! private String getUrlContent(String strUrl) { URL url = null; String donneesXml = ""; HttpURLConnection urlConnect = null; try { url = new URL(strUrl); urlConnect = (HttpURLConnection) url.openConnection(); urlConnect.setRequestMethod("GET"); // Verification de la bonne marche de la requête if (urlConnect.getResponseCode() == HttpURLConnection.HTTP_OK) { StringBuffer strbDonneesXml = new StringBuffer(); InputStream fluxXml = urlConnect.getInputStream(); if (fluxXml != null) { for (; { int data = fluxXml.read(); if (data == -1) break; else strbDonneesXml.append((char) data); } fluxXml.close(); } donneesXml = strbDonneesXml.toString(); } } catch (Exception e) { donneesXml = e.toString() + e.getMessage() + e.getCause() + e.getStackTrace()[0].toString(); } finally { try { if (urlConnect != null) { urlConnect.disconnect(); } } catch (Exception e) { // Rien } finally { urlConnect = null; url = null; } } return donneesXml; } %><% try { String rqGroup = request.getParameter("groupe"); String rqType = request.getParameter("type"); String rqData = request.getParameter("data"); String group = (rqGroup != null && rqGroup.length() > 0)?rqGroup:"deGoer"; String type = (rqData != null && rqData.length() > 0)?rqData:""; Boolean isTypeXML = (rqType != null && rqType.length() > 0 && rqType.equals("xml")); if (isTypeXML) { StringBuffer strbResponse = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?><reponse>"); if (type.isEmpty() || type.equals("nbconn")) { String nbConn = getUrlContent("http://www.tontchat.com/api/connections.php?group=" + group); strbResponse.append("<nbconn>" + nbConn.substring(nbConn.indexOf('\'') + 1, nbConn.lastIndexOf('\'')) + "</nbconn>"); } if (type.isEmpty() || type.equals("nbusers")) { String nbConn = getUrlContent("http://www.tontchat.com/api/logon_users.php?group=" + group); strbResponse.append("<nbusers>" + nbConn.substring(nbConn.indexOf('\'') + 1, nbConn.lastIndexOf('\'')) + "</nbusers>"); } if (type.isEmpty() || type.equals("usernames")) { String nbConn = getUrlContent("http://www.tontchat.com/api/user_list.php?group=" + group); strbResponse.append("<usernames>" + nbConn.substring(nbConn.indexOf('\'') + 1, nbConn.lastIndexOf('\'')) + "</usernames>"); } strbResponse.append("</reponse>"); response.setContentType("text/xml"); %><%= strbResponse.toString() %><% } else { if (type.isEmpty() || type.equals("nbconn")) { %><%= getUrlContent("http://www.tontchat.com/api/connections.php?group=" + group) %><% } if (type.isEmpty() || type.equals("nbusers")) { %><%= getUrlContent("http://www.tontchat.com/api/logon_users.php?group=" + group) %><% } if (type.isEmpty() || type.equals("usernames")) { %><%= getUrlContent("http://www.tontchat.com/api/user_list.php?group=" + group) %><% } } } catch (Exception e) { %> Erreur : <%= e.toString() %> <%= e.getMessage() %> <%= e.getCause() %> <%= e.getStackTrace()[0].toString() %><% } %> La méthode getUrlContent() que je déclare est équivalente à la fonction PHP file_get_contents() quand on lui passe une URL en paramètre.
  14. KewlCat

    Recherche scripteur pawno

    Excuse-moi Blecklers, mais j'ai du mal à comprendre ce besoin irrépressible que tu as, de vouloir faire un "up" sur un sujet qui est en quatrième position sur la première page de cette partie du forum. Tu crois vraiment que ça peut servir à quelque chose ? Franchement ? Si personne n'a répondu, soit c'est parce que personne ne connait "pawno", soit c'est parce que ceux qui connaissent ne sont pas encore passés par là ! Ou bien carrément parce que la petite description que tu fais de ce projet ne comporte aucun élément susceptible de les motiver à répondre...
  15. Euh, certes, mais quand je t'aurai dit que je n'ai testé ce code qu'avec Firefox et dans de bonnes conditions (le webservice est accessible et retourne toujours les résultats attendus) tu comprendras peut-être qu'en cas de pépin, quel qu'il soit (webservice non accessible ou qui retourne une erreur parce que les API de tontchat ne répondent pas, ou ont changé de format, ...) tu vas te retrouver avec un affichage étrange ou des erreurs plein la page !Ce n'est pas un jugement "artistique" mais bel et bien technique qui me fait dire que ce code est crade. Ca, et le fait qu'il ait été créé en un seul jet et en quelques minutes... Une fois la page ouverte, fais afficher le source : tout est là !Pour ceux que ça intéresse voici la partie qui gère l'affichage des résultats : <script type="text/javascript"> // <![CDATA[ var timer = null; var request = null; var response = null; // EventHandler function majInfos() { if (request.readyState == 4) { if (request.status == 200) { var responseText = request.responseText; var responseXml = request.responseXML; if (typeof(responseXml) == "undefined") { document.getElementById("nbconn").firstChild.data = "?"; document.getElementById("nbusers").firstChild.data = "?"; document.getElementById("usernames").firstChild.data = "?"; document.getElementById("message").firstChild.data = responseText; } else { document.getElementById("nbconn").firstChild.data = responseXml.getElementsByTagName("nbconn")[0].firstChild.data; document.getElementById("nbusers").firstChild.data = responseXml.getElementsByTagName("nbusers")[0].firstChild.data; document.getElementById("usernames").firstChild.data = responseXml.getElementsByTagName("usernames")[0].firstChild.data; document.getElementById("message").firstChild.data = " "; } try { document.getElementById("btnStop").disabled = ""; document.getElementById("btnStop").value = "STOP !"; } catch (e) { } } else { alert("Echec: " + request.statusText); } request = null; } } // Requête vers la page function load_url(url) { try { document.getElementById("btnStop").disabled = "disabled"; document.getElementById("btnStop").value = "En cours..."; } catch (e) { } // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { request = new XMLHttpRequest(); if (request) { request.onreadystatechange = majInfos; request.open("GET", url, true); request.send(null); } else { alert("oups..."); } } else if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); if (request) { request.onreadystatechange = majInfos; request.open("GET", url, true); request.send(); } } else { alert("Error XMLHttpRequest absent."); } } function init() { load_url('tontchat_ws.jsp?type=xml'); timer = setInterval("load_url('tontchat_ws.jsp?type=xml')", 5000); } // ]]> </script> La fonction init() est appelée dans le onload du body (pour faire le chargement initial et lancer la répétition des mises à jour). La fonction majInfos() récupère le contenu retourné par le webservice et le place dans les éléments de la page dont les id sont "nbconn", "nbusers" et "usernames". En cas de contenu non xml (i.e. responseXML est vide) le message retourné par le webservice est placé dans l'élément d'id "message".
  16. KewlCat

    chargement lent

    Quel rapport ça peut bien avoir avec le problème énoncé ?!? Pourquoi pas une défragmentation pendant qu'on y est !? (...) Mourkos : habituellement le timeout sur la connexion est géré côté serveur ce qui signifie que ce n'est pas ton navigateur qui "abandonne la partie". Maintenant, il faudrait nous en dire un petit peu plus sur ces serveurs, sur leur configuration, sur la façon dont ils sont raccordés au Net, sur ta façon de te connecter au Net, la configuration de cette connexion ...
  17. En effet. Ce qui répond à ta première question ("est-il possible de récupérer ces valeurs pour les mettre dans des variables PHP ?") et prouve que l'affirmation de ton second post est fausse ("La solution AJAX n'est pas possible.") puisque si c'est ton serveur qui va consulter les API de tontchat.com ça fonctionne. Le Javascript est directement accessible dans la page, mais comme je l'ai dit il est très crade (aucune gestion des erreurs !). Il me semblait que la partie la plus "intéressante" serait la récupération des données depuis tontchat.com, mais bon.... Cela dit, attention à ne pas brûler les étapes ! Es-tu sûr d'avoir compris en quoi consiste ce que je viens de t'expliquer et d'implémenter ? Es-tu sûr d'avoir compris comment tu allais pouvoir le réutiliser pour ton propre site ?
  18. J'ai bâclé la page principale, mais le webservice est OK... Qui est sur tontchat.com ? Cette page tire parti du webservice que j'ai créé à l'adresse http://kewlcat.no-ip.org/tests/tontchat_ws.jsp Ce webservice est écrit comme décrit au-dessus, c'est à dire qu'il se contente de faire une requête HTTP sur les URL qui donnent le nombre de connectés, le nombre d'utilisateurs et leurs noms, puis éventuellement de re-traiter la réponse pour en faire du XML (ce que j'ai fait avec un simple substring de la réponse, qui commence au indexOf() de la première apostrophe et qui se termine au lastIndexOf() de l'apostrophe, de façon à n'extraire que le blabla du "document.write(' blabla ');" qui est renvoyé par ces trois URLs. Est-ce que ça t'aide, ou il faut que j'entre dans les détails ? Pour le webservice, j'ai fait en sorte qu'il renvoie par défaut le contenu brut des réponses du serveur de tontchat.com. Pour avoir les résultat en XML il faut passer le paramètre type=xml
  19. KewlCat

    p'tite erreur de code

    Forcément, à un moment, ce que tu avais sauvé le coup d'avant va être écrasé...
  20. KewlCat

    p'tite erreur de code

    Je ne vois pas d'appel à session_start(), est-ce normal ? Ca expliquerait pourquoi les données que tu "stockes" dans $_SESSION semblent se perdre quelque part... Autre chose : $_SESSION['idbees']=$_POST['idbees']; verif(); tu devrais séparer le remplissage de la session suite à l'authentification d'un utilisateur et le chargement des pages de cet utilisateur (i.e. avoir une page qui sert uniquement au login + chargement de la session depuis la BDD, et que cette page fasse une redirection vers les pages de contenu qui contiennent, elles, une vérification de l'authentification de l'utilisateur). Mélanger les deux comme le font ces deux lignes, ça ne m'inspire pas confiance... d'autant moins confiance si tu écrases systématiquement la variable de session avec les données POSTées dans cette page (une fois authentifiés tes utilisateurs continuent à poster leur "idbees" quand ils chargent cette page ? ...)
  21. Euh.. En gros ni ton père ni toi ne seriez capables de nous dire ce qui "protège" ton téléchargement et comment cette "protection" agit ? Hmmm... Tu as au moins une petite idée de l'outil qui a été utilisé pour ajouter cette restriction ou pas du tout ? Parce que là, déjà que c'était pas trop gagné avant, ça risque d'être Mission Impossible ! A mon avis (qui n'est que mon avis, je comprendrais parfaitement que tu ne sois pas d'accord), même si ton père "ne sait pas ce qu'est un mobile", c'est tout de même à lui que revient la charge de t'élever donc si tu commences à faire des trucs dans son dos en sachant pertinemment que tu n'as pas son accord, tu vas avoir des problèmes. En demandant à des "inconnus" sur Internet comment contourner les protections que tes parents ont mis en place sur un PC, je te rappelle que le seul sur lequel ça pourra retomber ce sera toi. Tu devrais vraiment vraiment faire comprendre à ton père que tu sais très bien ce qu'implique le téléchargement de ce jeu (soyons clairs : ça bouffe plusieurs heures par jour) et que tu es assez grand pour 1) savoir comment l'installer s'il accepte de te laisser le faire et 2) savoir quelles limites respecter pour t'éviter des soucis (études, participation aux tâches ménagères, que sais-je encore...)
  22. Pour le principe, ça va être la même chose que ma page de test de synchronisation d'horloge : Quelle heure est-il ? Le truc, sur cette page, c'est que le webservice sur lequel je tape en AJAX ne me fournit pas du XML mais du texte brut, pareil que ce que tu obtiendrais si tu faisais ta page php qui se contente de te donner le contenu de http://tontchat.com/api/etc Les seules différences entre cette page et celle que tu veux faire sont : * les données du webservice doivent provenir d'un site tiers (pas un problème) * les données du site tiers doivent être retraitées avant envoi à ta page (une regexp et c'est plié, voire plus simple encore) * le rafraichissement doit être automatique (suffit de faire un setInterval() au lieu d'un bouton et c'est bon) Si tu veux que je te fasse un exemple de ce que ça pourrait donner, il faudrait que tu me dises quelle valeur passer dans la variable "group" (en MP s'il le faut).
  23. 1) De quelle façon cette prise USB est-elle prise en compte sur ta chaîne ? (qu'es-tu censé brancher dessus ?) 2) Crois-tu vraiment qu'on puisse raccorder une prise jack portant des signaux analogiques à une prise USB qui s'attend à des signaux numériques (et autrement plus complexes que juste du son !) ?
  24. OK Dans un script PHP, que donne readfile("http://www.tontchat.com/api/connections.php?group=VOTRE GROUPE") ? Une fois que tu as validé que ça fonctionne (en ajoutant éventuellement un urlencode() si le nom de ton groupe contient des caractères spéciaux) tu peux utiliser file-get-contents() pour pouvoir ensuite extraire ce qui t'intéresse.
  25. Skype est-il réglé pour envoyer à ton interlocuteur uniquement ce qui provient du micro de ton micro-casque, ou bien tout ce qui passe sur le mixer d'enregistrement (ou pire, sur les voies de sortie...) ?
×
×
  • Créer...