Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

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

Des bouts de code

Scheduled Pinned Locked Moved PHP
9 Posts 5 Posters 3.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mars073M
    mars073M
    mars073
    wrote on last edited by
    #1

    <p>
    Bonjour à tous,
    </p>
    <p>
    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 😄 </p>
    <p>
     
    </p>
    <p>
    1. Tester si un port est ouvert: -> <a href="http://au2.php.net/manual/fr/function.fsockopen.php" rel="external nofollow">fsockopen</a>
    </p>
    <p>
     
    </p>
    <div>
     
    </div>
    <pre class="ipsCode">
    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]</pre>
    <p>
     
    </p>
    <p>
    Notes:
    </p>
    <p>
    - 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).
    </p>
    <p>
     
    </p>
    <p>
    2. Vérification de base pour un include
    </p>
    <blockquote class="ipsQuote" data-cite="AlexMog" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9737" data-ipsquote-contentid="943" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406468086" data-ipsquote-username="AlexMog">
    <div class="ipsQuote_citation">
    Le 27/07/2014 à 15:34, AlexMog a dit :
    </div>
    <div class="ipsQuote_contents">
    <div>
    <p>
    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:
    </p>
    <pre class="ipsCode prettyprint lang-auto">

    /* 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();
    }
    </pre>
    <p>
     
    </p>
    </div>
    </div>
    </blockquote>
    <p>
    3. Afficher le visage d'un skin minecraft à partir du nom de compte et d'une dimension(optionnel)
    </p>
    <p>
     
    </p>
    <div>
     
    </div>
    <pre class="ipsCode">

    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'])&amp;&amp;is_numeric($_GET['size'])&amp;&amp;
    
    $_GET['size']&lt;=128&amp;&amp;$_GET['size']&gt;=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);
    

    </pre>
    <p>
     
    </p>
    <p>
    Notes:
    </p>
    <p>
    - 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).
    </p>
    <p>
     
    </p>
    <p>
    4. Ma fonction pour charger une image $_FILES sans se soucier de tout les imagecreatefrom*<br/></p>
    <pre class="ipsCode">
    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;
    }
    </pre>
    <p>
    </p>
    <p>
    défaut principal: ne fonctionne pas avec imaged2part mais bon suffit de modifier un peu pour ceux qui l'utilise 😉 </p>

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

    1 Reply Last reply
    4
    • AbrahamA
      AbrahamA
      Abraham
      wrote on last edited by
      #2

      <p>Merci bien 🙂  </p>

      1 Reply Last reply
      0
      • AzadA
        AzadA
        Azad
        wrote on last edited by
        #3

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

        Administrateur du forum.
        Contactez-moi par message privé ou par mail.

        1 Reply Last reply
        0
        • AlexMogA
          AlexMogA
          AlexMog
          Modérateur spécialisé
          wrote on last edited by
          #4

          <p>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:</p>
          <pre class="ipsCode prettyprint">
          /* 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();
          }
          </pre>

          Multiplayer GameDev @ Unexpected
          

          Mon CV

          1 Reply Last reply
          0
          • mars073M
            mars073M
            mars073
            wrote on last edited by
            #5

            <p>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</p>

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

            1 Reply Last reply
            0
            • AzadA
              AzadA
              Azad
              wrote on last edited by
              #6

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

              Administrateur du forum.
              Contactez-moi par message privé ou par mail.

              1 Reply Last reply
              0
              • ScryptoS
                ScryptoS
                Scrypto
                wrote on last edited by
                #7

                <p>Salut,</p>
                <p>bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.</p>
                <p>En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.</p>
                <p>Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS. </p>

                1 Reply Last reply
                0
                • mars073M
                  mars073M
                  mars073
                  wrote on last edited by
                  #8

                  <blockquote class="ipsQuote" data-cite="Scrypto" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9819" data-ipsquote-contentid="943" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406564796" data-ipsquote-username="Scrypto"><div><p>Salut,</p><p>bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.</p><p>En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.</p><p>Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS.</p></div></blockquote><p>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...</p>

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

                  1 Reply Last reply
                  0
                  • AzadA
                    AzadA
                    Azad
                    wrote on last edited by
                    #9

                    <blockquote class="ipsQuote" data-cite="Scrypto" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="9819" data-ipsquote-contentid="943" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1406564796" data-ipsquote-username="Scrypto"><div>
                    <div>
                    <p>Salut,</p>
                    <p>bien des codes partagés généreusement je n'arrive pas à constater la vraie utilité de ce sujet.</p>
                    <p>En effet tu nous partage des codes, mais malheureusement sans aucune précision tu nous balances des codes comme ça par-ci par-là.</p>
                    <p>Si tu veux vraiment qu'un partage soit utile autant donner un code PRÉCIS pour un but PRÉCIS. </p>
                    </div>
                    </div></blockquote>
                    <p> </p>
                    <p>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.</p><p>
                    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.</p>

                    Administrateur du forum.
                    Contactez-moi par message privé ou par mail.

                    1 Reply Last reply
                    0

                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                    With your input, this post could be even better 💗

                    Register Login
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Login or register to search.
                    Powered by NodeBB Contributors
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups