Aller au contenu

jcaron

Membre+
  • Compteur de contenus

    998
  • Inscrit(e) le

  • Dernière visite

Messages postés par jcaron

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. le fait de donner une nouvelle valeur à $message (4 fois de suite) ne lui donne pas toutes les valeurs à la suite, mais uniquement la dernière ;)

    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.

  9. Avez-vous une idée de à quoi servent ces robots sans user_agent qui hittent périodiquement les pages des sites ? (c'est récurrent => environ 10 sites sur 10 serveurs différents, non situés au même endroit etc...)

    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.

  10. 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.

  11. 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.

    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.

  12. 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.

    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...