Fonction sleep chez free bloquée... débloquée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 849 fois - Téléchargée 25 fois

Contenu du snippet

Salutation a tous... je tentais de dévelloper unen petite apli, quand je me suis rendu compte que ces $\#! d'administrateurs de free avaient bloqué la fonction sleep (qui n'est pas utile a tout le monde mais a moi si) ...
Quel dommage de ne pas pouvoir l'utiliser !! ho mais que vais je faire ??? ben ma fonction sleep perso ... bon, cherchez pas a faire en dessous de la seconde, et la première seconde est arrondie ... vous allez comprendre pourquoi

Source / Exemple :


function Nsleep($nbsec)      //$nbsec c'est le nombre de secondes
{
	$tps=time();
	while($tps+$nbsec!=time()){}
}

Conclusion :


bon, alors pour les débutants, j'enregistre dans $tps le nb de secondes écoulées depuis le 1° janvier 70 à 00 GMT, et je fais rammer le serveur jusqu'à arriver à $tps + le temps que je veux attendre....

bon, je croi pas que cette astuce ai été publiée, sinon toutes mes excuses...
en espérant que ca vous serve (j'ai otament vu un chat sur ce site qui marchait pas chez free a cause de ca....)

A voir également

Ajouter un commentaire

Commentaires

cs_garfield90
Messages postés
389
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009
-
je vois un petit soucis a ton script, le cas qui n'arrive "jamais".

Imagine la grosse charge du serveur et ton while dure plus d'1 seconde, t'as condition est toujours valable mais ton script ne s'arretera jamais.

Mets a la place du != un >=, et verifie aussi que $nbSec est positif et numérique, ca t'évitera d'autres soucis (en particulier les boucles infinies)

Sur ce, script tout a fait a son niveau (débutant) mais tu pourrais etre un peu plus précis en utilisant la fonction microtime, meme si cela est peu etre trop précis.
cs_raoullevert
Messages postés
5
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
19 juillet 2006
-
Salut,

Tres sincerement, tu vas te mettre free a dos ! Faire 'ramer' le serveur avec une 'boucle infinie', ca risque de les amuser !
De toutes façons, ce genre de cas est prevu, et ton script a un temps maximum pour s'executer, apres lequel il est scratché purement et simplement. Et la , free a bloqué cette limitation !
Ton script fonctionnera donc bien pour des courtes durées (je crois que c'est 30s max, a voir ....)

Bien essayé :-)
djmoa
Messages postés
39
Date d'inscription
mercredi 6 octobre 2004
Statut
Membre
Dernière intervention
27 mai 2009
-
tout d'abord merci pour vos commentaires...
pour le $tps+$nbsec>=time() j'ai pensé au cas de figure seulement après avoir posté le code, et comme tu le dit, ca n'arrive "jamais" (sauf quand ca arrivera). mais qui sais, une opération de maintenance ou autre et je serai grillé ...
pour le fait que le nombre de secondes soit un positif numérique, honnetement, je suis pas encore a fond dans le php et je sais pas comment verifier que ce soit un numérique, mais ca doit etre dans plein de sources deja, et pour le fait qu'il soit positif, je considère que c'est a l'utilisateur de le faire, mais bonne remarque quand meme... je ne connais pas la fonction microtime, mais ca meriterai de s'y interesser

pour ce qui est de me mettre free à dos, honnetement ils ont cas autoriser le sleep, ca leur couterai surement pas grand chose, puis comme tu le dis, le time out est de 30 secondes et je suis sur qu'apache est suffisament bien fait pour pas que je bloque tout (bonne répartition des ressources CPU), donc il rammera pas a cause de moi ;) par contre j'essaye de m'en servir pour un code qui risque de moins leur plaire

es ce que quelqu'un aurais un lien ou une liste complète des fonctions autorisées et bloquées par free ? et toutes autres restrictions ?
merci a tous
cs_olivier59
Messages postés
5
Date d'inscription
mardi 16 octobre 2001
Statut
Membre
Dernière intervention
24 septembre 2008
-
essaye la fonction dans une page php pour avoir la liste des fonctions activées


<?php
phpinfo();
?>
TheSin
Messages postés
331
Date d'inscription
mardi 12 novembre 2002
Statut
Membre
Dernière intervention
10 février 2009
-
function Nsleep($nbsec) //$nbsec c'est le nombre de secondes
{
$nbsec = abs ( (int) $nbsec) ;
$tps=time();
while($tps+$nbsec!=time()) ;
}

valà, je t'ai légèrement améliorée pour avec un integer toujours positif ;-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.