Bonjour,

QuentinC a écrit :
J'avais lu quelque part que c'était conseillé de mettre une taille sur :root ou html, car la taille par défaut est complètement inadaptée.
Du coup c'est du vent ?
C'était un vieux truc pour contenter IE qui n'a plus de sens aujourd'hui ?
C'est du vent en 2024 selon moi. En ce qui me concerne, je ne spécifie pas du tout de taille de caractères pour le corps des textes. Par contre, pour les boutons, les menus, les titres, ...  là, évidemment, ça peut avoir du sens.

QuentinC a écrit :
Vu qu'il n'y a pas de taille fixe nulle part, ça ne devrait pas poser de problème, même si on agrandit 10 fois, si ?
Ça a l'air de bien se passer en effet si l'utilisateur grossit le texte.

QuentinC a écrit :
Ah ? Donc tu ne constates aucune différence entre la page du jeu quand on est effectivement entré sur la plate-forme, et la page d'accueil par exemple ?
Et la taille des textes n'est pas totalement déconnante ni dans un cas ni dans l'autre ?
Pour l'instant, sur iphone, je n'ai pas pu cliquer sur le menu, donc je n'ai pu tout voir. Mais sur les pages que j'ai pu voir, il n'y avait pas de problème de taille de caractère.

Fais marcher ton menu déjà.

Amicalement,
Modifié par parsimonhi (15 Apr 2024 - 01:04)
Hello,

a écrit :
Par contre, sur Iphone, le menu en haut de page n'est pas visible quand on clique dessus (la page se grise et on ne voit pas apparaitre le menu).


Arf, je croyais l'avoir réglé, celui-là...
IL doit y avoir encore un petit bug de récupération des coordonnées du clic côté JavaScript.

a écrit :
Mon conseil : laisse la taille par défaut de 1 rem. Idéalement, ne spécifie pas de taille de caractères du tout sauf cas exceptionnel (certains boutons par exemple). L'utilisateur a toujours la possibilité d'augmenter lui-même la taille des caractères s'il en a besoin.


D'accord. Du coup je vais aller changer le 112.5% en 1rem.

J'avais lu quelque part que c'était conseillé de mettre une taille sur :root ou html, car la taille par défaut est complètement inadaptée.
Du coup c'est du vent ?
C'était un vieux truc pour contenter IE qui n'a plus de sens aujourd'hui ?


a écrit :
Par contre il faut tester le site si l'utilisateur augmente la taille des caractères. En théorie, il faut que la mise en page tienne au moins jusqu'à 2 fois la taille normale des caractères.


Vu qu'il n'y a pas de taille fixe nulle part, ça ne devrait pas poser de problème, même si on agrandit 10 fois, si ?
ON devra juste scroller plus mais voilà.

Normalement, pour le jeu, chacune des zones importantes de la grille sont censées être scrollables.

a écrit :
Il y a en effet beaucoup de détails à améliorer. Il va falloir les régler un par un : un travail de fourmi. Je commence déjà à chercher, mais il y en a pour des semaines de boulot.


Je sais bien que je ne règlerai jamais tout, et ce n'est pas le but. Je n'ai pas l'intention de faire du super design, ça va rester essentiellement textuel. Il faudrait revoir le fonctionnement même du coeur du système pour changer ça.
Le but, c'est de corriger ce qui est le plus problématique, et le plus facile à faire.

a écrit :
Cette ligne est absolument indispensable pour que la taille des caractères s'adapte comme il faut sur les téléphones. Ça n'a peut-être pas réglé tous tes problèmes de taille des caractères, mais ça a dû en régler certains. Ceci dit, je n'ai pas trouvé où il restait des problèmes de taille de caractère.


Ah ? Donc tu ne constates aucune différence entre la page du jeu quand on est effectivement entré sur la plate-forme, et la page d'accueil par exemple ?
Et la taille des textes n'est pas totalement déconnante ni dans un cas ni dans l'autre ?

Note que pour voir le problème, il faut s'identifier sur le site avec le même login/pass en plus du mot de passe général apache. Les deux identifications sont en fait totalement décorrellées.


Merci.
Bonne soirée.
Bonjour,

