Aller au contenu

jcaron

Membre+
  • Compteur de contenus

    998
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par jcaron

  1. jcaron

    Replace KO

    Il va falloir apprendre à lire la doc si tu veux avancer... Premier exemple de la doc de mysql_query: http://uk3.php.net/mysql_query Jacques.
  2. jcaron

    Replace KO

    1. Essaie ta requête avec phpmyadmin ou en ligne de commande mysql directement pour voir ce que ça donne (et le message d'erreur éventuel). 2. Si là ça marche, il faut récupérer les messages d'erreur lors de l'exécution en php pour savoir ce qui se passe. Parmi les possibilités: - faute de frappe dans le nom de la table, du champ, du critère... - absence de droits pour modifier la table - connexion pas établie ... Jacques.
  3. jcaron

    Replace KO

    Tu nous fais du beau mélange là. Comme je le disais précédemment, c'est aussi simple que ça: mysql_query("UPDATE ".$table." SET transmis=1 WHERE destinataire='".$repertoire."'",$connexion); Oublie REPLACE pour le moment... Jacques.
  4. jcaron

    Replace KO

    Pour modifier des données dans une table je te conseille plutôt "UPDATE table SET nomcolonne=nouvellevaleur WHERE conditions". Ca a l'avantage d'être standard et probablement plus facile à comprendre. Si tu veux absolument utiliser REPLACE, lis bien la doc: http://dev.mysql.com/doc/refman/5.0/en/replace.html tu y verras qu'il faut que ta table ait une clef primaire (ou unique), et qu'il faut évidemment préciser la valeur de la clef en question dans celles que tu passes (et tu ne peux donc modifier qu'une seule ligne à la fois). EDIT: précisions qu'une "sélection" faite avec SELECT ne survit pas à ce SELECT... Jacques.
  5. Regarde du côté de imap_fetchstructure et imap_fetchbody. Vois en particulier la premier commentaire sur http://uk2.php.net/manual/en/function.imap-fetchbody.php Jacques.
  6. C'est en essayant qu'on apprend :-) Mais bon... Solution pure SQL: SELECT CONCAT('LEB01',LPAD(SUBSTR(MAX(num_commande),6)+1,4,'0')) FROM matable WHERE num_commande LIKE 'LEB01%' Jacques.
  7. Plein de choses bizarres dans tout ça... 1. SELECT MAX(...) FROM ... LIMIT 1 c'est un peu redondant. Soit tu enlèves le LIMIT soit tu fais un SELECT num_commande ... ORDER BY num_commande DESC LIMIT 1. 2. tu essaies d'ajouter 1 à une chaîne. Ca donne évidemment un résultat bizarre, la chaîne est considérée comme valant 0, donc le résultat est toujours 1. Il faut que tu rajoutes un petit substr là-dedans 3. sprintf("%04s",nombre) c'est pas très net. Tu veux probablement dire sprintf("%04d",nombre). Et tu dois bien avoir 4 chiffres pour cette partie-là? La valeur "par défaut" que tu as juste avant n'en utilise que 3... Jacques.
  8. C'est bien beau de dire à ton serveur web ce qu'il faut faire si on arrive avec toto.com, mais il faudrait que toto.com arrive sur le serveur. Bref, il faut changer les entrées DNS correspondantes pour les faire pointer sur le serveur web plutôt que sur le webmail ou autre chose. Et si jamais la config DNS est bonne, il faut aussi dire à Apache comment gérer ces domaines: il y a un virtual host par domaine, il faut soit créer un nouveau virtual host pour ces autres domaines, soit rajouter un "ServerAlias" pour qu'il sache que toto.com = www.toto.com. Jacques.
  9. Et surtout, Redirect permanent / http://nouveausite/ signifie que chaque page va être renvoyée vers son équivalent (/toto vers http://nouveausite/toto, etc.). Si tu veux mapper tout le site vers une seule page, il faut faire un RedirectMatch permanent .* http://nouveausite/ Et évidemment il faut le mettre après tous les autres, puisqu'il va prendre tout ce qu'on lui donne. Jacques.
  10. Si c'est un mutualisé ça pourrait même être un autre site pas à toi qui a entraîné les autres avec lui. Oeufs, panier, tout ça. Jacques.
  11. ORDER BY id DESC LIMIT 1 a priori. Ceci dit je ne sais pas exactement dans quel contexte tu utilises ça, mais je pense qu'il serait nettement mieux que tu saches exactement quel enregistrement tu veux. Sinon s'il y a deux personnes qui passent par là en même temps, il y en a un qui va recevoir un mail deux fois et l'autre pas du tout. Jacques.
  12. Il utilise .= qui fait une concaténation et pas = qui fait une assignation, donc là n'est pas le problème. Les noms des colonnes sont-ils corrects? La requête SQL s'éxecute bien? Fais un petit coup de print_r ou de var_dump sur $donnees pour voir ce qu'il y a dedans pour commencer... NB: évidemment comme ça, il va prendre une ligne au hasard dans la table SQL, hein... Jacques.
  13. Ce sont généralement des botnets à la recherche de vulnérabilités pour infecter d'autres machines et agrandir ainsi le botnet... Le truc important c'est plutôt d'être bien à jour sur tous les softs installés, en particulier tous les trucs en PHP qui ont tendance à être plein de trous très faciles à exploiter. Tu peux aussi utiliser les services d'un scanner de sécurité (McAfee Secure, Qualys, Comodo PCI...) pour t'assurer qu'il n'y a pas de "trou" exploitable. Jacques.
  14. :-) Ceci dit, je n'ai fait que lire la doc :-) Jacques.
  15. Ajoute ça après le imagecreatetruecolor (et donc avant de copier tes lettres dessus): imagesavealpha($image,true); $transp = imagecolorallocatealpha($image, 0, 0, 0, 127); imagefill($image,0,0,$transp); Jacques.
  16. 1. C'est quoi l'erreur? Ca pourrait aider... 2. Le "imageformpng" au lieu de "imagecreatefrompng" ça ne doit pas aider... Jacques.
  17. A la place de imagecreate... Jacques.
  18. Il faut que tu crées l'image avec imagecreatetruecolor, et hop! Note que les imagealphablending et imagesavealpha sont inutiles. Par contre c'est quoi le but du jeu avec l'orange? Si tu veux avoir tes lettres sur fond orange il va falloir faire un petit coup de imagefilledrectangle (par exemple) avant de copier les lettres dessus. Jacques.
  19. Dans un cas les items sont au deuxième niveau du XML et dans l'autre au troisième niveau (dans un "channel")? C'est probablement lié au fait qu'il s'agit de RSS 1.0 dans le premier cas et de RSS 2.0 dans le deuxième, mais je n'ai jamais regardé ça, donc ce n'est qu'une supposition... Jacques.
  20. Pareil, pas très bien compris la question... Oui, je ne vois pas de raison que le lien ne soit pas pris en compte (à moins que le CSS indique qu'il est "hidden" ou autre chose du genre), mais c'est un lien sortant, donc ça apporte quelque chose au site pointé, pas au site qui contient ce lien... Jacques.
  21. Tu peux toujours menacer le détenter actuel du domaine d'une procédure en UDRP. A priori les 3 critères sont respectés: il y a confusion possible, il ne fait rien du domaine (puisqu'il le vend), et l'enregistrement a été effectué de mauvaise foi (le fait qu'il l'ait acheté pour le revendre semble l'indiquer). S'il n'obtempère pas (ou à un prix trop élevé) tu peux lancer la procédure en UDRP, ça te coûtera >1000 euros mais probablement moins que 5000. Jacques.
  22. jcaron

    Cryptages

    Ben le premier est du crypt à la sauce MD5,le deuxième du crypt à la sauce DES. Sur un système un peu récent (qui a moins de 10 ans, quoi) les deux passeront aussi bien l'un que l'autre, la fonction crypt de libc (la libraire système) supportant les deux. Si tu veux vraiment générer un hash à la sauce DES, appelle crypt avec comme deuxième paramètre deux lettres choisies au hasard. Note que suivant la valeur que tu passes en deuxième paramètre (ou si tu ne passes pas de deuxième paramètre), pour une même valeur du mot de passe en clair, tu obtiendras des valeurs chiffrées différentes, donc ne te dis pas que juste parce que crypt("ton_mot_de_passe") ne donne pas le même résultat ça ne marche pas. Essaie, tu verras bien... Jacques.
  23. Ah indeed, j'avais été un peu trop vite... Et évidemment ça supprime tout un tas de solutions, mais ça enlève en même temps tout un tas de problèmes. Moi je dirais donc: - étape 1: bloquer les accès avec un .htaccess à la racine - étape 2: copier tout le contenu, y compris dump/restore de la base mysql - étape 3: faire une redirection de l'ancien site vers le nouveau avec un .htaccess à la racine encore Je propose évidemment une étape 0: faire la copie du site une fois à l'avance pour vérifier qu'il n'y a pas de problème et qu'on n'oublie rien. A l'étape 2 on écrasera tout ça, mais ça évite de bloquer l'accès au site pour rien si le transfert des données prend plus longtemps que prévu parce que rien ne marche :-) Jacques.
  24. jcaron

    Cryptages

    Le résultat d'un hash md5, c'est une chaîne de 128 bits (16 octets). Comme ce n'est pas toujours facile à manipuler, en général on encode, soit en hexa (32 caractères), soit en base64 (24 caractères), et probablement quelques autres. Quoi qu'il arrive, ça ne peut pas faire moins de 16 caractères, donc le premier résultat n'est clairement pas un hash md5. Logiquement, et vu l'utilisation d'une "clef" de 2 caractères et la limite à 8 caractères pour le mot de passe, il doit s'agit du résultat de la fonction crypt qui est à l'origine un hash DES, mais peut suivant les implémentations (et la "clef" passée utiliser d'autres méthodes). Le principe de crypt est que pour obtenir la version chiffrée, il faut fournir la version "en clair" et la clef, cette clef étant au début de la version chiffrée stockée. Avec DES ce sont les deux premiers caractères de la version chiffrée, avec MD5 ce sera $1$clef$hash, etc. Le système est prévu pour que tu puisses juste faire un truc du genre crypt($passe_clair,$passe_chiffré) == $passe_chiffré pour savoir si le passe_clair est bon. Qu'est-ce-que tu cherches à faire exactement? Ajouter des mots de passe à un fichier .htpasswd toi-même? Il te suffit de faire un crypt($passe_clair), il va te générer une version chiffrée avec une clef qu'il va choisir tout seul. Jacques.
×
×
  • Créer...