begin process at 2012 02 13 03:29:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Petit problème de fonction.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Petit problème de fonction.

mardi 4 mars 2008 à 22:19:03 | Petit problème de fonction.

sbool

Bonjour :)
Je n'arrive à rien dans mon code, est-ce normal car c'est impossible ou est-ce que je déconne?
Je cherche en fait à dessiner un carré dans un png avec a chaques affichages différents, une couleur aléatoire.
J'ai tout simplifier afin de vous exposer clairement mon problème.
<?php
$noir = imagecolorallocate($image,0,0,0);

 function random_couleur()
{
return $noir;
}
$random_couleur = random_couleur();

 imagefilledrectangle ($image,60,45,128,98,$random_couleur);
?>

Sans passer par la fonction ça tourne nickel mais on m'impose un code archi-clean.
Si vous pensez également à une autre méthode, faite moi signe
mardi 4 mars 2008 à 22:42:00 | Re : Petit problème de fonction.

malalam

Administrateur CodeS-SourceS
Hello,

heu...pardonne-moi, mais il ne veut rien dire ton code ?
Tu définis une variable $noir qui est une ressource de couleur...noire...à partir d'une variable $image non définie.
Puis tu définis une fonction qui ne fait que renvoyer $noir...$noir qui n'est pas connue de ta fonction puisque cette variable a été déclarée à l'extérieur.
Tu affectes ensuite à une autre variable, $random_couleur, le résultat de ta fonction. Fonction qui renvoie forcément 0 vu que visiblement, tu es dans une configuration de php très laxiste.
Et enfin, tu crées un rectangle dont les traits ont la couleur $random_couleur. Qui vaut 0.

Où vois-tu que tu génères une couleur aléatoire, là? Même sans fonction, je vois mal comment ça peut marcher ? Bon, je suppose que c'est juste une portin de ton code et que ta variable $image a été définie avant...j'espère ;-) Mais ça ne chang rien au fait que ta fonction ne fait rien, et qu'il n'y a aucune notion de génération aléatoire d'une couleur, là.


mardi 4 mars 2008 à 22:56:24 | Re : Petit problème de fonction.

sbool

Merci beaucoup de ton aide, je ne savais pas que dans une fonction, on ne pouvait pas utiliser une variable prédéfinie ailleurs.
Sinon, c'est vrai que ma config de php est très laxiste, et l'ironie du sort c'est qu'en plus j'ai même pas accès aux log.

Je vais don éclaircir tout ça et reporter mon code.
mercredi 5 mars 2008 à 00:24:05 | Re : Petit problème de fonction.

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Une fonction est limitée à sa propre portée. Elle ne voit pas les variables définies en dehors d'elle, globales mises à part. De même, une variable définie DANS une fonction est limitée à sa portée.
mercredi 5 mars 2008 à 00:30:06 | Re : Petit problème de fonction.

sbool

Ca y est! J'ai enfin ce que je souhaitais.

Je sais qu'il y a Beaucoup  plus simple mais je fais a mon niveau. Puis de temps en temps j'apprends et je fais mieux par la suite.


<?php
$largeur = 400;
$hauteur = 260;
 
$image = imagecreate($largeur,$hauteur);

function random_couleur_r() {
 $r = mt_rand(1, 255); 
  if ($r <= '50') {$r = '1' ; }
elseif ($r <= '100') {$r = '50' ; } 
elseif ($r <= '150') {$r = '100' ; } 
elseif ($r <= '200') {$r = '150' ; } 
elseif ($r <= '230') {$r = '250' ; }   
      return $r;}
   
    function random_couleur_v() {
 $v = mt_rand(1, 255); 
  if ($v <= '50') {$v = '1' ; }
elseif ($v <= '100') {$v = '50' ; } 
elseif ($v <= '150') {$v = '100' ; } 
elseif ($v <= '200') {$v = '150' ; } 
elseif ($v <= '230') {$v = '250' ; }   
      return $v;}
     
     
      function random_couleur_b() {
 $b = mt_rand(1, 255); 
  if ($b <= '50') {$b = '1' ; }
elseif ($b <= '100') {$b = '50' ; } 
elseif ($b <= '150') {$b = '100' ; } 
elseif ($b <= '200') {$b = '150' ; } 
elseif ($b <= '230') {$b = '250' ; }   
      return $b;}