QuentinC a écrit :
* Le texte est minuscule et totalement illisible. ON peut parfois s'en sortir en zoomant beaucoup, mais c'est pénible.
* La taille du texte est différente entre le site web en général, et la page du jeu spécifiquement. C'est écrit encore plus petit sur la page du jeu, et donc c'est encore pire.
* Sur la page du jeu, les boutons sont parfois inopérants et on a beaucoup de difficulté à cliquer dessus.
Je viens de tester vite fait sur un Mac book et un iphone. Je ne vois pas de problème avec la taille des caractères.

Par contre, sur Iphone, le menu en haut de page n'est pas visible quand on clique dessus (la page se grise et on ne voit pas apparaitre le menu).

QuentinC a écrit :
* Les tailles de police sont toutes exprimées en em et rem, sauf :root qui spécifie font-size: 112.5% que j'ai mis pour tester. Ce qui est censé être déjà assez gros d'après ce que j'ai pu lire (habituellement c'est plutôt 62.5 ou 87.5% qui sont conseillés)
Mon conseil : laisse la taille par défaut de 1 rem. Idéalement, ne spécifie pas de taille de caractères du tout sauf cas exceptionnel (certains boutons par exemple). L'utilisateur a toujours la possibilité d'augmenter lui-même la taille des caractères s'il en a besoin.

Par contre il faut tester le site si l'utilisateur augmente la taille des caractères. En théorie, il faut que la mise en page tienne au moins jusqu'à 2 fois la taille normale des caractères.

QuentinC a écrit :
* J'évite en général de fixer des tailles pour les éléments, même relatives, en espérant que le navigateur soit assez malin pour faire quelque chose un minimum présentable (c'est peut-être là que je me trompe).
* La page du jeu est subdivisée en diverses zones définies avec grid layout, c'est ce qui me paraissait le plus simple.
...
J'ai tenté de lancer une analyse avec Lighthouse dans les dev tools de chrome en mode mobile, et j'avoue que je ne comprends pas grand chose aux résultat qu'il me donne.
Il y a en effet beaucoup de détails à améliorer. Il va falloir les régler un par un : un travail de fourmi. Je commence déjà à chercher, mais il y en a pour des semaines de boulot.
QuentinC a écrit :
* Il m'a conseillé d'ajouter une balise <meta name="viewport" content="width=device-width, initial-scale=1" />, je l'ai fait, ça n'a pas l'air de changer grand chose à part faire disparaître quelqeus erreurs, et je ne comprends pas trop ce que ça fait. En tout cas ça ne règle pas mon problème de taille de texte.
Cette ligne est absolument indispensable pour que la taille des caractères s'adapte comme il faut sur les téléphones. Ça n'a peut-être pas réglé tous tes problèmes de taille des caractères, mais ça a dû en régler certains. Ceci dit, je n'ai pas trouvé où il restait des problèmes de taille de caractère.

Amicalement,
Modifié par parsimonhi (14 Apr 2024 - 11:59)
Merci de vos réponses

Je n'aurais pas dû poser la question avant d'aller dormir !

Ce matin j'ai trouvé la raison de ce comportement :
La structure de la Table3 comporte un champ "Table1_ID" et un champ "Table2_ID" sur lesquels je mets les contraintes externes correspondantes.
Le problème était que la valeur par défaut de ces champs était à "aucun".
En la mettant à "NULL" le problème est réglé.
J'avais du temps à tuer et je viens de vérifier : effectivement le moteur par défaut MyISAM n'acceptera pas les clefs étrangères. En fait, pour MySQL il faut immaginer ce moteur comme étant scopé pour une table, dès que l'on passe à un besoin au-delà (90% du temps chez moi) il faudrait utiliser InnoDB (avec Postgres je n'ai pas ce problème) :
CREATE TABLE name (
  -- the code... 
) ENGINE=InnoDB;
Salut Papy,

Je suis plutôt branché Postgres, mais pour MySQL il me semble que cela reste identique pour ce cas de figure : il faut utiliser l'option `ON DELETE CASCADE` sur des contraintes de clés étrangères.

