Aller au contenu

Boo2M0rs0

Hubmaster
  • Compteur de contenus

    133
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Boo2M0rs0

  1. Boo2M0rs0

    Include et BBCode...

    Si ton fichier ne comprenait pas de code php à executer, tu aurais pu faire: echo bbCode(file_get_contents($fichier)); Mais vu que c'est le cas, la seule façon de faire pour récupérer le contenu de la page est d'utiliser les fonctions de bufférisation: ob_start("bbCode"); include($fichier); ob_flush();
  2. Heu ... je comprends pas, pourquoi faudrait-il utiliser stripslashes avant l'affichage ?? Addslashes est utilisé pour que mysql comprene que le ' est un caractère et donc il n'enregistre pas le slash dans la base de donnée, donc quand on fait une requête, il ne renvoit pas de slash à php donc stripslashes est inutile et altère même les données (en supposant que l'utilisateur ait tapé intentionnelement des slash). Si vous êtes quand même obligés d'utiliser stripslashes, c'est que les données ont été échappés deux fois de suite (une première fois par magic_quote_gpc et une deuxième fois par addslashes() ). Sinon, il m'est arrivé avec certains scripts qu'ils ne marchent pas en ligne sur mon hebergement, parce que j'avais échappé les guillemets avec un slash (ça donne \' ). J'ai utilisé un autre échappement propre à mysql, qui consiste à doubler les guillemets ( ça donne '' ) et cette fois-ci je n'ai pas obtenu d'erreur mysql et le script a marché à merveille ...
  3. Une solution assez simple consisterait à utiliser les fonctions de bufferisation de php. Un simple appel à ob_start() tout en haut de chaque page bloquera l'envoi des données avant la fin de la page. Le seul effet secondaire est le fait que ta page sera reçue par le navigateur d'une traite, et pas progressivement mais ça ne se remarque pas (sauf si ton hebergeur est surchargé).
  4. C'est justement là ou je voulais en venir lors de l'appel à fopen(), php est obligé de demander le fichiers au serveur, or il ne sait pas encore quelle partie du fichier va lui être utile et le protocole http l'oblige quand même à définir quelle partie du fichier récupérer, donc tant qu'à faire, il n'indique rien et le serveur lui envoie tout le fichier. Pourtant, il y a un truc, sinon comment feraient les optimisateurs de téléchargement qui peuvent reprendre un téléchargement à partir d'un serveur http, lancer plusieurs connexions simultanées etc. D'après la description du rfc concernant Chunked, je crois que c'est pas vraiment cette option, elle a l'air de se contenter d'envoyer le fichier en plusieurs morceaux coupées, mais ces morceaux sont encore une fois tous envoyés en même temps. Je crois que ça sert uniquement pour permettre aux navigateurs d'afficher progressivement les pages web qu'ils recoivent sans avoir à attendre la fin du transfert. Par contre sur le site qu'à donner TheRec j'ai retrouvé l'histoire des "range": http://www.w3.org/Protocols/rfc2616/rfc261...4.html#sec14.35 En clair, comme cette option est spécifiée avant l'envoi du fichier, le serveur sait quelle partie du fichier il faut qu'il envoie, et seule cette partie de fichier transite sur le net. Il n'y a plus qu'à spécifier le header en question avec stream_context_create() ou alors utiliser la fonction de curl.
  5. Bonjour, Peut-être en utilisant curl en définissant CURLOPT_RANGE pour récupérer une partie du fichier seulement. Le problème, c'est qu'il faut définir la longueur à lire, or on ne l'a connait qu'après avoir lu le fichier jusqu'au premier caractère de retour de ligne. Il faudrait donc y aller à taton, en faisant plusieurs requêtes demandant une petite quantité de données: $ch = curl_init("fichier.txt"); curl_setopt($ch,CURLOPT_RANGE, 0,4096); //Fais une requête et le serveur doit renvoyer les 4 premiers Ko curl_exec($ch); curl_close($ch); (attention, je n'ai pas testé, j'ai juste lu un bout de la doc ) Mais ça implique qu'il y ait plusieurs requêtes http (à moins que ce soit une connexion http persistante, mais là ça deviant franchement compliqué, je ne sais pas si curl sait faire les deux et si le serveur sera d'accord).
  6. Boo2M0rs0

    Scan de serveur

    J'ai il y a quelque temps cherché un script du même genre, mais pour un serveur unreal tournament 2004. Je suis certain que tu peux trouver des scripts complets pour intérroger le serveur sans se soucier du protocole (avec des classes par exemple). Par contre là je trouve pas sur google mais j'ai pas vraiment le temps désolé :-# Sinon, la raison pour laquelle ton script plantait si le serveur ne répondait pas: http://fr.php.net/manual/fr/function.stream-set-timeout.php Il vaut mieux régler une limite de temps pour la connexion ce qui évite ces mésaventures ... (utilises la commande set_time_out avant la commande fsockopen ) $sock_hnd = fsockopen("udp://$host", $port, $errno, $errstr); Ca démarre une conversation udp avec le serveur et port choisi. (en fait si on rentre dans les détails, c'est pas très vrai car le protocole udp n'a pas de connexion, ce sont juste des packets qui s'envoient sans que l'emmetteur soit certains que l'information est arrivée à bon port). fwrite($sock_hnd, "ÿÿÿÿinfo"); Ca envoie une information au serveur, c'est là que ça commence à se corcer car ÿÿÿÿinfo ne veut pas dire grand chose... il faudrait que tu cherches sur le net une page qui décrit ce que signifie ces "ÿÿÿÿ" ( regarde plutot en mode hexa ça correspond à quoi ...). Idem pour tout ce qui se trouve dans le if, le plus dur dans un script de ce genre est de décrypter les informations envoyés par le serveur. J'ai trouvé ça vite fait comme documentation sur le protocole mais c'est en anglais et pas détaillé du tout. http://dev.kquery.com/index.php?article=31
  7. Bonjour, Celà vient de la ligne: $var = $_POST["var"]; $_POST["var"] indique la valeur du formulaire ( ce code là : "<INPUT TYPE=text NAME=var>" ). Seulement, lorsque tu affiche la page pour la première fois le formulaire n'est pas envoyé donc $_POST["var"] n'existe pas. Essaye donc de modifier: $var = $_POST["var"]; if(isset($var)) { par: if(isset($_POST["var"])) { $var = $_POST["var"]; On n'essayera de lire $_POST["var"] que lorsqu'on est sûr qu'il existe
  8. Boo2M0rs0

    Update ou Insert ou...

    Cette requête devrait marcher pourtant. La seule explication qui me vient est celle donnée par la doc: Ha ! ou peut être le point virgule à la fin, mais normalement ça n'a aucune incidence ...
  9. Boo2M0rs0

    php et wap

    Le php génère normalement de l'html, mais il peut être utilisé pour écrire des pages écrites dans n'importe quel langage. Le wml est l'équivalent wap du html , donc la réponse est, il te faudra utiliser les deux
  10. Je crois que l'intérêt est pour les moteurs de recherches de ne référencer qu'une seule des deux pages. Pour éviter de tomber dans l'histoire de la boucle infinie, on peut réaliser ça en php (bien que certains réglages dans apache permmettent d'arriver au même résultat): if( $_SERVER['REQUEST_URI'] == 'index.php' ) { header("Location: http://www.monsite.com"); die(); }
  11. Sur les systèmes comme mac, la nature d'un document est connue par son mime-type et tu peux très bien le connaitre au moment de l'upload grâce à $_FILES['userfile']['type'] . Tu obtiens alors quelque chose comme "image/gif" , "image/jpeg" , "image/png" pour des images, ou alors "application/pdf" pour un pdf... Je ne connais pas le type mime des fichiers .doc, mais tu devrait le trouver assez facilement en faisant un petit test
  12. Le message "Vous ne pouvez pas venir ici" en dit beaucoup sur la raison du problème J'ai entendu des rumeurs comme quoi free aurait bloqué l'accès à ces ftp à toute personne qui ne se connecte pas depuis avec une connexion free. En vérifiant l'adresse ip de l'utilisateur, le serveur peut s'en rendre compte. Pendant mes vacances, je n'ai pas pû utiliser le ftp pour cette raison, et j'obtenais ce message d'erreur. Pourtant je connais des gens qui peuvent quand même et qui disent que cette protection n'existe pas, à vrai dire je n'y comprend plus grand chose, c'est peut être juste une question de chance de tomber sur un des serveurs free (il y a plusieurs serveurs mutualisés) qui n'a pas cette protection ... Cela a été soit disant mis à cause des abus sur les ftp et pour limiter exclusivement aux clients free les pages perso. M'enfin la plupart du temps ça dérenge plus qu'autre chose :x Tu peux toujours essayer de te connecter sur l'accès libre (que tu as pris pour activer les pages perso), mais c'est un forfait 56k donc ça n'ira pas très vite, il faut payer à la durée, et il faut avoir le modem 56k qui va avec ...
  13. Comment sont listé tes mois ?? Est ce que le dossier de janvier s'écrit 0 ?? Car dans ce cas, lorsque php voit ça: while($data2[$j]) Il voit que $data2[$j] = 0 Donc il va essayer de transformer ça en booléen et celà va donner false. Essaye plutot d'écrire: while(isset($data2[$j])) C'est un peu plus long mais plus précis pour l'interprêteur.
  14. Boo2M0rs0

    Upload

    $file_name = time(); $f1_name = $_FILES['file']['name']; $file_name indique l'heure ???? Et $f1_name, qui contient le nom réel du fichier, n'est utilisé nul part dans ton code. Sinon, vu qu'il a l'air de s'agir d'un service destiné à devenir utilisé par beaucoup de monde, d'enregistrer directement sur le serveur, sans passer par une connexion ftp. Ca serait plus rapide et plus simple, mais c'est vrai que comme ça, ça marche aussi...
  15. Si si, on peut se servir de include avec une url distante, le serveur envoie alors une requête http. Il n'y a pas de risque non plus d'inclure des pages admin car le code php est executé sur le serveur de départ Il faut néanmoins que la directive allow_url_fopen soit activée Le problème ici, c'est que la page sera inclue, mais aucun lien ne marchera car le code html de la page d'origine contient surement des liens relatifs de plus, il faudrait se débarrasser des balises <html> , <head> etc pour ne pas les avoir en doubles. Donc ce n'est pas vraiment la solution, bien qu'avec quelques traitements ça serait faisable :-/
  16. Bonsoir, Heu, non, l'image de fond, n'est pas considérée comme une image mais comme un arrière plan, elle ne change donc pas de taille (ne se déforme pas), a propriété css repeat-y ou no-repeat est utilisée pour éviter de répéter l'arrière plan sur toute la largeur du div. La même technique est utilisée pour le deuxième div, à une nuance près car cette fois-ci il y a rajout d'un alignement à droite de l'arrière plan. Si on résume on a: Premier div: Il fait 100% de largeur il définit un arrière plan, qui est en fait une image ne se répetant que sur la verticale. Deuxième div: Il fait aussi 100% de largeur Il a une marge gauche correspondant à la largeur de la bordure gauche Il définit un arrière plan, ne se répétant que sur la verticale et aligné à droite du conteneur. Il a une marge droite interne (padding) correspondant à la largeur de la bordure droite. Pour avoir une texture d'arrière plan, il faudrait donc avoir un troisième div qui contiendrai les deux autres ... On ne peut mettre qu'un seul arrière plan par conteneur, c'est selon moi, un assez grand défaut dans css :/
  17. Bonsoir, Premièrement, si ton but est de faire une fonction qui fait le hash md5, tu as déjà de jolies fonctions intégrées à php: md5() et md5_file() Pour ton script, c'est essentiellement la boucle while qui pose problème, et ça reste encore simple à voir car le bloquage se situe lors de la deuxième boucle seulement. Voici comment j'ai résumer la chose: $i=200; $i>62 donc on commence la boucle $a = reste de la division euclidienne de $i par 62 ( = 14 ) /*Instruction quelconque*/ $i = $i - $a ( = 200 - 14 = 186 ) --- $i est toujours plus grand que 62 donc on fait encore une boucle $a = $i % 62 ( donc 186 % 62 le reste est 0 !!! ) /*Instruction quelconque*/ $i = $i - 0 (donc $i n'a pas changé !!!!) Le cycle suivant de la boucle se passera exactement de la même facon car $i est toujours égal à 184 ... Je ne connais pas les algorythmes de md5 mais je ne pense pas que ceux-ci soient conçus pour faire des boucles infinies
  18. Bonsoir, Je n'ai pas vraiment compris comment calculer la moyenne de fps, pour te donner quand même une idée ça tourne (avec quelques programmes derrière) entre 54 et 61 fps sur firefox ... Sur ie6, les 2 deux bonhommes en bas se déplacent de facon fluide, mais lorsque la balle est lancée, celle ci est vraiment saccadé (on ne voit qu'une seule image par rebond), et l'indiquateur de fps s'affole vers 400fps voire même ~1800 lorsqu'il y a un bonus Heu ma configuration à peut près: 2500+ , 1Go de ram, 1280*1024 et la carte graphique : radeon 9600 (bien que je pense pas que ça ait un rôle pour une appli javascript ...)
  19. Tu peux modifier les liens de la page 404 et rajouter un / devant chaque url, ce qui aura pour effet de reconsidérer les liens à partir de la racine du site. Tu peux aussi spécifier un le tag base dans la partie head du code html: <base href="http://contyloeuillysc.free.fr/" /> Mais il faut un lien absolu dans ce cas :/ Tu peux aussi réaliser une page 404.php qui fera une redirection par header et menera à une page 404 situé à la racine, le soucis c'est qu'il faut là aussi l'url absolue :/ <?php header("HTTP/1.1 302"); header("location: http://contyloeuillysc.free.fr/erreur404.php"); ?> Mais si les liens absolus te dérenge simplement au cas où tu changerai d'adresses: tu peux te servir de php, pour retrouver le chemin absolu: $url_abs = "http://" . $_SERVER['HTTP_HOST'] . ($_SERVER['SERVER_PORT'] == '80'? '': ':' . $_SERVER['SERVER_PORT']) . "/";
  20. Boo2M0rs0

    Cookies

    2 choses: session_start(); est inutile voire même dérengeant dans ce cas, il peut peut être influer sur les cookies. De plus, il faut que tu n'ais envoyé aucune donnée autre que des header au moment de l'envoi du cookie. if ($_COOKIE['pseudo']=="" && $_COOKIE['pass']=="") écrit plutot: if (isset($_COOKIE['pseudo'],$_COOKIE['pass'])) Je ne sais pas trop comment php se comporte donc il est possible que ton code marche aussi
  21. La première fois que j'ai vu le forum, je croai qu'il s'aggissait du skin de base d'invision power board En fait, c'est pas vraiment le cas mais je le trouve quand même un peu trop bleu, ça fait assez "froid". Sinon, le forum ... oui ça va, je passe sur pas mal de forums ipb donc je connais
  22. Boo2M0rs0

    Cookies

    Bonjour, Créer le cookie lui même n'est pas très compliqué, voici la page complète qui explique comment on s'en sert. Le problème après, c'est qu'un cookie enregistré sur l'ordinateur des visiteurs n'est pas une information sure. Par exemple si tu envoie directement le cookie du pseudo de la personne, il pourra très bien le modifier et se faire passer pour quelqu'un d'autre. Ce que je te conseille c'est d'envoyer 2 cookies: -un identifiant, le plus courant c'est de se servir de l'id du membre -un code impossible à décrypter et étant unique pour ce membre Ainsi, même si l'utilisateur essayera de trafiquer l'identifiant (qui peut facilement être trouvé en visitant quelques pages de ton site), il ne pourra pas inventer le code unique.
  23. En fait quand je vois ça: <!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" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Champ modifiable par des boutons</title> </head> <body> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <p> <?php mysql_connect('localhost', 'user', 'pass') or die( "Connection impossible"); mysql_select_db('basededonnee') or die('Impossible de choisir la base de donnée'); if (isset($_POST["bouton1"])) { $valeur = 0; } elseif (isset($_POST["bouton2"])) { $valeur = 1; } elseif (isset($_POST["bouton3"])) { $valeur = 2; } elseif (isset($_POST["bouton4"])) { $valeur = 3; } if( isset( $valeur )) { mysql_query("INSERT INTO ta_table (champ_enum) VALUES ( '$valeur')"); echo "Le bouton n°" . ($valeur +1) . " a été pris en compte dans la base de donnée"; } ?> </p> <p> <input type="submit" name="bouton1" value="Bouton 1" /> <input type="submit" name="bouton2" value="Bouton 2" /> <input type="submit" name="bouton3" value="Bouton 3" /> <input type="submit" name="bouton4" value="Bouton 4" /> </p> </form> </body> </html> EDIT: à remplacer aussi les 'localhost', 'user' , 'pass' et 'basededonne'. Certaines fois il est d'ailleur pratique de stocker ces données dans un fichier séparé que l'on inclus dans chaque page. On peut aussi carément inclure un fichier qui contient ces deux commandes.
  24. Bonjour, Pour un champ enum la requête sql qui va avec n'est pas plus difficile. Le code de Jan me parait bizarre ... ça défie un peu la logique du html mais je l'ai testé et ça marche ... Bon bref, en se servant de son code, tu peux facilement faire une requête sql qui remplirait ce champs enum: $valeur = ""; if (isset($_POST["bouton1"])) { $valeur = 0; } elseif (isset($_POST["bouton2"])) { $valeur = 1; } elseif (isset($_POST["bouton3"])) { $valeur = 2; } elseif (isset($_POST["bouton4"])) { $valeur = 3; } mysql_query("INSERT INTO ta_table (champ_enum) VALUES ( '$valeur')"); Pour phpedit, je ne connais, personnelement, j'utilise notepad++ tout en sachant que ce n'est pas le meilleur (poil dans la main). Easyphp, étant donné que c'est juste un serveur web php/mysql préinstallé, on ne peut pas dire qu'il soit bon ou mauvais, il satisfait très bien le rôle pour lequel il a été conçu c'est tout
  25. Bonjour, Je ne vois pas pourquoi les tableaux poserait problème pour intégrer un contenu modifiable, il faut juste trouver l'endroit préci dans le code pour inclure le contenu. Comme la plupart du temps les pages doivent avoir l'extension .php (configuration par defaut des serveur) pour être interprété, tu va devoir remplacer les extension .htm par .php ... si j'ai bien compris ta question
×
×
  • Créer...