Jump to content

Search the Community

Showing results for tags 'easy'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Discussions communautaires
    • Annonces importantes
    • Suggestions
    • Postulation
    • Présentation des membres
    • Discussions générales
    • Multimédias
    • Jeux vidéos
    • Actualités
    • Aide / Support
    • Études
    • Archives
  • Informatique
    • Projets des membres
    • Autres / Divers / Découvertes
    • Crypto-monnaie(s)
    • Réseaux
    • Gestion de serveur
    • Système d'exploitation : Smartphone
    • Système d'exploitation : Ordinateur
  • Programmation
    • Projets des membres
    • Développement web
    • Développement de logiciels
    • Développement d'applications pour smartphones
    • Outils du développeur
    • Aide / Support
  • Emulation
  • Partenariats

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Skype


Site web


AIM


MSN


ICQ


Yahoo


Jabber


Tox


Centres d'interêts


Localisation


Study level

Found 2 results

  1. Bonjour à tous, Je vais essayer de m'habituer à la nouvelle interface et vous faire un jolie tuto, non je ne vais pas expliquer comment faire un héébergeur d'image je ferais un autre tuto plus aboutis sur ça si vous voulez, mais bon là on va parler de l'hébergement avec par exemple les images payantes que l'on trouve sur google toute belle et quand on clique dessus on se retrouve avec un gros copyright qui rend l'image inexploitable... ou quand on veut ouvrir une image dans un onglet et que l'on est rediriger sans vers la page du site proposant l'image. Mes exemples régénèrent les images donc peuvent être gourmands si les images sont grandes et il existe peut-être des façons plus optimisées mais bon je programme proprement comme un porc :hap: On va donc réécrire l'adresse et gérer son affichage livre à vous d'utiliser une base de données (ex:sql) et vous ne communiquez qu'une référence ou un vrai nom dans l'url. Trop de blabla pas assez de CODE! :E Encore un petit truc, Google a son propre User-Agent (chaine qui donne des informations que vous utilisez Firefox sur Windows10 64-bit et qu'il est configurer en français) nous alors donc nous servir de cela pour détecter si c'est un moteur de recherche ou un simple utilisateur qui regard, notez qu'il est possible de trafiquer son User-Agent donc il y a mieux comme sécurité en cherchant la liste des ips des serveurs par exemple. Les User-Agents: GoogleBot: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) GoogleBot-Image: Mozilla/5.0 (compatible; Googlebot-Image/1.0; +http://www.google.com/bot.html) YahooSlurp: Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) MsnBot: msnbot/1.1 (+http://search.msn.com/msnbot.htm) On va faire un test avec une expression régulière en php pour voir si ça ressemble à un bot Google: header("Content-Type: image/png"); // on dit que c'est une image est pas du php/html $img = imagecreatefrompng("images/tructresinteressant.png"); // image à protéger $cp = image createfrompng("image/copyright.png"); // copyright de protection à appliquer if (!preg_match("~Googlebot\-[a-zA-Z]+(/\d+(\.\d+)?)?~", $_SERVER['HTTP_USER_AGENT'])) imagesettite($img, $cp); // on applique un motif avec le copyright imagepng($img); imagedestroy($cp); Si vous voulez que la personne soit redirigée quand elle va sur le lien de l'image c'est très simple: // on précise qu'il s'aigt d'une image png et non d'une page html (php compilé) header("Content-Type: image/png"); //vous charger l'image avec $im = imagecreatefrompng("monimage.png"); imagepng($im); imagedestroy($im); // ou plus cours et peut-être moins lourd mais risqué au niveau de l'encodage: echo file_get_contents("monimage.png"); // et enfin la redirection header("Refresh: 0; url=/index.php"); Maintenant on gère le débit, cette option est plus intéressante pour des plus gros fichiers car les images sont jamais très lourdes. :/ // dans notre exemple on aura un débit de 10Ko/s (très lent) $handle = @fopen("monimage.png"); if ($handle) { while (($buffer = fgets($handle, 1024)) !== false) { // 1024 => nombre d'octet dans le buffer que l'on écrit echo $buffer; usleep(100); // 10 => nombre de milliseconde entre chaque envoie, 1000 = 1seconde } } [En cours de rédaction.... des idées? :)] PS: j'ai tapé le code directement sur le fofo donc s'il a y des fautes prévenez moi^^'
  2. Bonjour à tous, Donc comme si bien dit dans mon titre je vais vous expliquer comment faire un système de bbcode en php. Et pour ceux qui ne savent pas ce qu'est le bbcode c'est un système de balise utilisé principalement sur les forums par exemple ici si vous voulez mettre un image avec un lien (si comme moi vous écrivez le bbcode à la main à la place d'utiliser l'interface) vous aurez un "code" comme celui-ci: [url=http://mon_utrl/][img=mon_image.png][/url] mais une fois traité il s'affichera sous une forme html: <a href="http://mon_url/" target="_blank"> <img src="mon_image.png" border="0" /> </a> ps: dans mon contexte les liens s'ouvrent dans un onglet et le desactive les bords pour IE Pourquoi ne pas laisser le code html aux utilisateurs/clients? Parce que celà fait une faille XSS (plus d'info sur ce topic) même si vous pouvez aussi en désactiver/activer certaines seulement. Je vais donc vous expliquer comment faire: - une balise orpheline (ex: [ img=], elle n'a aucune fermeture) - une balise non-orpheline (ex: [ code] - une balise non-orpheline + paramètre (ex: [ url=], il y a un paramètre en plus dans la balise) Donc pour faire notre bbcode vous allons utiliser ce qui s'appel des expressions régulières (aussi appelé "motif de recherche"), un truc que personnellement je n'aime pas car je me trompe souvent... Et donc une expression c'est en réalité une structure dans un texte (par exemple) on peut donc analyser s'il y a des chiffres, une chaîne de caractères ou autre, c'est souvent utilisé pour les e-mails pour voir si ce que vous avez entré ressemble à un e-mail, je ferais donc peut-être (si j'ai le courage un topic sur ça, sinon je connais un site assez bien. Bref donc nous allons commencer par une balise orpheline: // Contexte: J'ai fais une shoutbox et je mettre en place une balise [ img=] donc <img... en html $msg = "Bonjour! [img=heart.gif]"; $bb = '#\[ img=(.+)\]#iUs'; $htm = '<img src="$1" border="0" />'; $msg = preg_replace($bb, $htm, $msg); Donc l'expression: '#\#iUs' - Elle est délimité par des # - On utilise les antislashes ("\") avant certains caractères car ils peuvent être utilisé pour la structure (expression), caractères tels "[", "]", "(", ")", ... - "(.+)" : - - les parenthèses "()" symbolise un groupement littéral - - le point (".") symbolise qu'il peut s'agir de n'importe quel caractère et le plus ("+) symbolise qu'il peut y avoir 1 ou plusieurs caractères - "#iUs' : - - "i" effectuer une recherche insensible à la casse (par de différence entre une lettre majuscule et une minuscule). - - "U" cette option inverse la tendance à la gourmandise des expressions rationnelles. - - "s" permet au point "." de correspondre à encore plus de caractères et/ou un retour à la ligne. > Documentation PHP::Options de recherche Maintenant une balise pour center donc [centre][/centre] devient <center></center>, je vais un peux compacter le code pour avoir plus simple: $msg = "[centre]Coucou![/centre]"; $msg = preg_replace('#\[centre\](.+)\[\/centre\]#iUs', '<center>$1</center>', $msg); Il a donc suffit de déplacer "(.+)" et pour ceux qui n'avait pas encore compris la partie trouvée ici va remplacer le "$1", il sagit en réalité d'un tableau donc quand vous cherchez plusieurs expressions vous avez donc "$2", "$3",.. qui arrive. Nous allons donc maintenant avoir une balise avec un paramètre et pour complexer un peut on va dire que le paramètre est obligatoirement un chiffre décimal ^-^ // balise [taille=][/taille] remplacée par <font size=""></font> $msg = "[taille=5]Hello World! [/taille]"; $msg = preg_replace('#\[taille=(\d+)\](.+)\[\/taille\]#iUs', '<font size="$1">$2</font>', $msg); Comme vous le voyait j'ai mis la mettre "\d" à la place d'un "." donc à la place de chercher n'importe quel caractère je dis que c'est un chiffre décimal et le "+" spécifie qu'il peut-être composé de plusieurs chiffres même si je pense que font-size ne peut prendre que une valeur entre 1 et 5 j'aurais pu mettre directement "([1-2-3-4-5])" mais bon je ferais une explication plus détaillée dans un prochain topic PS: pour les smileys c'est un simple str_replace(): str_replace(":D", "<img src=\"images/smiley.gif\" />", $msg); PPS: et si vous avez plusieurs balise directement vous pouvez faire un tableau (si vous voulez vous pouvez mettre par exemple $htm[0] = "<b>$1</b>"; et donc pour reprendre toutes les balises faites + anti-faille XSS dans une fonction: function BBCode($msg = '') { $msg = htmlentities($msg); // suprresion des caractères spéciaux (html), à placer avant les modifications sinon vous affichez le message avec les balises (en lisible) $bb = array( '#\[img=(.+)\]#iUs', '#\[centre\](.+)\[\/centre\]#iUs', '#\[taille=(\d+)\](.+)\[\/taille\]#iUs', '#\[url=(\.*)\](.+)\[\/taille\]#iUs' ); $htm = array( '<img src="$1" border="0" />', '<center>$1</center>', '<font size="$1">$2</font>', '<a src="$1" target="_blank">$2</a>' ); return preg_replace($bb, $htm, $msg); } echo BBCode("[centre]<b>XSS</b>[/centre]"); /!\j'ai mis des espaces dans les balises pour pouvoir publier (ex: "[ img]")! Bonne programmation à tous! Cordialement, Mars073
×
×
  • Create New...