
Anonymus
Hubmaster-
Compteur de contenus
5 211 -
Inscrit(e) le
-
Dernière visite
Tout ce qui a été posté par Anonymus
-
Tu es dans le cas où il n'y a pas d'erreurs J'ai mis comme exemple google, mais j'ai précisé que la sortie d'écran etait celle de mon site. En effet, il n'y a pas d'erreurs sur google au niveau des balises, j'aurais eu la meme sortie d'ecran que toi. alors qu'il y en a sur mon site, ce qui est plus représentatif Essaies en changeant la ligne : $url = "http://www.google.com"; par $url = "http://www.labonneadresse.com"; Qu'est ce que tu ne comprends pas, en Php ? Que l'on puisse te faire avancer, t'aider A.
-
Tu fais clic droit, 'renommer', et tu tapes index.php Tu as un ftp pour le transfert des fichiers sur le serveur ? Tu peux changer le nom via cet utilitaire. Sinon, si tu as un logiciel, type Dreamweaver ou UltraEdit, qui te permet de modifier le code source, il te permet également surement de changer l'extension du fichier en .html. Tu rencontres un problème particulier pour renommer tes fichiers ?
-
Si tu mets : echo "crunch(" . $row['tx'] . "," . $row['lg1'] . ")"; Tu lui demandes d'afficher : le mot 'crunch', suivi de la chaine 'tx', une virgule, et la longueur. Si tu veux afficher le résultat de la fonction, alors c'est : echo" ".crunch($row['tx'],$row['lg1']); A.
-
Cette fonction sert à tester, vérifier les balises présentes dans une page web. La voici : <? $url = "http://www.google.com"; function html_check($url){ /* Parametre : $url : URL ou chemin d'acces du fichier a tester * La variable retournée est un tableau associatif à contenant des tableaux : * "ouvertures multiples" => tableau des balises concernées, * "non ouverte" => tableau a 2 dimensions (balise -> nombre) * "non fermee" => tableau a 2 dimensions (balise -> nombre) * "mal placee" => tableau a 2 dimensions (balise -> nombre) * "mal emboitee" => tableau a 2 dimensions * (balise fermante -> balise ouvrante en conflit) * "inconnue" => tableau des balises inconnues */ $notonlyonce = array("TABLE", "FRAMESET"); $openclosetags = array( "A" => 0, "ADDRESS" => 0, "APPLET" => 0, "B" => 0, "BIG" => 0, "BLINK" => 0, "BLOCKQUOTE" => 0, "BODY" => 0, "CAPTION" => 0, "CENTER" => 0, "CITE" => 0, "CODE" => 0, "COMMENT" => 0, "DD" => 0, "DFN" => 0, "DIR" => 0, "DIV" => 0, "DL" => 0, "DT" => 0, "DT" => 0, "EM" => 0, "EMBED" => 0, "FONT" => 0, "FORM" => 0, "FRAME" => 0, "FRAMESET" => 0, "H1" => 0, "H2" => 0, "H3" => 0, "H4" => 0, "H5" => 0, "H6" => 0, "HEAD" => 0, "HTML" => 0, "I" => 0, "IFRAME" => 0, "ILAYER" => 0, "KBD" => 0, "LAYER" => 0, "LISTING" => 0, "MAP" => 0, "MARQUEE" => 0, "MENU" => 0, "MULTICOL" => 0, "NOBR" => 0, "NOEMBED" => 0, "NOFRAMES" => 0, "NOLAYER" => 0, "NOSCRIPT" => 0, "OBJECT" => 0, "OL" => 0, "OPTION" => 0, "PARAM" => 0, "PRE" => 0, "S" => 0, "SAMP" => 0, "SCRIPT" => 0, "SELECT" => 0, "SERVER" => 0, "SMALL" => 0, "SPAN" => 0, "STRIKE" => 0, "STRONG" => 0, "STYLE" => 0, "SUB" => 0, "SUP" => 0, "TABLE" => 0, "TD" => 0, "TEXTAREA" => 0, "TFOOT" => 0, "TH" => 0, "THEAD" => 0, "TITLE" => 0, "TR" => 0, "TT" => 0, "U" => 0, "UL" => 0, "VAR" => 0 ); $alltags = array( "!--", "!DOCTYPE", "A", "ADDRESS", "APPLET", "AREA", "B", "BASE", "BASEFONT", "BGSOUND", "BIG", "BLINK", "BLOCKQUOTE", "BODY", "BR", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP", "COMMENT", "DD", "DFN", "DIR", "DIV", "DL", "DT", "DD", "DT", "EM", "EMBED", "FONT", "FORM", "FRAME", "FRAMESET", "H1", "H2", "H3", "H4", "H5", "H6", "HEAD", "HR", "HTML", "I", "IFRAME", "ILAYER", "IMG", "INPUT", "ISINDEX", "KBD", "KEYGEN", "LAYER", "LI", "LINK", "LISTING", "MAP", "MARQUEE", "MENU", "META", "MULTICOL", "NOBR", "NOEMBED", "NOFRAMES", "NOLAYER", "NOSCRIPT", "OBJECT", "OL", "OPTION", "P", "PARAM", "PLAINTEXT", "PRE", "S", "STRIKE", "SAMP", "SCRIPT", "SELECT", "SELECT", "SERVER", "SMALL", "SPACER", "SPAN", "STRIKE", "STRONG", "STYLE", "SUB", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TITLE", "TR", "TT", "U", "UL", "VAR", "WBR" ); $require = array( "THEAD" => "TABLE", "TH" => "TABLE", "TFOOT" => "TABLE", "TBODY" => "TABLE", "TD" => "TABLE", "TR" => "TABLE", "LI" => array("OL", "UL", "DIR", "MENU"), "FRAME" => "FRAMSET", "INPUT" => "FORM", "SELECT" => "FORM", "TEXTAREA" => "FORM", "PARAM" => array("APPLET", "EMBED", "OBJECT"), "WBR" => "NOBR", "TITLE" => "HEAD", "LINK" => "HEAD", "OPTION" => "SELECT", "DT" => "DL", "DD" => "DL", "HEAD" => "HTML", "BODY" => "HTML" ); $mal_place = array("THEAD" => 0, "TH" => 0, "TFOOT" => 0, "TBODY" => 0, "TD" => 0, "TR" => 0, "LI" => 0, "FRAME" => 0, "INPUT" => 0, "SELECT" => 0, "TEXTAREA" => 0, "PARAM" => 0, "WBR" => 0, "TITLE" => 0, "LINK" => 0, "OPTION" => 0, "DT" => 0, "DD" => 0, "HEAD" => 0, "BODY" => 0 ); $retour = array( "ouvertures multiples" => array(), "non ouverte" => $openclosetags, "non fermee" => $openclosetags, "mal placee" => $mal_place, "mal emboitee" => array(), "inconnue" => array() ); $lines = _AT_file($url); if (!$lines) return FALSE; $file = implode(" ", $lines); $file = preg_replace("/\s+/", " ", $file); $file = preg_replace("/<!--[^>]+>/", "", $file); preg_match_all("/<(\/?[^> ]+)[^>]*>/i", $file, $balises); $pile_balise = array(); for ($i=0;$i<sizeof($balises[0]);$i++) { $balise = strtoupper($balises[1][$i]); if (!in_array($balise, $alltags) && !in_array(substr($balise, 1, strlen($balise)), $alltags) && !in_array($balise, $retour["inconnue"])) { $retour["inconnue"][] = $balise; } else { /* Fermeture d'une balise */ if (substr($balise, 0, 1) == "/") { $balise = substr($balise, 1, strlen($balise)); if (isset($openclosetags[$balise])) { $openclosetags[$balise]--; if (($parent = array_pop($pile_balise)) != $balise) $retour["mal emboitee"][$balise] = $parent; if ($openclosetags[$balise] < 0) { $openclosetags[$balise] = 0; $retour["non ouverte"][$balise]++; } } } /* Ouverture d'une balise */ else { if (isset($require[$balise])) { if (is_array($require[$balise])) { $ok = FALSE; $j=0; while ($j<sizeof($require[$balise]) && !$ok) { if ($openclosetags[$require[$balise][$j]] > 0) $ok = TRUE; $j++; } if (!$ok) { $retour["mal placee"][$balise]++; } } else { if ($openclosetags[$require[$balise]] <= 0) { $retour["mal placee"][$balise]++; } } } if (isset($openclosetags[$balise])) { if (!in_array($balise, $notonlyonce) && ($openclosetags[$balise] > 0) && !in_array($balise, $retour["ouvertures multiples"])) { $retour["ouvertures multiples"][] = $balise; } array_push($pile_balise, $balise); $openclosetags[$balise]++; } } } } foreach ($openclosetags as $key => $value){ if ($value > 0) $retour["non fermee"][$key] = $value; } return $retour; } /// ... Anonymus $an_array = html_check($url); foreach($an_array as $k => $v){ echo"<p><b>".$k."</b>"; foreach($v as $key => $value) if ($value>0) echo"<br>".$key."--".$value; } /// ... Fin Anonymus ?> Pour essayer ce script, tu remplaces , tout en haut, l'url vers google par ton url, ou toute autre url. Tu mets ce script tout seul sur une page, et tu lances la page. Tu auras un résultat comme ceci (pas pour google, ça c'est le résultat de mon site !! ) : L'avantage de cette fonction est qu'elle est évolutive, et tu peux donc la transformer facilement pour y ajouter tes balises préférées. ps : Juste un mot, sur les scripts Nexen. S'ils ont une librairie importante de scripts, il est vrai aussi qu'ils ne font pas souvent le ménage. Ce script date de 2001, et marche encore. Mais beaucoup ne marchent plus, ce qui est assez dommage (changements version, non testée suffisamment,..). De plus, ils sont, comme tu peux t'en rendre compte, assez mal documentés. Ceci dit, avec un peu de connaissances en php, tu peux t'en servir, les modifier, etc... ils fournissent d'excellentes bases pour tous ceux qui veulent disposer de librairies completes, rapides, et pas cheres A.
-
Ce sont 2 pb différents. Dans le premier, tu as un problème de connection avec ta base sql, ce qui fait qu'il te génère une erreur. Le lien n'est pas bon, donc il ne peut te donner le nb de lignes, et il ne peut se déconnecter (puisqu'il n'a pas pu se connecter.) Le second problème, c'est au niveau de ton navigateur. Tu n'as pas mis le bon 'codage'. Tu vas dans le menu 'affichage', puis 'codage', et tu coches 'selection automatique'. Si ca ne marche toujours pas, c'est que le site en question te renvoie un mauvais 'codage', et demande au navigateur d'afficher dans un type qui ne correspond pas au texte. Dans ce cas là, il faut revoir les entetes que renvoie le site. A.
-
Bon : Il te faut mettre le fichier dans le meme répertoire que ton script. Pour le message d'erreur, je ne vois pas trop, on n'a pas l'habitude de le rencontrer, celui ci :/ Mais il y a des chances pour que ce soit un problème de mot de passe, pour la base de données. Essaies de te renseigner dans les guides OVH, pour voir si tu as mis le bon
-
Tout dépend de ce dont il s'agit. Tu peux poster le code (s'il n'est pas trop long), voire la page d'où tu as tiré cet élément ? merci.
-
Tu peux nous donner les messages d'erreur, s'il te plait ? merci.
-
Et donc, compter chaque 'occurence' de 'source', tout en les nommant, ca donnerait : select source,count(*) as votes from tablename2 group by source order by votes DESC Tu n'as pas les 'text', mais tu as le tableau trié par source, et ordonné par vote (le plus grand en premier). Pour le 'text', il te faut rappeler chaque ligne : select text from tablename2 where source='$source' Le $source étant le 'source' de la première requète. Voilà. ps : Dans ce cas là, 'votes' est un chiffre
-
Un pourcentage, ce n'est pas difficile, tout de meme ! Dans le cas : 80 pour cent des eleves ont le bac, on peut dire que dans une classe de 20 élèves, il y a 20 / 100 * 80 = 16 élèves qui l'auraient (si les stats s'avèrent juste ). Pour ton sondage : On sait que l'on a : - le nombre de personnes total ayant voté, ($total_sondes) - le nombre de personnes ayant voté le résultat A,($vote_A) - le nombre de personnes ayant voté le résultat B.($vote_ On peut très rapidement en déduire que : Pour "$total_sondés", il y a "$vote_A" votes. Tout comme, pour 20 eleves, il y avait 16 bac. Donc 16 pour 20 => 80 pour 100 => $vote_A pour $total_sondés On ne connais ni $vote_A, ni $total_sondés, seulement "100" (puisque c'est un pourcentage). la fonction sera : $_A_pourcent = ( 100 / $total_sondés )*$vote_A Idem pour B. J'ai été clair ? Euh...
-
Retourner les premiers caractères d'une chaine ? la fonction substr sert justement à ca Utilisation : $rest = substr("abcdef", 1); // retourne "bcdef" $rest = substr("abcdef", 1, 3); // retourne "bcd" $rest = substr("abcdef", 0, 4); // retourne "abcd" $rest = substr("abcdef", 0, 8); // retourne "abcdef" Dixit le Manuel Tu peux aussi essayer à l'envers $rest = substr("abcdef", 0, -1); // retourne "abcde" $rest = substr("abcdef", 2, -1); // retourne "cde" $rest = substr("abcdef", 4, -4); // retourne "" $rest = substr("abcdef", -3, -1); // retourne "de" A.
-
Juste une précision : DELETE FROM tablename vide la table, et réinitialise le compteur d'incrémentation. Donc, en transférant la table dans une table temporaire, en 'vidant' la table, et en retransférant la table, tu obtiens une table avec des numéros qui se suivent. Mais il est vrai que cela n'a plus de sens, dans la mesure où, comme il est déjà précisé, l'auto-index est justement fait pour que les numéros ne repartent pas à zéro, et que l'on ne soit pas obligé d'en suivre l'ordre. Nico.
-
Tu poses un second problème... Combien de personnes vont refuser le mail, parce que leur FAI va leur dire 'attention, ce mail contient une image, etc...'. Chez aol, il faut approuver chaque mail recu qui contient une image. Personnellement, lorsqu'il y a une image et que je ne connais pas l'expéditeur, je n'ouvre pas
-
Tu trouveras souvent des hébergeurs en mutualisé qui offrent l'espace sql illimité. C'est le cas, par exemple, pour ovh. Quand tu dépasses une taille raisonable, ils te préviennent, et tu changes d'hébergement pour ta base, tout en laissant ton site sur le meme hébergement. Pour info, ca m'est arrivé chez ovh, et donc, ca donne : Renseignes toi auprès d'eux (inutile de dire qu'un hébergement mutualisé ne convient pas forcément à un site qui génère 200 Mo de base, mais c'est un autre pb.. )
-
Ca marche, merci vraiment bien beaucoup Pour info, et pour les afficionados, la commande qu'il fallait : gunzip filename-1.0-api-2.gz Par contre, je n'ai pas dit qu'il s'agissait forcément d'un fichier compressé, au contraire, j''ai dis Si ca se trouve, c'en est pô un
-
Grosso modo, ca dit que... ca le fait pas.. : > tar xpzf filename-1.0-api-2 tar (child): filename-1.0-api-2: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error exit delayed from previous errors > tar xpzf filename-1.0 tar (child): filename-1.0: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error exit delayed from previous errors L'un comme l'autre, ca ne parait pas bon. Je décompresse dans le répertoire /tmp. Il y aurait un rapport ? J'ai importé le fichier avec la commande wget. (Pour moi, c'est de l'hébreu, je n'y comprend pas grand chose )
-
Merci beaucoup Malheureusement, ca donne le même résultat : tar zxvf filename-1.0-api-2.gz tar: This does not look like a tar archive tar: Skipping to next header tar: Archive contains obsolescent base-64 headers tar: Error exit delayed from previous errors Le fichier serait endommagé ? (peu probable, je l'ai pris sur le site de l'éditeur) Ce ne serait pas un fichier décompressable ? Mais alors, que signifierait la ligne (sur le site) : "Download the appropriate API patch and apply to your Software source tree with " ? ??
-
Rebonjour, Pour décompresser un fichier, j'ai utilisé la commande : tar xzf filename-1.0-api-2.gz puis tar xz filename-1.0-api-2.gz puis tar xpzf filename-1.0-api-2.gz mais ca ne marche pas. Le fichier s'appelle filename-1.0-api-2.gz (vous l'aurez deviné), et il ne veut pas se décompresser. D'où mes questions : Est ce un fichier décompressable, comment on fait pour le décompresser, et le mettre dans les dossiers où il doit aller ? Merci.
-
Mais tout le monde est d'accord avec les grands principes qui régissent la bonne pensée "profectorale", reste à trouver un employeur qui soit prèt à payer ce prix, ce n'est pas plus compliqué que cela. Tout le monde aimerait être bien payé, et honnetement, je ne connais pas un patron qui n'aimerait pas payer gracieusement ses employés (bon.. sauf certains..). Le problème est que la vie n'est pas si simple que ca, et que l'on ne fait pas ce que l'on veut, et qu'il y a des choix économiques à faire, et que tu ferais les mêmes si tu étais à leur place !
-
Question simple : L'arborescence est : /home/domaine1/ je voudrais que tout le contenu passe dans le répertoire /home/domaine2/ Question subsidiaire : Que se passe t-il si le répertoire domaine2 n'existe pas ? Merci.
-
Dans mes stats, j'ai un certain nombre de lignes qui font référence à jetxx.jeteye.com Ce nom donne une url : http://www.jeteye.com/ qui ne donne qu'un formulaire 'login/pass', ainsi qu'une page 'robots.txt' (ce qui est déjà une bonne chose). Apparemment, ce serait une version 'alpha'. Auriez vous des infos sur ce nouveau 'robot/site', décidé à crawler l'ensemble de mon site ?
-
Je pense, au contraire, que de plus en plus le web va passer du 'tout gratuit' au 'payant mais peu cher'. Là, c'est une application de qualité, qui mérite que ses créateurs soient rémunérés. Et autrement qu'avec l'icone "Ca vous a plus ? Versez nous un don !". D'ailleurs, on voit cette icone de plus en plus, alors qu'elle n'existait (pratiquement) pas, il y a encore quelques années. Le tout gratuit a un inconvénient. Les créateurs n'y trouvent pas leur compte. Et au bout d'un certain temps, ca lasse d'avoir toujours affaire à des gens qui 'ralent', sans pour autant bouger le moindre petit doigt, sans pour autant reconnaitre le travail réalisé. Avec le payant, vous avez affaire à des gens qui 'ralent', mais vous savez pourquoi... A.
-
(Dan : Très révélateur, en effet ) Pour ton problème, il peut aussi s'agir d'un autre 'phénomène' : D'un coté, le webmaster laisse un formulaire type 'rechercher', avec possibilité de poster 'ce que l'on veut'. D'un autre coté, ce webmaster fait une liste de liens du style : Dernières recherches effectuées. Quand tu arrives sur le site, tu n'as plus accès aux recherches effectuées lorsque le robot est passé, mais tu as, par exemple, un formulaire, voire meme une page 'blanche'. Ce genre de formulaire est aussi très 'spammé', dans la mesure où les internautes ayant compris le problème ne se genent pas pour 'spammer' le moteur de recherche. Un autre phénomène est celui du forum avec modération des liens. Un internaute poste un message, avec un lien vers ton site. Une personne clique sur ton lien, juste avant que celui ci soit 'retiré' de la page du forum. Lorsque tu arrives sur la page 'forum.php?action=voir_dernier_post', tu n'as plus accès aux derniers posts, ou plus exactement, les derniers posts ne coincident pas avec ton 'referer'. L'admin ne sait pas alors 'qui' aurait désactivé ton lien, et il est 'incapable' de retrouver ce lien. (quoique..). Pour cette histoire de forums, on peut aussi citer le cas des parties d'un site qui sont "cachées" à l'internaute, mais que les membres peuvent voir. Ainsi, un lien sur une newsletter payante peut suffire pour t'interdire l'accès à ce lien. A noter, pour finir, que c'est la rancon du succès... Si tu vois des referers pour lesquels tu n'as pas accès, c'est que l'on parle de toi A.
-
C'est un ambitieux projet, mais... Qu'entends tu par : Si c'est ce que je pense, cela existe déjà. Ca s'appelle Linux. Ca permet de regrouper toutes les applications libres très innovantes, en laissant le choix à l'internaute d'installer telle ou telle application.
-
Donnes nous l'ensemble des champs de la table soireeclub.