Exemple :
CREATE TABLE Table1 (
    id INT PRIMARY KEY,
    -- autres colonnes...
    table3_id INT,
    FOREIGN KEY (table3_id) REFERENCES Table3(id) ON DELETE CASCADE
);

CREATE TABLE Table2 (
    id INT PRIMARY KEY,
    -- autres colonnes...
    table3_id INT,
    FOREIGN KEY (table3_id) REFERENCES Table3(id) ON DELETE CASCADE
);

CREATE TABLE Table3 (
    id INT PRIMARY KEY,
    -- autres colonnes...
);

Edit : j'ai laissé les noms des tables suggérées par ta question telles quelles, mais sur le principe je ne l'aurais pas fait pour moi-même. En effet, MySQL sera insensible à la case dans un environnement Windows, mais sensible à la case sous Linux...
Bien sûr, un dev' connait son environnement d'exécution, mais perso je préfère éviter.
"learnsql.fr" a écrit :
Par défaut, il dépend du système d'exploitation et de sa sensibilité à la casse. Cela signifie que MySQL est insensible à la casse dans Windows et macOS, alors qu'il est sensible à la casse dans la plupart des systèmes Linux. Vous pouvez toutefois modifier ce comportement en changeant la collation.

Modifié par Olivier C (14 Apr 2024 - 07:21)
Bonjour,

Juste un petit détail, avec la validateur W3C de Firefox :

Error: CSS: grid-template-rows: subgrid is not a grid-template-rows value.

Ce qu'il n'aime pas dans le code html:

<style>
@supports not (grid-template-rows: subgrid)
{
ul.mrj > li {grid-template-rows: 136px auto}
}
</style>


Par contre subgrid est bien compris par les quelques navigateurs que j'ai testés :
Firefox, Chrome, Edge, Safari.
Modifié par boteha_2 (13 Apr 2024 - 20:51)
Bonjour,

Je développe une plate-forme de jeux spécialement conçue pour être accessibles avec les lecteurs d'écran depuis plus de 13 ans.

Depuis quelques mois, dans le cadre d'une nouvelle version, j'aimerais améliorer un peu l'interface utilisateurs pour les personnes malvoyantes et bien voyantes.
Il ne s'agit pas d'une révolution, loin de là, ça va rester quoi qu'il arrive assez austère, et volontairement extrêmement simpliste. Mais s'il y a des choses que je peux améliorer sans trop de difficulté, c'est toujours bénéfique.

Malheureusement je suis tombé sur un problème que je n'arrive absolument pas à comprendre et à corriger.

IL y a quelques utilisateurs malvoyants qui m'ont fait les retours suivants lorsqu'ils ont essayé d'aller sur le site en bêta et de jouer sur leur smartphone iPhone ou Android:

* Le texte est minuscule et totalement illisible. ON peut parfois s'en sortir en zoomant beaucoup, mais c'est pénible.
* La taille du texte est différente entre le site web en général, et la page du jeu spécifiquement. C'est écrit encore plus petit sur la page du jeu, et donc c'est encore pire.
* Sur la page du jeu, les boutons sont parfois inopérants et on a beaucoup de difficulté à cliquer dessus. Je n'ai pas pu vraiment déterminer si c'était lié à leur taille, ou s'il y a un autre bug. La particularité étrange est que tout fonctionne correctement lorsque le lecteur d'écran (VoiceOver ou Talkback) est actif. Pas de problème non plus pour ceux qui jouent avec un clavier externe en blutooth sans toucher l'écran.

Ceux qui ont testé sur PC Windows n'ont pas l'air d'avoir eu de grosse difficulté, pas plus qu'une personne ayant testé sur une tablette Android.
JE n'ai pas eu de retours sur Mac ou iPad.

Mon code CSS n'a rien d'extraordinaire.

* Les tailles de police sont toutes exprimées en em et rem, sauf :root qui spécifie font-size: 112.5% que j'ai mis pour tester. Ce qui est censé être déjà assez gros d'après ce que j'ai pu lire (habituellement c'est plutôt 62.5 ou 87.5% qui sont conseillés)
* J'évite en général de fixer des tailles pour les éléments, même relatives, en espérant que le navigateur soit assez malin pour faire quelque chose un minimum présentable (c'est peut-être là que je me trompe).
* La page du jeu est subdivisée en diverses zones définies avec grid layout, c'est ce qui me paraissait le plus simple.

JE suis un peu emprunté pour vous coller du code directement ici, car je ne sais pas trop quelle partie du code pose problème. Est-ce que c'est vraiment du CSS ? Il y a peut-être un souci dans le HTML aussi ?
Je ne vais tout de même pas vous balancer 1000 lignes de HTML/CSS sans avoir ciblé un peu d'abord, d'autant que l'essentiel est généré dynamiquement en JavaScript (je vous rappelle que c'est un jeu !)

J'ai tenté de lancer une analyse avec Lighthouse dans les dev tools de chrome en mode mobile, et j'avoue que je ne comprends pas grand chose aux résultat qu'il me donne.

* Il m'avertit effectivement que la plupart des éléments sont trop petits pour être cliquables (plus de 60% des éléments), mais outre la taille minimale conseillée, il ne me dit pas vraiment comment y remédier.
* Il me dit que la taille de la fenêtre est de +960px alors qu'il s'attend à une taille de ~400px, ça doit être l'explication des textes et des boutons minuscules, mais là aussi, je ne comprends pas trop ce que je dois faire, et d'où il sort ce 960px alors que je n'ai jamais défini de taille fixe nulle part (je vous ai dit, j'évite ça soigneusement, peut-être un peu trop)
* Il m'a conseillé d'ajouter une balise <meta name="viewport" content="width=device-width, initial-scale=1" />, je l'ai fait, ça n'a pas l'air de changer grand chose à part faire disparaître quelqeus erreurs, et je ne comprends pas trop ce que ça fait. En tout cas ça ne règle pas mon problème de taille de texte.

Comment régler ce problème de taille de texte beaucoup trop petite ? Que dois-je faire ?
Pourquoi la taille de texte est différente entre le jeu et le reste du site web alors que c'est la même base en CSS ?

Si au-delà de ce problème de taille de texte vous avez des conseils utiles pas trop compliqués à mettre en place pour améliorer facilement l'apparance visuelle, je suis preneur.

Pour tester, ça se passe ici.
La page d'accueil de la nouvelle version: http://dev.qcsalon.net/fr/
Lien direct vers la page du jeu nouvelle version: http://dev.qcsalon.net/fr/game

Trois comptes à accès limité sont disponibles pour tester:
Demo1: Demo1Pwd
Demo2: Demo2Pwd
Demo3: Demo3Pwd

Merci beaucoup pour votre aide.
Modifié par QuentinC (13 Apr 2024 - 19:34)
Bonsoir à tous

Mes connaissance en SQL étant proches de zéro, je cherche la solution au problème suivant :

J'ai trois tables, Table1, Table 2, Table3 selon le schéma suivant
upload/1713025753-48769-tables.png

Une ligne de Table1 a 0 ou 1 lien vers une ligne de Table3
de même, une ligne de Table2 a 0 ou 1 lien vers une ligne de Table3
Il n'y a pas de lignes de Table3 qui soient liées à la fois à Table1 et Table2

Ce que je voudrais c'est que quand on détruit une ligne de Table1 ou Table2, la ligne correspondante de Table3, si elle existe, soit également détruite.

J'ai vainement essayé de créer des contraintes externes pour résoudre ce problème : phpMySQL refuse de créer ces contraintes, comme d'habitude sans expliquer pourquoi.