$couleur_fond = imagecolorallocate ($image, 255, 230, 241);
$random_couleur = imagecolorallocate($image, random_couleur_r(), random_couleur_v(), random_couleur_b());
$random_couleur =
imagefilledrectangle ($image,60,45,128,98,$random_couleur);

header ("content-type: image/png");
imagepng($image);
imagedestroy($image);
 ?>
J'ai rajouté des ( if ($v <= '50') {$v = '1' ; }) pour d'une afficher des couleurs distinctes et en plus, je trouve qu'avec cette méthode, les couleurs sont plus jolies.
Merci encore Malalam ;)
mercredi 5 mars 2008 à 08:00:17 | Re : Petit problème de fonction.

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
re,,
<?php
function random_couleur {
    $aColors = array(50,100,150,200);
    return array ('R' > array_rand($aColors), 'G' > array_rand($aColors), 'B' > array_rand($aColors));
}

$aRandColors = random_couleur();
$couleur_fond = imagecolorallocate ($image, 255, 230, 241);
$random_couleur = imagecolorallocate($image, $aRandColors['R'], $aRandColors['G'],  $aRandColors['B'];
$random_couleur =
imagefilledrectangle ($image,60,45,128,98,$random_couleur);

header ("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
mercredi 5 mars 2008 à 22:46:31 | Re : Petit problème de fonction.

sbool

J'avais vu sur la doc php que l'on pouvait retourner plusieurs variables d'une fonction avec un array mais je ne tâte pas trop les tableaux.
C'est sur que négliger les array à mon stade est vraiment absurde, je vais donc m'y pencher avant de m'attaquer à ton tutorial sur la méthode objet que je guette depuis quelques temps déjà.

Entre autres j'ai déjà implémenté ton code à la place du mien, et ca fait du bien de voir des lignes correctement codées dans mon prog.

Thx.


Cette discussion est classée dans : problème, fonction, code, couleur, random


Répondre à ce message

Sujets en rapport avec ce message

gros problème avec les cookies [ par phsautreau ] Bonjour,Je développe un site que je veux adaptable au mal voyant, cela signifie que j'ai créé une petite barre à l'instar de celle présenta lors de l' Code PHP dans une fonction JavaScript [ par Kleidp ] Salut à tousVoici mon problème:mon code PHP est inséré dans une fonction Javascript.La fonction est appellée quand on clique sur un checkbox.Le problè récupération fonction mail sous outlook ... problème [ par HFanny ] Bonjour à tous,j'ai besoin (pour mon boulot) d'envoyer des mails à une liste de personnes.Je suis donc en train de faire des tests : * j'arrive à parc Lecture de code barre. [ par jeremy_r ] Bonjour à tous!J'espère que qqn ici réussira à me dépatouiller du problème que j'ai actuellement.J'ai développé une appli de recueil de données, ceci Problème pour prendre en compte la touche Entrée [ par Also know as ] Bonjour,Je suis en train de créer mon livre d'or, j'ai presque fini mais je bloque sur une ptite chose sans doute mais qui me bloque énormément, j'aim problème PHP dans un popup [ par skmancuso ] Bonjour,Je suis en train de faire un formulaire de saisie. Lorsque l'utilisateur à remplit tous les champs obligatoires, il ne lui reste plus qu'à cli appel d'une fonction [ par ASPerix ] Bonjour,Voila mon probleme:(j'utilise une base de données MySQL)j'affiche une ligne d'une de mes tables avec un 'select' et j'ajoute un bouton qui fai la fonction header() [ par knas74 ] nasj'ai un problème avec la fonction header() lorsque je l'utilise j'ai ce message d'erreur qui s'affiche:Warning: Cannot modify header information - Pb syntax php mysql+systèmes fichiers [ par XFLR6 ] hellodsl pour ce titre un peu bizarre, mais je savais pas quoi mettre d'autre pour qualifier mon problème ...alors voila ;je V vous montrer un bout du Problème! :( [ par MAsterC ] Salut à tous!Voici mon problème!J'ai une page en .HTML qui contient des boutons Radio!Voici sont code:<me


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,911 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales