Aller au contenu

Aenoa

Hubmaster
  • Compteur de contenus

    769
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Aenoa

  1. Aenoa

    Souci avec SMI

    La commande est exécutée sous le nom d'utilisateur Apache (www-data par défaut sous debian). A-t-il les droits d'exécution etc? Le(s) fichier(s) devraient avoir au moins --x en permission (noread nowrite execute) et si le script créer/modifie/lis des fichiers, www-data doit également avoir les permissions pour (ci-inclut, les logs générés par shoutcast). Il se peut qu'il soit également exécuté en tant que PHP si tu as spécifié dans la config un utilisateur pour celui-ci. Si cela fonctionne sous Wheezy et pas sur versions supérieures, vérifie que tout soit identique niveau config serveur+moteur php+accès répertoire sous version plus récente. Autre solution: PHP tourne sur ton serveur web en SAFE MODE, et comme la doc l'indique; Note: This function is disabled when PHP is running in safe mode.
  2. Concernant le 0 précédent pour les nombres <10, la concatenation peut etre une solution oui. SELECT CONCAT(ROUND(RAND() * 9),ROUND(RAND() * 9)); Tu peux aussi utiliser LPAD. SELECT LPAD( ROUND(RAND() * 99), 2, '0'); Pour le nombre à 18 chiffres, même popotte: SELECT ROUND(RAND() * 999999999999999999); et avec des leading 0, SELECT LPAD(ROUND(RAND() * 999999999999999999), 18, '0'); Bonne journée!
  3. Bonjour, SELECT ROUND(RAND() * 99); tout simplement :-) Bonne journée!
  4. Bonjour, Avec un bon retard comparé a la date de ce post, mais pour moi tout fonctionne bien. La vidéo est jouée.
  5. Bienvenue sur le hub lulu N'hésite pas à poser des questions, on est là pour aider à résoudre les problèmes si l'on connait la solution Bonne journée!
  6. Bonjour, Si vous avez toujours accès au ROOT et uniquement perdu l'accès à 'sheriffamay' il vous suffit de vous connecter en ROOT et d'entrer la requête suivante: -- mysql 5.7.6 et supérieur ALTER USER 'sheriffamay'@'adresse_distante_ou_localhost' IDENTIFIED BY 'nouveau_mot_de_passe'; -- mysql 5.7.5 et inférieur SET PASSWORD FOR 'sheriffamay'@'adresse_distante_ou_localhost' = PASSWORD('nouveau_mot_de_passe'); voici la marche a suivre pour réinitialiser son mot de passe ROOT sur une base de donnée MySQL, suivant la documentation officielle: - connectez vous en SSH / RDP a votre serveur exécutant MySQL - stoppez le serveur MySQL (kill -9 sur le process MySQLd ou en coupant le service) - créez un fichier contenant la requête ci-dessus en l'adaptant à vos besoins, et sauvegardez le dans un répertoire de votre choix (dans cet exemple, /home/aenoa/reset-password-mysql) - exécutez MySQL avec un fichier d'initialisation que vous venez de créer, ici: mysqld --init-file=/home/aenoa/reset-password-mysql & - une fois cela fait, supprimez le fichier que vous avez créé (/home/aenoa/reset-password-mysql dans mon cas) - si la mise à jour échoue, utilisez dans le fichier créé une requête plus générique, comme celle-ci: UPDATE mysql.user SET authentication_string = PASSWORD('nouveau_mot_de_passe'), password_expired = 'N' WHERE User = 'sheriffamay' AND Host = 'localhost'; FLUSH PRIVILEGES; (dans le cas où l'utilisateur sheriffamay se connecte sur l'adresse 127.0.0.1 ou localhost, adaptez encore une fois selon vos besoins). Ces instructions sont faites pour linux; de manière générale, vous devrez couper le serveur mysql, le relancer avec le paramètre --skip-grant-tables et ensuite vous y connecter pour exécuter la commande suivante: FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; -- pour MySQL 5.7.6 et supérieur -- ou SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); -- pour MySQL 5.7.5 et inférieur -- ou, si cela ne fonctionne pas, UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass') WHERE User = 'root' AND Host = 'localhost'; -- pour finir, exécuter ceci FLUSH PRIVILEGES; (a adapter selon vos besoins) Bonne journée! plus d'informations et sources: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords
  7. Bonjour, Un widget faisant? Uniquement des sondages? quel genre d'intégration? iframe? via injection JS ?
  8. Si vous pouvez changer la requête SQL, il suffit de modifier la colonne contenant la dernière modification avec NOW() (dépendant du type de colonne cela peut varier) Si vous ne pouvez pas, je ne vois que le Trigger pour changer cela
  9. Aenoa

    Performance requete...

    Bonjour, la première effectue un SELECT * (toutes les colonnes) (que je déconseille, il vaut mieux spécifier les colonnes requises uniquement) et un IN (), qui doit donc parcourir toutes les données se trouvant dans la requête imbriquée, pour ensuite filtrer la requête primaire avec les données de l'imbriquée, et ce traitement prends du temps. La seconde ne possède pas de traitement, juste des valeurs brutes, ce qui réduit également le temps de traitement. Il doit simplement comparer une valeur avec une autre valeur, et non pas faire une récupération de valeur pour chaque enregistrement. Mon premier conseil serait avant-tout de changer votre SELECT * par le nom des colonnes requises, et si possible de faire une entrée de valeurs en brut. Ensuite, êtes-vous sûr que la colonne `villes`.`toto` contient une valeur de même type et identique à un enregistrement ? Aucun transtypage ne doit être fait par le serveur SQL ? Dans votre exemple, les données dans le IN devraient être toutes 38000 si l'on respecte la logique des noms, étant donné que votre requête récupère toutes les `toto` ayant comme `code_postal`= 38000, pour ensuite comparer la valeur de `toto` à `table1`.`cp` qui, d'après son nom, est aussi un code postal ? Cordialement,
  10. Bonjour, Tout d'abord, je ne peut que te suggérer de laisser tomber mysql_*. Ces méthodes sont déjà dépréciées en 5.X et totalement désactivées en 7.0, ce qui causera une armée de FATAL ERROR: MYSQL_FETCH_ARRAY IS NOT A FUNCTION et autres joyeusetés si ton projet venait à tourner dans un environnement 7.0. Ensuite, en effet, tu as la possibilité de re-sélectionner une colonne d'une table sous un autre nom grâce au mot clé AS. Comme indiqué par BlackPage, qui te propose une solution. Pour résumer: * Emploie une requête SQL similaire à ceci: SELECT test1.*, test2.*, test2.name AS t2name FROM test1 INNER JOIN test2 ON test2.test1_id = test1.id; * Le résultat sera semblable à celui-ci (utilisant des dummy-data) MariaDB [db]> select test1.*, test2.*, test2.name as t2name FROM test1 INNER JOIN test2 ON test2.test1_id = test1.id; +----+---------+--------+----+---------+----------+----------+---------+ | id | name | potato | id | name | pccotato | test1_id | t2name | +----+---------+--------+----+---------+----------+----------+---------+ | 3 | Test1-3 | C | 1 | Test2-1 | D | 3 | Test2-1 | | 2 | Test1-2 | B | 2 | Test2-2 | E | 2 | Test2-2 | | 1 | Test1-1 | A | 3 | Test2-3 | F | 1 | Test2-3 | +----+---------+--------+----+---------+----------+----------+---------+ 3 rows in set (0.01 sec) * N'utilise plus mysql_ en PHP. Privilégie la librairie PDO qui elle est supportée, et te permet de faire l'échappement des données bien plus facilement, en orienté objet. http://php.net/manual/en/ref.pdo-mysql.php * Utilise des préfixes ou suffixes dans tes colonnes, pour chaque table. Par exemple: MariaDB [db]> describe users; +--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | usr_id | int(11) | YES | | NULL | | | usr_name | varchar(30) | YES | | NULL | | | usr_email | varchar(240) | YES | | NULL | | | usr_password | varchar(150) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) MariaDB [db]> describe vehicles; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | veh_id | int(11) | YES | | NULL | | | veh_color | varchar(40) | YES | | NULL | | | veh_year | int(4) | YES | | NULL | | | veh_km | int(11) | YES | | NULL | | | veh_usr | int(11) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec) Cela te permet, non seulement de toujours savoir à quelle table la colonne corresponds, mais cela évite tout doublon entre deux tables, le préfixe (ou suffixe) étant unique à une table. Dans mon exemple, j'utilise un préfixe, mais les gens ont plutôt tendance à utiliser un suffixe, tel que IDUSR, NAMEUSR, EMAILUSR, PASSWORDUSR, IDVEH, COLORVEH, YEARVEH, etc. Bonne journée!
  11. My bad, c'est 2000 https://support.google.com/a/answer/166852?hl=en
  12. Utilisant G Suite (nouveau nom pour G-apps) le quota d'email journalier est uniformisé avec gmail classique désormais, c'est 200 mails par jour max
  13. Bonsoir, Dans tous les projets PHP, il y a des mots de passe écrit en dur: Base de données, serveurs SMTP, clés secrètes d'API, et j'en passe. Ton code source, a moins que tu ne tripatouille fortement ton serveur web, ne sera pas accessible par n'importe qui le visitant, donc je peut te dire que cela ne pose pas de soucis Concernant le SHA1, c'est utile dans une certaine mesure. Du moins, le système de cryptage en soi. Tu as différents algorithmes de Cryptage (avec ajout d'un "sel", et décryptable si l'on a le sel) OU de hashage (indécodable par après). Tu aura des bases en ligne de plein de mots traduits de crypto à normal, mais également de mots hashés. C'est pour cela qu'utiliser un mot de passe fort (lettres Min/Maj, nombres, caractères spéciaux, ...) t'éloignera du dictionnaire et donc d'un éventuel mot de passe déjà encodé. Pour ton SMTP cela ne sert à rien d'hasher, car ton serveur SMTP recevrait une valeur hashée et dira "oui mais zee1g5re1ge563rg1erheh13 c'est pas motDePasseDeMamieGateaux ! je refuse la connexion tiens. Hop. A la trappe.". Tu devra donc l'envoyer "en clair" (lisible dans le code) mais cela ne posera pas de souci crois moi. Par contre, vérifie bien que le protocole utilisé emploie le TLS/SSL sinon la transaction entre ton serveur et le serveur SMTP, lui, ne sera pas sécurisé et un logiciel "man in the middle" pourrait récupérer ses informations et les exploiter.
  14. C'est si rare que ça de nos jours? J'espère que je ne suis pas en voie d'extinction ! Dans tous les cas, n'hésite pas à poser tes questions (dans les forums appropriés) et on tentera d'y répondre ! Bonne journée,
  15. Ravi de l'apprendre ! Bon début de journée
  16. Bonjour, Quelles données exactement souhaitez vous récupérer? Toutes ? J'ai remarqué que vous le convertissez en array, pourquoi ne pas utiliser une méthode telle que count pour savoir si location contient un seul ou plusieurs objets ? Ou éventuellement, vérifier avec une méthode d'array si une des clés sensée ne pas s'y trouver existe dans le nœud de location.
  17. Bonjour, Bienvenue sur le hub n'hésite pas pour tes questions sur le PHP on est là pour ça
  18. Bonjour, Pas la peine de réinventer la roue https://premium.wpmudev.org/blog/top-wordpress-caching-plugins/
  19. Voici les mauvais points que j'ai relevé, c'est bien évidemment un jugement personnel: Manque de mentions légales en effet. De plus, le site est à moitié traduit, ce qui est assez désagréable à lire. Le livechat intrusif qui prends 40% de la hauteur de l'écran sur l'écran actuel, pas fan non plus, de plus qu'il se réouvre automatiquement à chaque changement de page. Les menus horizontaux avec sous-menu vide ou juste 1 sous-menu + séparateur, laissant penser que le site bug pour un utilisateur lambda. Le 3e lien pour "Nous suivre" représentant un flux RSS, mais qui est en fait un blog Aucune adresse physique indiquée ni numéro de TVA / Registre de commerce ou similaire ? L'objet du formulaire de contact avec 2 options uniquement - Il serait plus intéressant de proposer "type" de service à contacter, et laisser l'objet du mail en libre encodage "Paiement 100% sécurisé" affiché sur tout le site mais site sans HTTPS, de nos jours l'on se doit d'avoir un site en HTTPS quand cela vends quelque-chose, même si la partie grand public non inscrit n'a aucune transaction bancaire - cela rassure le client de voir une barre verte en haut ! Lors de la commande, on trouve enfin les conditions de vente ! Mais c'est un lorem ipsum (voir ici)
  20. Bonjour, - Le domaine .fr ne possède plus de limitation aux résidents de France uniquement depuis un bon moment. - Si votre site est hébergé en France, il est soumis aux lois française et vous devrez donc signaler l'utilisation des cookies sur votre site si ce n'est pas pour une facilité utilisateur (Un cookie de reconnexion ou langue est toléré sans le signaler, c'est principalement les cookies de publicité et analyse comportementale / publicité ciblée qui y sont contraints) - La déclaration à la CNIL n'est pas nécessaire si vous n'exploitez pas les données commercialement je pense, et si vous ne stockez aucune donnée sensible (CVC bancaire, etc.) - Si la publicité est un script réalisé par un externe, il devrait normalement automatiquement inclure la bannière de notification cookies (AdWords de google par exemple l'inclus de base si je me souviens) - L'utilisateur doit toujours être capable de supprimer son profil si il ne désire plus les partager avec votre site, et cela va de même avec les newsletters par mail - il doit toujours y avoir un lien "ne plus recevoir ces courriels". Pour la suppression du profil, cela peut être une simple demande au support du site (formulaire de contact) je pense. Ceci ne sont que mes souvenirs, je ne suis plus sûr à 100% - a prendre avec des pincettes, donc.
×
×
  • Créer...