Aller au contenu

TheRec

Hubmaster
  • Compteur de contenus

    1 777
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par TheRec

  1. En fait après avoir regardé ta règle ne semble pas faire ce que tu souhaites RewriteRule . /index.php "." ne correspond qu'à "un caractère"... il faut l'associer à un quantificateur (+, * ou ?) RewriteRule .* /index.php Serait plus logique Ensuite pour en revenir à ton problème... ce que je verrais éventuellement c'est que le lien symbolique n'est pas jugé comme un fichier ou un répertoire lors de la réécriture. Pour ce point je t'avoue que je ne suis pas sîur car je n'ai jamais fait l'expérience d'un tel problème, mais peut-être que la directive suivante dans ton .htaccess pourrait résoudre le problème : Options +FollowSymLinks Sinon il y a encore une possibilité... dans le même registre, en désactivant la directive MultiViews tu évites que Apache cherche lui même un fichier à présenter lorsqu'il ne trouve pas directement la ressource demandée : Options -MultiViews J'ai regardé les source de WordPress, ne l'ayant pas utilisé récemment, et je ne vois aucun fichier .htaccess, est-toi qui a écrit ces règles ou est-ce un plugin de WP qui permet de tirer partit de la réécriture ?
  2. En étudiant tes règles et en les décrivant : RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un fichier existant RewriteCond %{REQUEST_FILENAME} !-f <-- Si le nom de la ressource demandée n'est pas un dossier existant Si ces condifitions sont vérifiée, RewriteRule . /index.php [L] <-- Réécrire la requête vers le fichier index.php. Donc si effectivement ton dossier "awstats" existe et qu'il est accessible tu ne devrait pas avoir ce problème. Si tu es "ramené" (si c'est une redirection, l'adresse dans la barre change et donc ce n'est en tous cas pas ces lignes vu qu'elles font une réécriture locale). Tu peux tester rapidement ceci en commentant avec un "#" au début de chacune de ces 3 lignes et en essayer d'accéder au dossier "awstats"...si la redirection s'effectue toujours c'est que ce ne sont pas ces lignes...si tu as d'autres lignes dans ce fichier donne-les nous...sinon il faut regarder un niveau au dessus dans ton arborescence et ainsi de suite jusqu'à arriver au fichier de configuration principal de Apache (souvent nommé httpd.conf). Au passage, la ligne donnée par Jeanluc était à placer avant les 3 lignes déjà présentes dans ton fichier bien entendu
  3. Bonsoir, explode fonctionnera mais il faudra tout de même enlever les parenthèses après coup. Une expression régulière peut faire le tout en une seule fois. $coords = '(0.5255564, 4.54984798446)'; preg_match('/\((.+),\s(.+)\)/i',$coords,$matches); echo 'lat: '.$matches[1].' lon: '.$matches[2]; Bonne continuation.
  4. Cela va dépendre uniquement de la tolérance de OVH par rapport à celle de Celonet... je n'ai jamais pris d'hébergement mutualisé chez OVH mais je ne me mouille pas trop en te disant qu'à ma connaissance tous les hébergeurs qui proposent des hébergements mutualisés ont à peu près la même tolérance face à la charge, dès que d'autres clients en pâtissent, ils suspendent les comptes qui en sont la cause (les CGV sont faites dans cette optique). Si tu veux être à l'abri de cela, soit tu prends un dédié et la c'est ton problème si tes scripts ralentissent le temps de traitement de ton serveur, soit tu optimises tes scripts afin qu'ils utilisent moins de ressources...si cette dernière option est déjà réalisée il ne t'en reste plus qu'une
  5. Ma réponse est oui, étant donnée que tes scripts semblent consommer beaucoup de temps processeur. Ce facteur, quel que soit ton hébergement de type mutualisé, tu le partageras avec d'autres clients. Du moins c'est la raison qu'indique Celonet dans son courriel de suspension. Si tu veux tenter ta chance avec OVH en mutualisé, pourquoi pas... tu va sûrement être confronté tôt ou tard à ce problème et tu pourras migrer ton site d'un mutualisé vers un dédié
  6. Bonjour, Comme Arlette l'a dit, sur un hébergement mutualisé vous serez exposés au même problème, quel que soit votre hébergeur. Pour citer les conditions générales d'OVH : Source: Les conditions générales d'hébergement de OVHJe doute que vous trouviez un seul fournisseur d'hébergements mutualisés qui n'agisse pas ainsi étant donnée que c'est le principe du mutualisé. Donc comme Arlette le suggère, orientez-vous vers la location d'un serveur dédié. P.S. : Toutes ressemblances entre les CGV de OVH et Celonet ne sont que fortuites apparemment
  7. Avec une arborescence par adjacence, sans utiliser la récursivité (ce qui implique en l'occurrence plus d'une requête) ce n'est pas possible. À moins de stocker une information supplémentaire pour la page représentant l'arborsence (c'est ce qu'on appelle un chemin matérialisé, du genre "1.1.3", l'ordre des ID correspondant à la hiérarchie). Par contre avec une arborescence avec un parcours prédéfini (par exemple Nested Sets), en une seule requête tu peux obtenir cette information. J'avais écrit un article au sujet des Nested Sets (il me semble l'avoir déjà cité ici). L'avantage de cette solution et la rapidité d'accès, par contre les modifications de la structure prennent plus de temps (plus la structure est grande, car il faut mettre é jour tous les noeuds en aval).
  8. Mouais je ne t'ai pas trop aidé, mais de rien quand même... au moins j'aurais appris que les événements peuvent être déclenchés par un simple appel à la fonction portant le nom de ce même événement
  9. Pour résumer, tu veux appeler une fonction avec un paramètre que tu ne connais pas et que selon ce que tu dis tu ne peux pas connaître sans refaire une requête... À un moment il faut savoir comment est déclenché ton appel à cette fonction (ce qui fait que tu veux "émuler" le clic sur tel lien en particulier), et donc quel événement (autre que onclick) va faire appel à cette fonction. Ainsi le contexte sera défini et on pourra voir comment obtenir les bons paramètres. Mais pour le moment on ne peut pas demande à Javascript de deviner un paramètre P.S. : Si tu as un exemple pratique à nous montrer peut-être que d'autres participeront à notre discussion
  10. Ce qui reste à déterminer c'est "quand" tu veux exécuter cette fonction, parce que rien ne t'empêche de l'appeler n'importe quand comme ceci : partieJoueurOut(129, document.getElementById('lien1')); Les deux paramètres sont arbitraires, vu que l'appel c'est toi qui le génère tu décides ce que tu en fais. Bien entendu il faut que tes liens aient chacun un identifiant (par rapport à cet exemple: <a href="#" id="lien1" ...></a>) , sinon il est plus difficile de récupérer l'élément.
  11. Bonjour, Pour les cas que tu as indiqué voici la règle que j'aurais écrite : RewriteRule (.+)-(\s|n|s)?[0-9]+\.html$ /page.php?aaaa=$1 [L] Si j'ai bien compris ta demande, tu souhaites récupérer "aaa" dans chacune des URL que tu as proposées, cette règle fait ceci. Sinon, n'hésite pas à préciser
  12. Bonjour, Si la procédure d'installation de tes pilotes s'est déroulée avec succès il y a de fortes chances que tu puisse tout simplement supprimer ces fichiers. Dans tous les cas je n'ai pas souvenir de pilotes de carte graphique utilisant un chemin différent de celui défini par défaut sous Windows pour les pilotes (C:\WINDOWS\system32 généralement). Donc ce que tu as fait c'est juste décompresser (sur ton bureau) l'archive contenant les fichiers d'installation du pilote, ensuite ils ont été copié lors de la procédure d'installation. Si tu veux vraiment être sûr de ce que j'avance, tu peux nous indiquer où tu as téléchargé ces pilotes et sinon donne-nous le modèle de ta carte graphique.
  13. Bonjour, En allant au plus simple, si tu as une fonction définie (avec un nom) qui est exécuté à l'événement onclick, rien ne t'empêche de l'appeler à n'importe quel moment de ton script en utilisant son nom suivi de ses paramètres entre parenthèses ou simplement une paire de parenthèses vide si aucun paramètre n'est utilisé. Peut-être ai-je mal compris ton problème, n'hésite pas à donner plus de précisions ou un morceau de code (même incomplet).
  14. Bonsoir, Bienvenue ! Tu trouveras certainement ton bonheur sur le Hub, les sujets qu tu souhaite abordé sont traités très sérieusement ici, on t'as donc bien conseillé
  15. Bonsoir, Difficile de te répondre vu qu'on ne sait pas ce qui ne va pas... "ça marche pas" n'est pas très descriptif et si ça marchait, à priori tu n'aurais pas pris la peine d'écrire un message. Donc, as tu un message d'erreur généré par PHP (vu la section du forum ou tu postes) ? As-tu une erreur MySQL (tu peux l'afficher en utilisant la fonction mysql_error juste après avoir fait tes requêtes, comme tu l'as fait) ? Si ton problème est d'ordre logique et que tu ne sais pas faire ce que tu souhaite dis-le plus clairement
  16. Joyeux anniversaire le Hub (c'est pas du chat des Maîtres des lieux donc je parle;))
  17. Pour que cela fonctionne il faut encore que les wrapper soient activés.
  18. ltrim, rtrim ou trim ne sont pas faites pour supprimer un mot ou une suite de caractères, elles prennent une liste de caractères (ou un intervalle) comme paramètre optionnel et la traitent caractère par caractère et lorsqu'un caractère correspond à ce qui doit être supprimé elles suppriment tout ce qui vient respectivement avant, après ou les deux... Il y a un bon exemple de ce fonctionnement dans le manuel PHP. Aucun "mystère" concernant le 4, substr compte le nombre de caractères à "sauter" et non sa position par rapport au caractère 0.
  19. Bonsoir, À ma connaissance aucun robot des principaux moteurs de recherches n'interprète le JavaScript, donc tout ce qui est généré par ce langage et/ou tout ce qui est modifié ne le sera pas lorsque pour les robots lorsqu'ils effectueront l'indexation. Ceci pour plusieurs bonnes raisons, il serait très facile de faire perdre du temps aux robots en utilisant des scripts très longs ou sans fin (il faudrait un timeout également pour cela), cela donnerait encore plus de latitude aux pollueur d'index, etc. Bref je doute que cela soit un jour implémenté, mais qui sait précisément ce que l'avenir nous réserve;) Le texte ne devrait pas être ton souci principal dans ce cas, les liens généré par JavaScript ne seront pas suivis non plus. Mais si tu cherches une explication officielle pour le texte, tu trouveras des pistes sur "Texte et liens cachés "
  20. Ce n'était qu'un exemple, tu dois limiter toutes les requêtes qui sont utilisées pour trouver la liste des enregistrements à afficher... celle que j'ai pris en exemple était prévue pour récupérer les enregistrement d'une certaine catégorie (WHERE cat='$cat'). Les requêtes en-dessous doivent être également limitées. Et pour chacun le calcul de $totalnumrows doit être effectué (car une requête pour récupérer uniquement les enregistrement d'une catégorie spécifique ne donnera pas le même nombre de résultats que pour une requête qui ne prend pas en compte la catégorie, à moins que tous les enregistrement soient dans le même catégorie bien sûr). Ensuite la génération de la variable $limitclause il y avait une petit coquille, voici le bon code, mais tu ne l'avais pas placé au bon endroit de toute façon : $perpage = 10; // Nombre d'enregistrement par page if(isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] > 0 && $_GET['page'] <= $numpages) { $page = intval($_GET['page']); } else { $page = 1; } $offset = ($page - 1) * $perpage; // On calcule la position du premier élément à afficher $limitclause = ' LIMIT '.$offset.', '.$perpage; // Cela sera utilisé pour limiter les requêtes afin d'effectuer la pagination ($limit n'existe pas, $perpage était la bonne variable à utiliser, c'est une erreur de ma part) Ceci est à placer AVANT chaque requête qui doit être limitée, parce que tu as besoin de la variable $limitclause pour chacune d'elle également parce que dans la condition qui définit $page tu vérifies que la page demandé par l'utilisateur soit plus petit que $numpages et comme $numpages dépend de $totalnumrows (qui elle-même dépend de la requête qui est exécutée) tu dois le faire à chaque fois. Je sais que cela parait compliqué mais c'est ainsi que tu peux t'assurer que la page demandé existe et connaître le nombre exact de pages. Et concernant la boucle infinie qui génère ces "50 000 pages" elle est due au fait que j'ai oublié un signe "$" devant le i dans la boucle for, le bon code est : for($i=1; $i<=$numpages; $i++) { Encore désolé pour ces erreurs de ma part, mais je n'ai pas testé complètement le code et en plus une erreur c'est glissée par ma faut en supprimant ce "$" par mégarde
  21. Poste à nouveau l'entier de ton code modifié s'il te plaît et je te dirais où se situe le problème.
  22. Amex signifie American Express, c'est une carte de crédit (et aussi des chèques de voyage) très en vogue aux États-Unis et également utilisé à travers le monde Et pour Dudu je le laisserais expliquer, et pour sûr il commencera par quelque chose "Dudu n'aime pas expliquer les private jokes, car Dudu aime à être le seul à les comprendre"
  23. Pas de problème, il ne faut pas désespérer c'est pas toujours facile au début, c'est 2-3 "trucs" pour identifier les problèmes dans un programme Donc tu peux en conclure que : 1. La ligne affichant l'erreur MySQL ne renvoie pas d'erreur, donc ta requête c'est bien exécutée. 2. Le calcul de $numpages échoue parce que $perpage est égal à 0 au moment où le calcul est effectué. Et comme en mathématiques "simples" il n'est pas possible d'effectuer une division par 0 (il faudrait utiliser l'ensemble des nombres complexes, mais là n'est pas le problème). Donc pour rédier à ce 0 il faut que tu trouve où tu as défini cette variable $perpage qui correspond au nombre d'enregistrement par page que tu souhaite afficher. Et je m'aperçoit que c'est moi qui t'ai induit en erreur, la ligne : $perpage = 10; // Nombre d'enregistrement par page devrait être placé avant le premier morceau de code que je t'ai donné (celui où $totalnumrows est calculé). Ceci parce qu'il faut la définir avant le calcul de $numpages. Car lorsqu'une variable n'est pas définie dans un script, elle a la valeur null et lorsque tu l'utilise dans un contexte d'entier cela correspond à 0. D'ailleurs, si toutes les erreurs et avertissements sont affichés (ce n'est pas le comportement par défaut), PHP renvoie un avertissement indiquant que la variable n'est pas définie.
  24. Lorsque tu es confronté à une telle erreur c'est parce que la fonction que tu as essayé d'utiliser pour traiter ta ressource MySQL (retournée par mysql_query en l'occurrence) n'a pas pu fonctionner. Ceci parce que comme le dit si bien l'erreur "supplied argument is not a valid MySQL result resource" (l'argument fourni n'est pas une ressource valide de résultats de MySQL). Donc ton problème vient de la requête SQL et pour connaître l'erreur qui a été générée par ton serveur MySQL, tu dois faire appel à la fonction mysql_error, comme ceci par exemple : echo mysql_errno().": ".mysql_error(); Ceci juste après avoir exécuté ta requête avec mysql_query Une fois l'erreur affichée tu pourras reformuler ta requête correctement. Un autre moyen et d'afficher ta requête une fois générée (après ta boucle) avec un simple echo et t'assurer que la syntaxe et la cohérence de ta requête soient correctes.
×
×
  • Créer...