Quelqu'un pourrait-il m'expliquer comment faire ?
Merci de votre aide.
Bonjour,
J'ai un hébergement sur ionos avec un premier nom de domaine où est inclut la protection SSL, j'ai acheté un second nom de domaine pour un deuxième site qui est sur le même contrat, mais la protection n'est pas inclut et il la propose à 42€/ans ce qui commence a faire chère.
J'ai vu sur un sujet https://forum.alsacreations.com/topic-20-90273-1-Resolu-Ajout-de-certificat-serveur-nodejs.html qu’on peut ajouté un SSl via Let's Encrypt, mais je ne connais pas du tout la démarche...il faut se connecté en ssh, j'ai essayé ça https://www.ionos.fr/assistance/hebergement/configurer-et-gerer-les-acces-ssh/acces-shell-ssh-avec-putty/, mais putty ne fonctionne pas quand je rentre mes identifiants il plante.
Serait-il possible d'avoir quelques explications sur le fonctionnement.
Merci.
J'ai codé mon portfolio en HTML et CSS il y a quelques mois. Le favicon s'affiche correctement en haut de la page, mais lorsqu'on le recherche sur Google, j'ai tout essayé : changer la syntaxe, la racine du fichier, vérifier les erreurs, mais rien n'a fonctionné. Si quelqu'un a la réponse, ce serait super cool !

upload/1712925930-86553-pl1.png

upload/1712925950-86553-pl.png

upload/1712925964-86553-pl2.png

le lien du site https://polbourgeault.fr/
Modifié par Pl_brgt (12 Apr 2024 - 14:47)
Le serveur est chez l'hébergeur et il n'y a pas de fichiers inconnus, à ma connaissance.
Mais je ne vois pas ce que ça changerait sur la curiosité d'institutions qui me prennent de la bande passante, sans que je sache pourquoi et surtout si ce n'est pas leur domaine d'activité. Parce que quand je serai certain qu'ils n'ont pas un but en rapport avec le contenu du site, je bloquerai leur IP.
C'est pour cette raison que je demande.
Modifié par Bongota (12 Apr 2024 - 11:34)
Vahia a écrit :
Merci, je vais regarder ça mais j'ai peur que le problème reste entier car Google intervient en aval de la requête.


Il faut que tu t'installes dans ton environnement une lib qui gère le protocol SMTP. Ensuite, tu rentres les paramètres requis. Tu n'as pas besoin de Brevo puisque tu vas te servir du smtp de google gratuitement (si tu as un compte google).

En php, il y a phpmailer ou Symfony mailer (swift mailer). Ces librairies qui gèrent très bien l'envoie de mail.
En Python, nous avons dans la librairie std, SMTPlib
En JS, il y a principalement sendmail. gmail-send n'est qu'un wrapper.
Modifié par niuxe (11 Apr 2024 - 20:32)
Bonjour,
je constate sur l'un de mes sites une consommation de bande passante plus élevée sur des adresses qui ne sont pas des particuliers. Un test Whois sur l'IP 104.168.167.202 par exemple, me donne le résultat suivant :
--------
OrgName: Hostwinds LLC.
OrgId: HL-29
Address: 12101 Tukwila International Blvd, 3rd Floor, Suite 320
City: Seattle
StateProv: WA
PostalCode: 98168
Country: US
RegDate: 2011-11-30
Updated: 2021-09-23
Comment: https://www.hostwinds.com
Comment: Abuse Contact: abuse@hostwinds.com
Ref: https://rdap.arin.net/registry/entity/HL-29

Il s'agit apparemment d'une organisation, mais que font-ils et pourquoi captent-ils plus de bande passante que les particuliers qui se connectent sur le site. Le 8/04, ils ont pris 8 M de bande, ce qui est beaucoup pour une visite. Surtout qu'il n'y a plus ni vidéos ni musique à lire sur le site même. Ce n'est pas la seule société à le faire et à chaque fois, la consommation est plus élevée que celle des particuliers.
Quelqu'un a une idée sur ce qu'ils font sur le net ?
Merci de ces remarques que je partage entièrement.
À remarquer que si j'exporte des numéros de téléphone en .csv depuis une feuille Excel et que je la recharge, j'ai exactement le même résultat, c'est bien la preuve que je ne peux rien faire de plus.

Mon but est de permettre à certains utilisateurs de charger éventuellement le contenu d'une table sous Excel.
Je ne suis pas sûr que ce soit très utile dans la pratique, c'est juste au cas où.
Dans la plupart des cas j'utilise bien entendu le format .sql pour exporter ce type de données,
mais si je fais ça dans ce cas précis je vais perturber les utilisateurs.

