Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement web
  4. PHP
  5. Des bouts de code

Des bouts de code

Planifié Épinglé Verrouillé Déplacé PHP
9 Messages 5 Publieurs 3.2k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • mars073M Hors-ligne
    mars073M Hors-ligne
    mars073
    a écrit sur dernière édition par
    #1

    Bonjour à tous,

    Je fais ce topic pour tout les petits codes pour éviter de faire plein de topic, si vous avez besoin de quelque chose en php vous le dites et je l'ajoute 😄

    1. Tester si un port est ouvert: -> fsockopen
    if (@fsockopen("127.0.0.1", 80, $errno, $errstr, 1) {
    // port ouvert
    }
    #en compact
    echo (@fsockopen("127.0.0.1", 80, $errno, $errstr, 1))? "En ligne":"Hors-ligne";
    [/php]
    

    Notes:

    • le @ empêche de faire apparaître une erreur si une erreur est rencontré; "127.0.0.1" est à remplacer par l'ip ou le domaine; 80 est à remplacer par le port; $errno et $errstr servent à récupérer l'erreur mais je les mets que pour utiliser le paramètre suivant; 1 est le temps maximum pour que le serveur réponde en seconde (un serveur actuellement prend 0.002sec pour faire un ping à l'opposé du monde en moyen).
    1. Vérification de base pour un include

    Le 27/07/2014 à 15:34, AlexMog a dit :

    Pour ma part, un petit bout de code (j'ai passé pas mal de temps à trouver des solutions pour éviter les failles includes, et j'ai trouvé mon bonheur en travaillant dur en sécu \o/) donc, pour ceux qui ont peur des failles includes:

    /* on change les // et les .. par rien \o/ (protection++) */
    $file = str_replace(array("..", "//"), "", $_GET['file']);
    
    /* Ici, je vérifie que le fichier demandé a bien la même arboressence que l'endroit où je stock mes fichiers*/
    if (!file_exists($file) || realpath(dirname($file)) == realpath(".")) { // A noter qu'il faudra changer "." par la racine du des fichiers
            echo "File error.";
        exit();
        }
    
    1. Afficher le visage d'un skin minecraft à partir du nom de compte et d'une dimension(optionnel)
    	header('Pragma: public');
    
    	header('Cache-Control: max-age=86400');
    
    	header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));
    
    	header("Content-type: image/png");
    
    	$size = (isset($_GET['size'])&&is_numeric($_GET['size'])&&
    
    	$_GET['size']<=128&&$_GET['size']>=8) ? $_GET['size'] : 64;
    
    	$name = (isset($_GET['name'])) ? $_GET['name'] : "char";
    
    	$img = imagecreate($size, $size);
    
    	$src = @imagecreatefrompng("http://minecraft.net/skin/{$name}.png");
    
    	if(!$src){
    
    	$src = @imagecreatefrompng("http://www.minecraft.net/skin/char.png");
    
    	}
    
    	imagecopyresized($img, $src, 0, 0, 8, 8, $size, $size, 8, 8);
    
    	imagepng($img);
    
    	imagedestroy($img);
    
    	imagedestroy($src);
    

    Notes:

    • les paramètres (nom et dimension) sont dans l'url (donc en $_GET) la dimension reste carré est s'exprimer à l'aide d'un entier de 8 à 128, si l'utilisateur s'appel "Mars075" et que que l'on veut d'une taille de 32px sur 32px l'url ressemblera à "head.php?name=Mars075&size=32". Si le nom n'est pas spécifié ou si le compte "officiel" n'a pas de skin correspondant le skin par défaut est affiche, si aucune taille n'est spécifiée la taille par défaut est de 64pixels, le site pour les apparences étant assez lent les images sont mises en cache pendant 24 heures (86400 secondes).
    1. Ma fonction pour charger une image $_FILES sans se soucier de tout les imagecreatefrom*
    	function imagecreatefromfile($file) {
    	           $func = "imagecreatefrom".substr($file['name'], strrpos($file['name'], ".")+1);
    	           $func = stri_replace(array("jpg", "jpe"), "jpeg", $func);
    	            return (function_exists($func)) ? $func($file['tmp_name']) : false;
    	}
    

    défaut principal: ne fonctionne pas avec imaged2part mais bon suffit de modifier un peu pour ceux qui l'utilise 😉

    votes-45296e7.png

    Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
    signature.png
    Signature aléatoire, proposez vous aussi une signature ici!

    1 réponse Dernière réponse
    4
    • AbrahamA Hors-ligne
      AbrahamA Hors-ligne
      Abraham
      a écrit sur dernière édition par
      #2

      Merci bien 🙂

      1 réponse Dernière réponse
      0
      • AzadA Hors-ligne
        AzadA Hors-ligne
        Azad
        a écrit sur dernière édition par
        #3

        Merci, c'est pratique ça.
        Avec ça, tu peux carrément faire un scanneur entier de port, en PHP du coup.

        Administrateur du forum.

        Contactez-moi par message privé ou par mail.

        1 réponse Dernière réponse
        0
        • AlexMogA Hors-ligne
          AlexMogA Hors-ligne
          AlexMog
          Modérateur spécialisé
          a écrit sur dernière édition par
          #4

          Pour ma part, un petit bout de code (j'ai passé pas mal de temps à trouver des solutions pour éviter les failles includes, et j'ai trouvé mon bonheur en travaillant dur en sécu \o/) donc, pour ceux qui ont peur des failles includes:

          /* on change les // et les .. par rien \o/ (protection++) */
          $file = str_replace(array("..", "//"), "", $_GET['file']);
          
          /* Ici, je vérifie que le fichier demandé a bien la même arboressence que l'endroit où je stock mes fichiers*/
          if (!file_exists($file) || realpath(dirname($file)) == realpath(".")) { // A noter qu'il faudra changer "." par la racine du des fichiers
                  echo "File error.";
              exit();
              }
          

          Multiplayer GameDev @ Unexpected

          Mon CV

          1 réponse Dernière réponse
          0
          • mars073M Hors-ligne
            mars073M Hors-ligne
            mars073
            a écrit sur dernière édition par
            #5

            Il faut même faire attention comme ça car on met aussi mettre du code ascii dans une requête ce qui confu ton script

            votes-45296e7.png

            Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
            signature.png
            Signature aléatoire, proposez vous aussi une signature ici!

            1 réponse Dernière réponse
            0
            • AzadA Hors-ligne
              AzadA Hors-ligne
              Azad
              a écrit sur dernière édition par
              #6

              Quitte à faire, rajoute les scripts ajoutés (notamment celui d'AlexMog) au premier message ?

              Administrateur du forum.

              Contactez-moi par message privé ou par mail.

              1 réponse Dernière réponse
              0
              • ScryptoS Hors-ligne
                ScryptoS Hors-ligne
                Scrypto
                a écrit sur dernière édition par
                #7

                Salut,

                bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.

                En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.

                Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS.

                1 réponse Dernière réponse
                0
                • mars073M Hors-ligne
                  mars073M Hors-ligne
                  mars073
                  a écrit sur dernière édition par
                  #8

                  Salut,

                  bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.

                  En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.

                  Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS.

                  Ce topic est là pour ne pas devoir faire un topic pour une seule fonction, précis? je donne un intitulé au "bout de code" et j'y ajoute une note pour expliquer et ne pas lacher ça comme ça...

                  votes-45296e7.png

                  Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
                  signature.png
                  Signature aléatoire, proposez vous aussi une signature ici!

                  1 réponse Dernière réponse
                  0
                  • AzadA Hors-ligne
                    AzadA Hors-ligne
                    Azad
                    a écrit sur dernière édition par
                    #9

                    Salut,

                    bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.

                    En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.

                    Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS.

                    Ce n'est pas du tout le but du sujet : pour une demande précise, il y a une réponse précise. Dans ce sujet sont partagés les codes trop petits pour être mis dans un sujet à part entière, qui peuvent être sortie de leur contexte. Il balance des codes par-ci par là, c'est exactement ça, le concept.

                    Chacun peut y trouver une utilité dans un projet personnel, son partage est tout à fait utile, ce n'est pas la peine d'être si agressif.

                    Administrateur du forum.

                    Contactez-moi par message privé ou par mail.

                    1 réponse Dernière réponse
                    0

                    Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                    Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                    Grâce à votre participation, ce message peut devenir encore meilleur 💗

                    S'inscrire Se connecter
                    Répondre
                    • Répondre à l'aide d'un nouveau sujet
                    Se connecter pour répondre
                    • Du plus ancien au plus récent
                    • Du plus récent au plus ancien
                    • Les plus votés


                    • Se connecter

                    • Connectez-vous ou inscrivez-vous pour faire une recherche.
                    Powered by NodeBB Contributors
                    • Premier message
                      Dernier message
                    0
                    • Catégories
                    • Récent
                    • Mots-clés
                    • Populaire
                    • Web
                    • Utilisateurs
                    • Groupes