Aller au contenu

Boo2M0rs0

Hubmaster
  • Compteur de contenus

    133
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre

À propos de Boo2M0rs0

  • Date de naissance 05/01/1990

Pour me contacter

  • Mon Site
    http://zicteam.free.fr/

Information du profil

  • Localisation
    epinay/orge (91)
  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 :-/
×
×
  • Créer...