Je vais laisser les choses en l'état.
Bonjour à tous !
Sur un site développé avec NextJS j'ai créé une page contact contenant un formulaire qui récupère les infos de l'utilisateur (mail, nom, prénom et le message). A l'envoi du formulaire un mail est envoyé vers une de mes boites mails.
J'aimerais que les mails que je reçois apparaissent comme si c'était l'utilisateur qui me les avait envoyés. Pour cela j'ai attribué l'adresse mail de l'utilisateur au champ "from" dans la config de nodemailer.

J'utilise Gmail comme fournisseur SMTP et il modifie automatiquement le champ from pour y mettre mon adresse mail.
Du coup je suis passé sur Brevo (je cherche une solution gratuite) et là le problème est identique. Apparemment Google et Yahoo imposent que l'expéditeur soit certifié. Moralité impossible d'implémenter l'adresse de l'utilisateur comme expéditeur.

Savez-vous s'il existe une solution ou est-ce que Google a définitivement vérrouillé le truc ?

Merci par avance. Smiley cligne
Salut,

j'essaye d'intégrer, un carousel via la librairie Swiper.js et en installant par NPM sans passer par react ou vue js.
https://swiperjs.com/get-started

Mon problème, c'est que je n'arrive pas du tout à faire fonctionner le script.
J'ai repris la doc comme point de départ de mon projet.

J'ai cette erreur : SyntaxError: Cannot use import statement outside a module

Dans mon fichier HTML
<!-- Slider main container -->
<div class="swiper">
  <!-- Additional required wrapper -->
  <div class="swiper-wrapper">
    <!-- Slides -->
    <div class="swiper-slide">Slide 1</div>
    <div class="swiper-slide">Slide 2</div>
    <div class="swiper-slide">Slide 3</div>
    ...
  </div>
  <!-- If we need pagination -->
  <div class="swiper-pagination"></div>

  <!-- If we need navigation buttons -->
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>

  <!-- If we need scrollbar -->
  <div class="swiper-scrollbar"></div>
</div>


Dans mon fichier css (scss) - Sur ce point je ne sais pas si j'ai bien fait d'intégrer de cette manière. En tout cas la mise en forme et les flèches sont bien apparu....
@use '../../node_modules/swiper/swiper-bundle.css';


Dans mon fichier js
// import Swiper bundle with all modules installed
import Swiper from 'swiper/bundle';

// init Swiper:
const swiper = new Swiper(
  // Optional parameters
  loop: true,

  // If we need pagination
  pagination: {
    el: '.swiper-pagination',
  },

  // Navigation arrows
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },

  // And if we need scrollbar
  scrollbar: {
    el: '.swiper-scrollbar',
  },

);

Modifié par tc-web (10 Apr 2024 - 19:53)
Bonsoir,

En fait c'est l'import par défaut d'excel qui est complètement stupide. ON ne peut juste pas lui faire confiance. J'ai déjà vu les choses suivantes:

- IL change des dates du format anglais ou ISO au format français, puis sauvegarde en format français (ce n'est pas juste de l'affichage)
- Il supprime les zéros en préfixe ou en suffixe dans des numéros à usage administratif du genre "045.390" car il les interprète incorrectement comme nombre, et il le fait parfois même pour les adresse IP v4 ou v6 (donc pas étonnant qu'il fasse la même chose avec des numéros de téléphone)
- IL change des trucs genre "60%" en "0.6"
- Il impose l'encodage Windows-1252 en entrée comme en sortie (en 2024 ça ne devrait plus exister, ça devrait être UTF-8 pour tout le monde)


En réalité, le format CSV n'est pas ou très très peu normé. IL n'y a pas (à ma connaissance en tout cas) un standard officiel comme on en a en XML, JSON, YAML, TOML, et tant d'autres formats de données structurées. Pas surprenant, donc, que chacun interprète à sa sauce !
Tout le monde n'est même pas d'accord sur le séparateur ! Dans le monde anglophone on utilise "," alors qu'en francophonie on utilise plutôt ";".
Quand on a des données qui contiennent elles-mêmes plusieurs lignes, le séparateur ou des guillemets, ça devient carrément l'enfer...

Si le but est de faire des transferts de base de donnée à l'autre, le plus simple est encore d'exporter du SQL. D'expérience personnelle, c'est 100 fois plus interopérable.
Bonjour,

PapyJP a écrit :
J’ai aussi essayé le guillemet simple comme tu le proposes. Ça ne marche pas mieux.

Il ne faut pas s'arrêter au dialogue montrant le "tableau" initial d'importation (dans OpenOffice, ils appellent ce dialogue "Import de texte"). Il faut continuer et cliquer sur un bouton genre "OK" (je ne sais pas comment c'est sur excel, mais dans OpenOffice, c'est "OK"), et ainsi afficher le csv dans le tableur.

Amicalement,
Modifié par parsimonhi (09 Apr 2024 - 19:18)
Bonjour,

Tu peux tenter d'ajouter une apostrophe devant (mais pas derrière) les chaines qui ne doivent pas être comprises comme des nombres (sans garantie que ça marche avec toutes les versions d'excel). Par exemple :
	$TABLE = [
		["Nom", "Prénom", "Téléphone"],
		["Dupont", "Jacques", "'0612345678"],
		["Duval", "Armand", "'+33123456789"]
	];


