Aller au contenu

joboy84

Webmaster Régulier
  • Compteur de contenus

    91
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par joboy84

  1. joboy84

    url rewriting

    ca ne m'avance pas car du coup le "+" ne fait plus partie de la variable..et vu que pas tous les articles ont un "+"... J'ai testé ^achat-de-([a-zA-Z0-9\+%]+)-a-prix-reduits Mais cela ne semble pas fonctionner non plus..
  2. joboy84

    url rewriting

    Bonjour Je rencontre un probleme avec l'url rewriting... Voila j'ai ce type de liens: http://www.monsite.fr/boutique/boutique.php?art=choco Le probleme de depart est que le nom de l'article peut contenir un signe +, soit: http://www.monsite.fr/boutique/boutique.php?art=choco+ ...auquel cas le + n'est pas transmis dans la variable get. Il faut faire http://www.monsite.fr/boutique/boutique.php?art=choco%2B pour que le + soit transmis. Maintenant je suis bloqué en url rewriting pour le plus... j'ai fais: RewriteRule ^achat-de-([a-zA-Z0-9-]+)-a-prix-reduits\.html$ /boutique/boutique.php?art=$1 [QSA,L] Si l'article comporte un signe +: Aucun de ces liens ne fonctionne... Pourquoi? Merci
  3. Bon finalement j'ai fais 2 tableaux pour afficher ce que je veux... Tout fonctionne...Merci tout de meme pour votre aide <?php $tab=array(); $tab1=array(); //On crée un premier tableau $sql=mysql_query('SELECT id_du_vote FROM NoteGlobaleVotes ORDER BY note DESC LIMIT 10'); while($res = mysql_fetch_array($sql)) { array_push($tab,array('NomSiteJeux' => $res['id_du_vote'])); } $requete = mysql_query('SELECT A.NomSite, A.Categorie FROM GestionMenus A, FicheSitesJeux B WHERE A.NomSite = B.NomSiteJeux AND A.Section = "JeuxEnLigne" AND B.Taille = "Long" GROUP BY B.NomSiteJeux'); while($donnees = mysql_fetch_array($requete)) { if(in_array($donnees['NomSite'], $tab) == FALSE) { array_push($tab1,array('NomSiteJeux' => $donnees['NomSite'], 'Categorie' => $donnees['Categorie'])); } } //Affichage menu top 10 echo '<ul>'; for($i = 0; $i < count($tab); $i++) { echo'<li><a href="/presentation-du-site-de-jeux-en-ligne-'.$tab[$i]["NomSiteJeux"].'.html">'.$tab[$i]["NomSiteJeux"].'</a></li>'; } echo'</ul>'; echo'<p><p>'; //Affichage menu rubrique multi-jeux echo '<ul>'; for($j = 0; $j < count($tab1); $j++) { if($tab1[$j]["Categorie"] == "Multi-Jeux") { echo'<li><a href="/presentation-du-site-de-jeux-en-ligne-'.$tab1[$j]["NomSiteJeux"].'.html">'.$tab1[$j]["NomSiteJeux"].'</a></li>'; } } echo'</ul>'; ?>
  4. Effectivement, il manquait encore une virgule En fait cela me retourne: Or j'aurai que souhaité avoir les 2 éléments dans l'array $tab1, et non limité à 10 ces entrées, et ni afficher en doublon les données Est ce possible? Code entier: <?php $tab=array(); $tab1=array(); //On crée un premier tableau $sql=mysql_query('SELECT id_du_vote FROM NoteGlobaleVotes ORDER BY note DESC LIMIT 10'); while($res = mysql_fetch_array($sql)) { array_push($tab,array('NomSiteJeux' => $res['id_du_vote'])); } $requete = mysql_query('SELECT A.NomSite, A.Categorie, C.note FROM GestionMenus A, FicheSitesJeux B, NoteGlobaleVotes C WHERE A.NomSite = B.NomSiteJeux AND A.Section = "JeuxEnLigne" AND B.Taille = "Long" AND B.NomSiteJeux NOT IN (SELECT id_du_vote FROM NoteGlobaleVotes) GROUP BY A.NomSite, A.Categorie, C.note ORDER BY C.note DESC LIMIT 10') or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); while($donnees = mysql_fetch_array($requete)) { array_push($tab1,array('NomSiteJeux' => $donnees['NomSite'], 'Categorie' => $donnees['Categorie'])); echo'<p>'.$donnees['NomSite'].'<p>'; } var_dump($tab); echo'<p>'; var_dump($tab1); ?> Maintenant en essayant d'arriver au résultat espéré sans jointure, cela m'a donné cela: <?php $tab=array(); $tab1=array(); //On crée un premier tableau $sql=mysql_query('SELECT id_du_vote FROM NoteGlobaleVotes ORDER BY note DESC LIMIT 10'); while($res = mysql_fetch_array($sql)) { array_push($tab,array('NomSiteJeux' => $res['id_du_vote'])); } $requete = mysql_query('SELECT A.NomSite, A.Categorie FROM GestionMenus A, FicheSitesJeux B WHERE A.NomSite = B.NomSiteJeux AND A.Section = "JeuxEnLigne" AND B.Taille = "Long" GROUP BY B.NomSiteJeux'); while($donnees = mysql_fetch_array($requete)) { array_push($tab1,array('NomSiteJeux' => $donnees['NomSite'], 'Categorie' => $donnees['Categorie'])); echo'<p>'.$donnees['NomSite'].'<p>'; } var_dump($tab); echo'<p>'; var_dump($tab1); for($i = 0; $i < count($tab1); $i++) // Tant que l'on peut parcourir le tableau { if (in_array($tab1['NomSiteJeux'],$tab)) //On teste si l'élément est dans le 1er tableau { echo'<p>'.$tab1['NomSiteJeux'].'<p>'; } } ?> Voila ce que retourne var_dump avec 7 elements noté, figurant dans le top10 et 2 elements present dans GestionMenus: [u][b]$tab :[/b][/u] array(7) { [0]=> array(1) { ["NomSiteJeux"]=> string(9) "Camenerve" } [1]=> array(1) { ["NomSiteJeux"]=> string(9) "Toilokdo2" } [2]=> array(1) { ["NomSiteJeux"]=> string(8) "Binbango" } [3]=> array(1) { ["NomSiteJeux"]=> string(9) "Fichetest" } [4]=> array(1) { ["NomSiteJeux"]=> string(10) "Testimania" } [5]=> array(1) { ["NomSiteJeux"]=> string(7) "Labrute" } [6]=> array(1) { ["NomSiteJeux"]=> string(6) "Marre2" } } [u][b]$tab1 :[/b][/u] array(2) { [0]=> array(2) { ["NomSiteJeux"]=> string(5) "Marre" ["Categorie"]=> string(10) "Multi-Jeux" } [1]=> array(2) { ["NomSiteJeux"]=> string(8) "Toilokdo" ["Categorie"]=> string(10) "Multi-Jeux" } } Ceci devrait donc afficher les noms de sites de jeux: Toilokdo et Marre car ils ne sont pas présent dans le premier tableau...Mais cela me retourne rien...
  5. Cela renvoie Erreur SQL !Resource id #6 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'C.note ORDER BY C.note DESC LIMIT 10' at line 1 Pour: $requete = mysql_query('SELECT A.NomSite, A.Categorie, C.note FROM GestionMenus A, FicheSitesJeux B, NoteGlobaleVotes C WHERE A.NomSite = B.NomSiteJeux AND A.Section = "JeuxEnLigne" AND B.Taille = "Long" AND B.NomSiteJeux NOT IN (SELECT id_du_vote FROM NoteGlobaleVotes) GROUP BY A.NomSite, A.Categorie C.note ORDER BY C.note DESC LIMIT 10') or die('Erreur SQL !'.$sql.' '.mysql_error());
  6. Re Alors l'erreur retournée est : Erreur SQL !Resource id #6 This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' Sinon je compredns pas trop ce que tu veux dire... pour relire j'utilise les données insérées dans le tableau...ou cela ne marchera t il pas avec une requete comportant des jointures? Les tables sont reliés par NomSite.GestionMenus, NomSiteJeux.FicheSitesJeux et id_du_vote.NoteGlobaleVotes, soit NomSite, NomSiteJeux et id_du_vote qui ont tous les champs la meme valeur... Merci
  7. joboy84

    requête avec jointures

    Bonjour, Je suis en train d'apprendre comment faire des requêtes avec jointures. <?php $requete = mysql_query('SELECT A.NomSite, A.Categorie FROM GestionMenus A, FicheSitesJeux B, NoteGlobaleVotes C WHERE A.NomSite = B.NomSiteJeux AND A.Section = "JeuxEnLigne" AND B.Taille = "Long" AND B.NomSiteJeux NOT IN (SELECT id_du_vote FROM NoteGlobaleVotes ORDER BY note DESC LIMIT 10) GROUP BY B.NomSiteJeux'); while($donnees = mysql_fetch_array($requete)) { array_push($tab1,array('NomSiteJeux' => $donnees['NomSite'], 'Categorie' => $donnees['Categorie'])); //Test: on verifie les donnees inserees dans le tableau echo'<p>'.$donnees['NomSite'].'<p>'; } ?> En fait j'ai 3 tables: GestionMenus, FicheSitesJeux et NoteGlobaleVotes qui sont reliable par NomSite.GestionMenus, NomSiteJeux.FicheSitesJeux et id_du_vote.NoteGlobaleVotes Le probleme dans ma requete doit concerner NoteGlobaleVotes avec la clause NOT IN...cela m'indique un Warning: mysql_fetch_array() : supplied argument is not a valid Mysql result.. Donc je souhaite qu'il récupère les nom des sites de jeux présent dans la table GestionMenus et FicheSitesJeux, mais qui ne sont pas présent dans la requête NOT IN.. L'erreur retournée est : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource Merci
  8. Finalement j'ai fais des boucles.. <?php for($i = 0; $i < count($tab1); $i++) { // condition de la 1ere boucle : tu cherches multi jeux if($tab1[$i]["Categorie"] == "Multi-Jeux") { // booleen qui détermine la condition d'arret pour chercher dans le tableau tab $trouve = 0; // 2eme boucle : on cherche dans tab for($j = 0; $j < count($tab); $j++) { // condition de la 2eme boucle : on cherche si on trouve le nom du site dans tab if ($tab1[$i]["NomSiteJeux"] == $tab[$j]["NomSiteJeux"]) { // on a trouvé donc on sort de la boucle $trouve = 1; break; } } // si on n'a pas trouvé on affiche if ($trouve==0) { echo'<li><a href="/jeux-en-ligne-'.$tab1[$i]["NomSiteJeux"].'.html">'.$tab1[$i]["NomSiteJeux"].'</a></li>'; } } } ?> Merci tout de meme à ceux qui ont voulu aider Bonne continuation
  9. Bonjour, J'ai plusieurs menus sur ma page, chaque menu est regroupé par catégorie. J'ai une premiere requete mysql dont le résultat est mis dans un tableau, contenant le top 10 des sites visités. Ensuite, j'ai une autre requête qui met le résultat dans un second tableau et qui contient tous les sites visités, sans distinction. Je souhaite, que si le site est présent dans le top 10 (tableau 1), il ne soit pas affiché lorsque je liste le contenu du tableau 2. <?php $tab=array(); $tab1=array(); //On crée un premier tableau $sql=mysql_query('SELECT id_du_vote FROM NoteGlobaleVotes ORDER BY note DESC LIMIT 10'); while($res = mysql_fetch_array($sql)) { array_push($tab,array('NomSiteJeux' => $res['id_du_vote'])); } //On cree le second tableau $requete = mysql_query('SELECT NomSiteJeux, Categorie FROM FicheSitesJeux WHERE Taille = "Long" GROUP BY NomSiteJeux') or die ('Erreur: '.mysql_error()); while($donnees = mysql_fetch_array ($requete)) { array_push($tab1,array('NomSiteJeux' => $donnees['NomSiteJeux'], 'Categorie' => $donnees['Categorie'])); } print_r($tab); echo'<p>'; print_r($tab1); echo'<p>'; //On affiche les données for($i = 0; $i < count($tab1); $i++) { //La je demande de ne sélectionner que les éléments du tableau ayant pour catégorie Multi-Jeux et if($tab1[$i]["Categorie"] == "Multi-Jeux" AND !in_array(''.$tab1[$i]["NomSiteJeux"].'', $tab)) { echo'<li><a href="/jeux-en-ligne-'.$tab1[$i]["NomSiteJeux"].'.html">'.$tab1[$i]["NomSiteJeux"].'</a></li>'; } } ?> print_r de $tab retourne: Array ( [0] => Array ( [NomSiteJeux] => Toilokdo ) [1] => Array ( [NomSiteJeux] => Testimania ) [2] => Array ( [NomSiteJeux] => Marre ) ) print_r de $tab1 retourne: Array ( [0] => Array ( [NomSiteJeux] => Find-jeux [Categorie] => Multi-Jeux ) [1] => Array ( [NomSiteJeux] => Kadokado [Categorie] => Fun ) [2] => Array ( [NomSiteJeux] => Marre [Categorie] => Grattage ) [3] => Array ( [NomSiteJeux] => Testimania [Categorie] => Multi-Jeux ) [4] => Array ( [NomSiteJeux] => Toilokdo [Categorie] => Top ) ) Logiquement, je voudrais que cela retourne: Find-jeux En effet, c'est la seule entrée non présentes dans le premier tableau et ayant pour catégorie Multi-Jeux. Mais cela me retourne en réalité: Find-jeux Testimania C'est comme si la condition !in_array etait ignorée ! Pourtant Testimania est présent dans le premier tableau... Ou est l'erreur et comment y remédier? Merci pour votre aide Jo
  10. Re, Voila j'ai donc utilisé: <?php $tab=array(); $requete = mysql_query('SELECT NomSiteJeux, Categorie FROM FicheSitesJeux WHERE Taille = "Long" GROUP BY NomSiteJeux') or die ('Erreur: '.mysql_error()); //$res= mysql_query("select distinct REGION_INFO from info_quotidien order by REGION_INFO "); while($donnees = mysql_fetch_array ($requete)) { array_push($tab,array('NomSiteJeux' => $donnees['NomSiteJeux'], 'Categorie' => $donnees['Categorie'])); } //print_r($tab); for($i = 0; $i < count($tab); $i++) { if($tab[$i]["Categorie"] == "Top") { echo'Nom: '.$tab[$i]["NomSiteJeux"].''; } } ?> Cela fonctionne maintenant ! Le code est il correct ainsi ou y a t il moyen d'épurer? Merci pour ton aide Jacques Jo
  11. Oula y en a des solutions ! J'étais justement entrain de voir pour mettre le résultat dans un tableau et ensuite pouvoir récupérer les valeurs dans le tableau, mais il est vrai que je ne suis pas très à l'aise avec les tableaux. Voila ce que j'ai fais pour le moment: <?php $tab=array(); $requete = mysql_query('SELECT NomSiteJeux, Categorie FROM FicheSitesJeux WHERE Taille = "Long" GROUP BY NomSiteJeux') or die ('Erreur: '.mysql_error()); while($donnees = mysql_fetch_array ($requete)) { array_push($tab,$donnees['NomSiteJeux'], $donnees['Categorie']); } print_r($tab); ?> Ce qui me renvoie Array ( [0] => Marre [1] => Grattage [2] => Testimania [3] => MultiJeux [4] => Toilokdo [5] => Top ) En décortiquant dans la base: Marre appartient a la catégorie Grattage, Testimania à la catégorie Multijeux et Toilokdo à la catégorie Top. Par contre comment je fais maintenant pour extraire les données du tableau comme je veux pour pouvoir faire un truc du genre if($donneeTab == "Top")... Quelle fonction utiliser? EDIT: Voila ce que j'ai fais, mais apparemment cela ne fonctionne pas, je dois faire une erreur: <?php $tab=array(); $requete = mysql_query('SELECT NomSiteJeux, Categorie FROM FicheSitesJeux WHERE Taille = "Long" GROUP BY NomSiteJeux') or die ('Erreur: '.mysql_error()); while($donnees = mysql_fetch_array ($requete)) { array_push($tab,$donnees['NomSiteJeux'], $donnees['Categorie']); } //print_r($tab); for($i = 0; $i < count($tab); $i++) { if($tab[$i]["Categorie"] == "Top") { echo'Nom: '.$tab[$i]["NomSiteJeux"].''; } else { echo'Aucunes donnees'; } } Cela me renvoie toujours Aucunes Donnees alors que Top est bien présent... Merci encore
  12. Effectivement c'est logique, je m'en était apercu pour le premier cas, c'est pourquoi j'avais commencé à travailler sur le second cas. Par contre il est donc impossible de faire une seule requete pour récupérer le contenu de tous les menus? Je suis obligé de faire une requête par section?! Merci
  13. Bonjour, J'ai un problème avec mon code... Je souhaite afficher un menu dynamique. Au lieu de faire une requête pour chaque menu j'ai voulu faire une seule requête pour tous les menus, mais cela ne me retourne rien alors que dans la base il y a bien des éléments correspondants à ma requête. <?php //On effectue la requete $requete = mysql_query('SELECT distinct NomSiteJeux, Categorie FROM FicheSitesJeux') or die ('Erreur: '.mysql_error()); $donnees = mysql_fetch_array($requete); while($donnees['Categorie'] == "MultiJeux") { echo'<li><a href="/presentation-du-site-de-jeux-en-ligne-'.$donnees['NomSiteJeux'].'">'.$donnees['NomSiteJeux'].'</a></li>'; } ?> Ceci n'est il pas possible? Sinon, si je fais cela: <?php $requete = mysql_query('SELECT NomSiteJeux, Categorie FROM FicheSitesJeux GROUP BY NomSiteJeux') or die ('Erreur: '.mysql_error()); ?> <div id="menu-de-gauche"> <div class="element_menu"> <div class="imageTitreMenusLeft"> <div class="textecentre"><h2>TOP 10 DES JEUX EN LIGNE</h2></div> </div> <div class="block-menu-gauche"> <ol> <?php while($donnees = mysql_fetch_array($requete)) { if($donnees['Categorie'] == "Top") { //On liste les éléments et cela fonctionne, les éléments sont listés ! echo'<li><a href="/presentation-du-site-de-jeux-en-ligne-'.$donnees['NomSiteJeux'].'">'.$donnees['NomSiteJeux'].'</a></li>'; } } ?> </ol> </div> </div> <div id="menu-de-gauche"> <div class="element_menu"> <div class="imageTitreMenusLeft"> <div class="textecentre"><h2>Jeux de Grattage</h2></div> </div> <div class="block-menu-gauche"> <ol> <?php while($donnees = mysql_fetch_array($requete)) { if($donnees['Categorie'] == "Grattage") { //Ici, les éléments ne sont pas listés, je ne sais pour quelle raison? echo'<li><a href="/presentation-du-site-de-jeux-en-ligne-'.$donnees['NomSiteJeux'].'">'.$donnees['NomSiteJeux'].'</a></li>'; } } ?> </ol> </div> </div> Dans ce cas, cela m'affiche bien les résultats dans le premier menu, mais dans le second, pour les jeux de grattage, cela ne me retourne rien... Merci
  14. Ta seconde solution fonctionne a merveille Je vais de ce pas télécharger ton plug in Merci et bonne journée
  15. Bonjour, J ai un petit probleme pour l integration d'une marque blanche... J'utilise dans ma feuille de style: * { margin: 0px; padding: 0px; } Ceci me pose aucun probleme sur le site jusqu'a présent, mais la je souhaite intégrer une marque blanche zylom et les images des jeux sont collé les unes au autres, c'est dégueux. Le problème vient de mon code cité ci-dessus. En effet, en enlevant ce dernier, l'affichage est aéré, mais mes menus bug... Apercu avec: http://www.voilou.fr/detenteTest.php?s=1&c=2 Apercu sans: http://www.voilou.fr/detenteTest.php?s=2&c=2 Je me suis donc dis que je vais faire un css uniquement pour cette page pour règler le prob, mais je ne vois pas ou est le problème des menus... Voici le code css des menus: #menu-de-gauche { float: left; width: 185px; } .block-menu-gauche /* contours de menus gauche */ { border-left: 1px solid #5CB3BE; border-right: 1px solid #5CB3BE; border-bottom: 1px solid #5CB3BE; margin-bottom: 8px; width:176px; /*#055E92 */ margin-left:6px; /*margin-top:0px;*/ background-image:url(/images/design/fondMenu.jpg); background-repeat: repeat-x; } .element_menu ul { list-style-image: url(/images/icones/icone-liste-puce.gif); /* On change l'apparence des puces */ padding-top:6px; /* Placement a l interieur du menu...espace haut */ padding-bottom:12px;/* et espace bas */ padding-left:25px; } .element_menu li { margin-top:5px; /* On crée un espacement de 5px entre chaque lien */ font-weight: bold; } .imageTitreMenusLeft { background-image: url(/images/design/rubrique-menus.PNG); background-repeat: no-repeat; height: 26px; width: 178px; margin-left:6px; } .textecentre { text-align:center; padding-top:8px; } Sinon est il possible d'attribuer le * { margin: 0px; padding: 0px; } Juste au block du menu? Merci pour votre aide! Jo
  16. Re bonjour... J'ai fais un script qui fusionne 2 images en une et cela fonctionne: <?php //On cree une image vierge de 390px de large et aussi haut que l image d origine // $image = imagecreate(390,$TailleImage[1]); => Fonctionne mais image mauvaise qualité $image = imagecreatetruecolor(390,$TailleImage[1]); //On colore l'image en blanc $blanc = imagecolorallocate($image, 255, 255, 255); // on enregistre l image dans le dossier... imagepng($image, ''.$_SERVER["DOCUMENT_ROOT"].'/images/temp/monimage.png'); // On charge d'abord les images $source = imagecreatefrompng(''.$_FILES['mon_image']['tmp_name'].''); // Le logo est la source $destination = imagecreatefrompng(''.$_SERVER["DOCUMENT_ROOT"].'/images/temp/monimage.png'); // La photo est la destination // On veut placer le logo au milieu, on calcule les coordonnées où on doit placer l image source sur la photo //$destination_x = ($largeur_destination/2) - ($largeur_source/2); //$destination_y = ($hauteur_destination/2) - ($hauteur_source/2); $destination_x = 195 - ($TailleImage[0]/2); $destination_y = ($TailleImage[1]/2) - ($TailleImage[1]/2); // On met le logo (source) dans l'image de destination (la photo) imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $TailleImage[0], $TailleImage[1], 100); // On affiche l'image de destination qui a été fusionnée avec le logo imagepng($destination, ''.$_SERVER["DOCUMENT_ROOT"].'/images/screenjeux/'.$nomdusite.'/'.$typejeu.'/big/'.$nomjeu.'.png'); imagedestroy('/images/temp/monimage.png'); ?> Mon problème est que le fond de l'image est noir et non blanc comme souhaité! Merci
  17. Bonjour, J'ai un petit problème et j'aurai besoin de votre aide pour le résoudre J'ai un script qui me convertit des images lorsque je les upload, en les redimensionnant. Toutes les images sont converties au format JPEG qualité 90 avec comme largeur 580px et une hauteur proportionnelle à l'image de départ. Si mes images sont plus large que 580 px, pas de problème, les images une fois converties seront de très bonne qualité, par contre si j'ai au départ une image de 200px de large qui est convertie en 580px de large, c'est assez pixelisé! (normal :aie: ) Pour palier à ce problème j'ai donc imaginé que le script de conversion pouvait ajouter une sorte de marge blanche dans l'image pendant la conversion, en centrant l'image d'origine et ajoutant à gauche et à droite une marge blanche. Je souhaite que ce soit dans l'image! (pas une bordure css ) Pour que vous compreniez mieux, je vous joins une image du résultat désiré: Apercu du résultat souhaité Sinon voici le code php utilisé pour les conversions: <?php class SimpleImage { var $image; var $image_type; function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); } } function save($filename, $image_type=IMAGETYPE_JPEG, $compression=90, $permissions=null) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); } } function output($image_type=IMAGETYPE_JPEG) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); } } function getWidth() { return imagesx($this->image); } function getHeight() { return imagesy($this->image); } function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height); } function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = $this->getheight() * $ratio; $this->resize($width,$height); } function scale($scale) { $width = $this->getWidth() * $scale/100; $height = $this->getheight() * $scale/100; $this->resize($width,$height); } function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } //Puis pour modifier une image suffit de faire: $image = new SimpleImage(); $image->load(''.$_FILES['mon_image']['tmp_name'].''); $image->resizeToWidth(580); $image->save(''.$_SERVER["DOCUMENT_ROOT"].'/images/dossier/abc.jpg'); ?> Merci pour votre aide Jo
  18. J ai trouvé le problème... En fait il ne faut pas que cela commence par un slash (/) ! ftp_mkdir($ftpc, $_SERVER["DOCUMENT_ROOT"]."/images/screenjeux/webmasterhub") renvoie ftp_mkdir($ftpc, /home/www/503c69a9a240068c8059ec652aefc53b/web/images/screen­jeux/webmasterhub/) comme si je met ftp_mkdir($ftpc, /images/screenjeux/monnvodossier/) Par contre en mettant ftp_mkdir($ftpc, images/screenjeux/monnvodossier) cela fonctionne! Bizarre, mais c'est ainsi lol Bonne continuation et merci pour votre aide
  19. Merci pour ton aide "Portekoi", mais apparemment cela ne règle pas le problème... Voila ce que cela renvoie: Warning: ftp_mkdir() [function.ftp-mkdir]: /home/www/503c69a9a240068c8059ec652aefc53b/web/images/screenjeux/webmasterHub/: No such file or directory in /home/www/503c69a9a240068c8059ec652aefc53b/web/test.php on line 73 Il y a eu un problème lors de la création du dossier WebmasterHub
  20. hello Je souhaite pouvoir créer un dossier à partir de mon admin, chose que j'arrive à faire, mais pas au bon endroit! En effet, cela me crée un dossier à la racine du site, et je voudrais qu'il soit créé dans le dossier /images/screenjeux/ Mon code actuel: <?php $ftpc = ftp_connect($ftp_server) or die('Could not connect to FTP server'); //On se connecte au serveur ftp ftp_login($ftpc, $ftp_user, $ftp_pass) or die('Could not log into FTP'); $nomdusite = 'webmasterHub'; //On vérifie si le dossier existe deja if (scandir(''.$_SERVER["DOCUMENT_ROOT"].'/images/screenjeux/'.$nomdusite.'/') == FALSE) { // Le dossier n existe pas: Tentative de création du dossier if (ftp_mkdir($ftpc, $nomdusite)) { echo "Le dossier $nomdusite a été créé avec succès\n"; } else { echo "Il y a eu un problème lors de la création du dossier $nomdusite\n"; } } else { echo'Le dossier '.$nomdusite.' existe deja!'; } ?> Comment faire pour lui dire de le créer dans /images/screenjeux/ et non dans / ? J ai essayé en mettant if (ftp_mkdir($ftpc, "/images/screenjeux/$nomdusite")) mais cela ne fonctionne pas mieux... Merci
  21. Hello Je me pose une question sur la gestion des ressources serveur. J'ai dans ma base plus de 100000 adresses ip (serveurs proxies publics, ip de robots... toutes valides) de visiteurs à bannir de mon site. J'ai 3 solution: 1) J'effectue au début de chaque pages une requête mysql qui va vérifier si l'ip du visiteur est présente dans la base. 2) Je met tout le contenu de ma base dans un tableau que je met dans une variable de session, et je verifie si l'ip est présente dans le tableau. Le problème est que si j'ai 20000 visiteurs qui ont tous une variable de session avec 100000 entrées cela va être lourd je pense...non? 3) J'utilise un fichier htaccess. Probleme: cela est plus long et agacant à mettre à jour car il faut ajouter et supprimer les entrées manuellement en général. Je précise que les adresses ip changent constamment, il y a environs 20000 suppressions/remplacements tous les 2 jours. Quelle est la meilleure solution à vos yeux? merci
  22. Je peux que changer la config php avec htaccess... (j'ai désactivé les magic_quotes ainsi)
  23. Effectivement j'avais fait une erreur de frappe Si je comprends bien, il vaut mieux mettre au début des pages php : error_reporting(E_ALL). Mais je ne comprends pas comment désactiver l'affichage des erreurs via display_errors et comment activer le tracage dans des logs... Je suis en hébergement mutualisé chez infomaniak...comment faire? c'est avec un htaccess?
  24. Bonjour Jean-Luc Effectivement c'est une idée...mais je ne sais pas si les membres vont apprécier si je leurs dit: "Si vous voyez une fleur sur la page que vous consultez, cliquez dessus et vous recevrez un cadeau( codes ou points)...Par contre si vous ne cliquez pas dessus, votre temps de navigation ne sera pas comptabilisé". Maintenant c'est à voir...l'idée n'étant pas mauvaise Je pense utiliser ton idée, mais ne que plus comptabiliser le temps si aucun clic n'a été fait sur les 3 dernières fleurs... Et en plus, après avoir réfléchi, j'ai eu une idée. Le robot navigue automatiquement, mais il revient forcément sur les mêmes pages, plus souvent qu'un simple visiteur. Après quelques tests, ce code est concluant: <?php session_start(); //On vérifie que le client accepte les cookies if (SID !== '') { //Le client n'accepte pas les cookies echo"Vous devez accepter les cookies pour voir cette page"; die(); } if(isset($_SESSION["$pageactu"])) { $_SESSION["$pageactu"] = $_SESSION["$pageactu"]+1; } else { //La je ne sais pas si on peut mettre la variable ainsi pour que la session en prenne le nom $_SESSION["$pageactu"] = 1; } if($_SESSION["$pageactu"] >= 12) { session_destroy(); //Ajout d'une entree dans la base pour bannissement pendant 24h et si récidive //banissement définitif } $pageactu = $_SERVER['SCRIPT_URI']; ?> Que pensez vous de cette solution en utilisant les sessions? Cela ne bouffera t-il pas trop de ressources? Est il mieux de le faire avec une base? Merci pour votre aide!
  25. joboy84

    Comment détecter un robot

    Bonjour, Je suis face à un problème un peu épineux. J'offre des points à mes membres en échange de leur temps passé sur le site durant le mois. Par exemple: 1200 minutes = 1200 points. Ces points sont utilisables dans une boutique, afin de recevoir des cadeaux. Le problème est que certains membres trichent. En effet, ils utilisent un robot qui se charge de naviguer sur le site automatiquement, en utilisant le cookie de session du membre après s'être identifié. Le robot est quasi indétectable car il surfe automatiquement sur des pages au hasard, mais en plus il n'a pas de durée spécifique de navigation (il restera 10 secondes sur une page, 40 sec sur une autre...). Du coup je ne sais pas comment le détecter sans importuner les membres...Avez vous une idée? Pour ceux qui vont demander comment je sais qu'un robot est utilisé, c'est parce qu'on m'a averti sur le sujet, des membres avaient trouvé le programme sur un site, mais je n'ai pas réussi à mettre la main dessus car ledit site est fermé. De plus, j'ai bien remarqué que certains comptes affichent plus de 14h de connection par jour, ce qui est énorme tout de même! Merci pour votre aide
×
×
  • Créer...