Jump to content

Recommended Posts

Posted (edited)

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 :D

 

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).

 

2. 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();
    }

 

3. 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).

 

4. 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 ;)

Edited by mars073
ajout ^-^
  • Upvote 4
Posted

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();
    }
Posted

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. 

Posted

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...

Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...