EDIT: ça peut aussi dépendre de la manière dont on importe le csv dans le tableur. Y a des options du genre "champs entre guillemets considérés comme texte". Il peut y avoir aussi d'autres options dans le tableur qui selon qu'elles sont activées ou pas perturbent le processus genre "Nombres mis en forme en tant que texte ou précédés d’une apostrophe". Et tout ça peut aussi dépendre du tableur (excel ? ou logiciel lisant des fichiers excel comme OpenOffice ?) et de leurs versions.

Amicalement,
Modifié par parsimonhi (09 Apr 2024 - 16:21)
Si j'écris

<?php
	$TABLE = [
		["Nom", "Prénom", "Téléphone"],
		["Dupont", "Jacques", "\"0612345678\""],
		["Duval", "Armand", "\"+33123456789\""]
	];
	$csvTable = mb_convert_encoding($TABLE, 'Windows-1252', 'UTF-8');
	header('Content-Type: application/csv');
	header('Content-Disposition: attachment; filename="' . "Tests1.csv" . '";');
	$f = fopen('php://output', 'w');
	foreach($csvTable as $row) fputcsv($f, $row, ';');
	die();
?>

j'obtiens
upload/1712667937-48769-tests1-csv.png

C'est à peine mieux.
Modifié par PapyJP (09 Apr 2024 - 15:06)
Le test est dans https://www.alma-musica.net/tests/csv-test.php
Le code :

<?php
	$TABLE = [
		["Nom", "Prénom", "Téléphone"],
		["Dupont", "Jacques", "0612345678"],
		["Duval", "Armand", "+33123456789"]
	];
	$csvTable = mb_convert_encoding($TABLE, 'Windows-1252', 'UTF-8');
	header('Content-Type: application/csv');
	header('Content-Disposition: attachment; filename="' . "Tests.csv" . '";');
	$f = fopen('php://output', 'w');
	foreach($csvTable as $row) fputcsv($f, $row, ';');
	die();
?>

ça demande où enregistrer le fichier Tests.csv
Quand on ouvre le fichier sous Excel (version française, d'où le ';' dans fputcsv($f, $row, ';');)
on obtient
upload/1712667670-48769-tests-csv.png
J’utilise héréditaire à foison, c’est une façon de définir une chaîne de caractères. fputcsv prend comme paramètre Fields un array de chaînes de caractères, peu importe la façon de définir ces chaînes de caractères.
Le code en question est dans la partie admin de mon site, il faudrait que je fasse un ficher de test pour pouvoir le partager. Je vais essayer de faire ça.
Merci pour la modification du fondu, j'avais observé l'effet flash aussi.

En fait quand je met le CSS dans un fichier linké sur la page ca ne fonctionne pas, alors que mis dans une page que j'insère dans un iframe ca marche ?

J'utilise Visual Studio Code et je soupçonne des comportements bizarres parfois.

Bon on va clore le débat mais je voulais savoir si j'étais le seul à avoir connu cela.
50 Dernières réponses