<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="https://forum.alsacreations.com/rss2.php" rel="self" type="application/rss+xml" />
<title>Forum Alsacreations : HTML, CSS, JavaScript et Standards Web</title>
<description>Forum Alsacreations : HTML, CSS, JavaScript et Standards Web - Derniers sujets</description>
<link>https://forum.alsacreations.com</link>
	<item>
		<title>[Résolu] Problème de menu hamburger</title>
		<description>Bonjour. 

Je cherche à créer des albums photo qui s affiche correctement sur tout les supports. 

Le problème est le suivant mon menu s affiche bien sur mon ordinateur mais sur mon téléphone c'est une </description>
		<content:encoded>Bonjour. 

Je cherche à créer des albums photo qui s affiche correctement sur tout les supports. 

Le problème est le suivant mon menu s affiche bien sur mon ordinateur mais sur mon téléphone c'est une autre pair de manche.. 

Le menu hamburger que j'ai créer ne s 'affiche correctement qu'une fois qu'il a été cliqué. C'est à dire que on voit pas mon header autrement qu'aprés avoir cliqué sur le menu hamburger. 

J'ai bien essayé de régler le problème avec différente IA mais rien n'y fait. Je précise que je suis débutant désolé si le soucis paraît simple et que je vous fais perdre un peu de temps mais moi je n'ai pas trouvé la solution malgré de longue heures à chercher la solution .


voici le code : &lt;!DOCTYPE html&gt;
&lt;html lang="fr"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;Mes Albums Photos - Version Design Personnalisé&lt;/title&gt;
    
    &lt;!-- Styles de base de lightGallery + Plugins (Miniatures &amp; Téléchargement) --&gt;
    &lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lightgallery@2.7.2/css/lightgallery-bundle.min.css"&gt;
    &lt;style&gt;
        /* ========================================================
           VOS STYLES CSS PERSONNALISÉS (INTÉGRÉS)
           ======================================================== */
        body {
            background-image : url('fond.jpg');
            background-color : #440909;
            margin: 0px;
            margin-bottom : 10px;
            font-family : "Trebuchet MS", "sans serif";
            font-size: 14px;
            color : white;
        }

        #header{
            height : 112px;
            background: url('header.jpg');
            background-repeat : no-repeat;
            background-color : #5c0e1b; 
            border : 1px solid #25060b;
            margin: auto;
            margin-top : 0px;
        }

        h1,h2,h3,h4{
            border-left: 3px solid black;
            border-bottom : 1px solid black;
            border-radius: 4px;
			box-shadow: inset 0px 2px 5px rgba(0, 0, 0, 0.5);
            padding-left: 4px;
            width: 290px;
            padding-bottom: 3px;
            background: #701705;
            background-position : right;
            background-repeat: no-repeat;
            color: white;
            margin-top: 0px;
            font-size: 14px;
        }

#menu-toggle { display: none; }

/* ========== MENU RESPONSIVE ========== */

/* Bouton hamburger (caché sur grand écran) */
#menu-toggle {
    display: none;
    background: #680D15;
    border: 1px solid #25060b;
    border-radius: 4px;
    padding: 8px 12px;
    cursor: pointer;
    position: absolute;
    top: 10px;
    right: 15px;
    z-index: 200;
}

#menu-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    margin: 5px 0;
    background: #ffffff;
    transition: 0.3s;
}

/* Version mobile */
@media (max-width: 700px) {

    #menu-toggle {
        display: block;
    }

    #menu {
        display: none;
        flex-direction: column;
        width: 100%;
        background-color: #680D15;          /* couleur du menu */
        border: 1px solid #25060b;
        border-radius: 4px;
        box-shadow: 3px 3px 8px rgba(0,0,0,0.5);
        position: absolute;
        top: 50px;
        left: 0;
        z-index: 150;
        padding: 10px 0;
    }

    #menu.ouvert {
        display: flex;
    }

    #menu dl {
        width: 100%;
        margin: 0;
        border: none;
        background-color: #701705;          /* couleur des boutons */
        border-bottom: 1px solid #25060b;
    }

    #menu dt {
        height: auto;
        padding: 12px 0;
        font-size: 15px;
    }

    #menu dt a {
        color: white;
        text-decoration: none;
        display: block;
    }

    #menu dt:hover {
        background-color: #5c0e1b;          /* couleur au survol */
    }
}


#menu-toggle span {
  display: block; width: 22px; height: 2px; margin: 5px 0;
  background: #fff;
}
@media (max-width: 600px) {
  #menu-toggle { display: block; }
  #menu { display: none; flex-direction: column; }
  #menu.ouvert { display: flex; }
}

      #menu { 
	box-shadow: 3px 3px 5px 0 rgba(0, 0, 0, 0.5); 
	border-radius : 4px; 
    width: 100%;
    font-family: "Arial";
    font-size: 12px;
    background-color: #680D15;
    border: 1px solid #25060b;
    height: 20px;
    position: relative;
    top: 96px;           
    margin-bottom: 96px; 
    left: -1px;
    z-index: 100;
        }

       #menu dl {
	background-color: #701705;
	border-left: 1px solid black;
	border-right: 1px solid black;
	border-radius: 2px;
    float: left;
    width: 150px; 
    margin: 0px;
    color: white;
    margin-left: 25px;
}

        #menu dt{
            cursor: pointer;
            text-align: center;
            font-weight: bold;
            color: white;
            height: 19px;
        }

        #menu dd{ 
            text-align : center;
            color: white;
            margin: 0;
            padding: 0;
            list-style-type: none;
        }

        #menu ul{	   
            margin: 0;
            padding: 0;
            list-style-type: none;
        }

        #menu li{
          
            
            width: 107px;
            height : 19px;
            border: 1px solid #25060b;
            border-top : 0px;
            text-align: center;
            color: white;
            list-style-type: none;
            padding: 0px;
            padding-top: 4px;
        }

        #menu li a:hover{		  
            padding-top: 1px;
            text-align: center;
        }

        #menu li a, #menu dt a{	 
            color: white;
            text-decoration: none;
            display: block;
            height: 100%;
            border: 0 none;
        }

        #menu li a:hover{ color: white; }
        #menu dt a:hover{ color: white; }

        #nav{
            padding: 0;
            height: 20px;
            position: relative;
            top : -30px;
            left: 132px;
        }

        #navlist{
            margin: 0px;
            padding: 0px 0px;
            display: block;
        }

        #navlist li{
            list-style: none;
            float: left;
            border-right : 1px solid #bababa;
        }

        #nav a, #navlist li.extend{
            margin: 0px;
            display: block;
            border-bottom: 1px solid black;
            padding: 1px 6px;
            text-decoration: none;
            background: white;
            font: normal 12px verdana, serif;
            color: black;
        }

        #nav a:hover{
            position : relative;
            top : 1px;
            z-index: 100;
        }

        #menu a#current{
            padding: 0px 5px;
            padding-top : 65px;
            background: #651220;
            border: 1px solid #25060b;
            border-bottom : 0px;
            color: black;
            font-weight : bold;
            height : 92px;
            position : relative;
            top : -22px;
            z-index: 100;
        }

        #photo a{ text-decoration: none; }	
        #photo a:hover{ background: none; }
        #photo a:span{ display: none; }

        #photo a:hover span{ 
            display: inline;
            position : absolute;
            top: 24px; 
            left: 22px;
            width: 536px;
            height: 304px;
            background: none;
            color: #efefd3;
        }

        div.contenu { 
    width: 98%; 
    border: 1px solid #25060b;
    background: #651220;
    padding: 4px;
    padding-top: 15px;    
    padding-bottom: 12px;
    color: white;
    position: relative;     
    margin: 0 auto;         
    margin-top: 10px;       
    margin-bottom: 10px;
    
    min-height: 550px;
    box-sizing: border-box; 
}
		
        div.contenu ul { margin: 8px; padding: 8px; }
        div.contenu li { margin-bottom: 6px; }

        #foot {
            border: 1px dashed #74474e;
            background-color : #671926;
            text-align : center;
            color : black;
            font-weight : bold;
            margin-top : 50px;
            padding : 8px;
        }

        /* ========================================================
           STYLES PROPRES À LA GRILLE DES ALBUMS (ADAPTATIF MOBILE)
           ======================================================== */
        .section-album {
            margin-bottom: 40px;
        }
        .galerie-grille {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 15px;
            margin-top: 15px;
        }
        .galerie-grille a {
            display: block;
            overflow: hidden;
            border-radius: 6px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.3);
            border: 1px solid #25060b;
        }
        .galerie-grille img {
            width: 100%;
            height: 150px;
            object-fit: cover;
            display: block;
            transition: transform 0.3s ease;
        }
        .galerie-grille a:hover img {
            transform: scale(1.05);
        }
    &lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;

    &lt;!-- ZONE DE L'ENTÊTE --&gt;
    &lt;div id="header"&gt;
&lt;button id="menu-toggle" aria-label="Ouvrir le menu"&gt;
  &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;div id="menu"&gt;
 &lt;dl&gt;
                &lt;dt&gt;&lt;a href="#ancres-album photo general"&gt;album general&lt;/a&gt;&lt;/dt&gt;
            &lt;/dl&gt;
            &lt;dl&gt;
                &lt;dt&gt;&lt;a href="#ancres-album nature"&gt;album nature&lt;/a&gt;&lt;/dt&gt;
            &lt;/dl&gt;
            &lt;dl&gt;
        &lt;dt&gt;&lt;a href="#ancres-album dessin"&gt;album dessin&lt;/a&gt;&lt;/dt&gt;
    &lt;/dl&gt;
&lt;/div&gt;   

    &lt;!-- ZONE PRINCIPALE DE CONTENU (Reçoit vos albums) --&gt;
    &lt;div class="contenu"&gt;

        &lt;!-- ALBUM 1 --&gt;
        &lt;div id="ancres-album photo general" class="section-album"&gt;
            &lt;h2&gt;album photo général&lt;/h2&gt;
            &lt;div id="album-general" class="galerie-grille"&gt;
                &lt;a href="album_photo_general/1.jpg" data-src="album_photo_general/1.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/1.jpg" alt=""loading="lazy" /&gt;
                &lt;/a&gt;
                 &lt;a href="album_photo_general/2.jpg" data-src="album_photo_general/2.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/2.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                 &lt;a href="album_photo_general/3.jpg" data-src="album_photo_general/3.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/3.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/4.jpg" data-src="album_photo_general/4.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/4.jpg" alt="" loading="lazy" /&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/5.jpg" data-src="album_photo_general/5.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/5.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/6.jpg" data-src="album_photo_general/6.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/6.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/7.jpg" data-src="album_photo_general/7.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/7.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/8.jpg" data-src="album_photo_general/8.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/8.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/9.jpg" data-src="album_photo_general/9.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/9.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/10.jpg" data-src="album_photo_general/10.jpg"&gt;
                    &lt;img src="album_photo_general/miniatures/10.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        		 &lt;a href="album_photo_general/11.png" data-src="album_photo_general/11.png"&gt;
                    &lt;img src="album_photo_general/miniatures/11.png" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- ALBUM 2 --&gt;
         &lt;div id="ancres-album nature" class="section-album"&gt;
            &lt;h2&gt;album nature&lt;/h2&gt;
            &lt;div id="album-nature" class="galerie-grille"&gt;
                &lt;a href="album_nature/1.jpg" data-src="album_nature/1.jpg"&gt;
                    &lt;img src="album_nature/miniatures/1.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/2.jpg" data-src="album_nature/2.jpg"&gt;
                    &lt;img src="album_nature/miniatures/2.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/3.jpg" data-src="album_nature/3.jpg"&gt;
                    &lt;img src="album_nature/miniatures/3.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/4.jpg" data-src="album_nature/4.jpg"&gt;
                    &lt;img src="album_nature/miniatures/4.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/5.jpg" data-src="album_nature/5.jpg"&gt;
                    &lt;img src="album_nature/miniatures/5.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/6.jpg" data-src="album_nature/6.jpg"&gt;
                    &lt;img src="album_nature/miniatures/6.jpg" alt="" loading="lazy" /&gt;
                &lt;/a&gt;
                &lt;a href="album_nature/7.jpg" data-src="album_nature/7.jpg"&gt;
                    &lt;img src="album_nature/miniatures/7.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
         &lt;a href="album_nature/8.jpg" data-src="album_nature/8.jpg"&gt;
                    &lt;img src="album_nature/miniatures/8.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        &lt;a href="album_nature/9.jpg" data-src="album_nature/9.jpg"&gt;
                    &lt;img src="album_nature/miniatures/9.jpg" alt="" loading="lazy"/&gt;
                &lt;/a&gt;
        
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- PIED DE PAGE INTERNE --&gt;
        &lt;div id="foot"&gt;
            © Mon Site Photo - Tous droits réservés
        &lt;/div&gt;

    &lt;/div&gt;
    
    &lt;script src="https://cdn.jsdelivr.net/npm/lightgallery@2.7.2/lightgallery.min.js"&gt;&lt;/script&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js"&gt;&lt;/script&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/lightgallery@2.7.2/plugins/download/lg-download.min.js"&gt;&lt;/script&gt;
    
    &lt;script&gt;
        // Options partagées (Miniatures + Téléchargement)
        const optionsGalerie = {
            speed: 500,
            licenseKey: '0000-0000-000-0000',
            plugins: , 
            download: true,
            thumbnail: true,
            showThumbByDefault: true
        };

        // Activation des galeries
        lightGallery(document.getElementById('album_photo_general'), optionsGalerie);
        lightGallery(document.getElementById('album_nature'), optionsGalerie);
    &lt;/script&gt;
 &lt;script&gt;
 	document.getElementById('menu-toggle')
 	 .addEventListener('click', function () {
    document.getElementById('menu').classList.toggle('ouvert');
  });
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content:encoded>
		<pubDate>Tue, 15 Sep 2026 18:50:20 +0200</pubDate>
		<dc:date>2026-09-15T18:50:20+02:00</dc:date>
		<dc:creator>RaW</dc:creator>
		<dc:subject>[Résolu] Problème de menu hamburger</dc:subject>
		<link>https://forum.alsacreations.com/topic-27-91717-1.html</link>
		<guid>https://forum.alsacreations.com/topic-27-91717-1.html</guid>
	</item>
	<item>
		<title>Uncaught Error: Class "PHPMailer" not found</title>
		<description>Bonjour,

J'utilise PHPMailer depuis des années, cela marche bien sauf quand OVH me bloque des mails car SMTP n'est soi-disant pas activé.

J'ai donc ajouté quelques lignes de code préconisées chez Ionos :
</description>
		<content:encoded>Bonjour,

J'utilise PHPMailer depuis des années, cela marche bien sauf quand OVH me bloque des mails car SMTP n'est soi-disant pas activé.

J'ai donc ajouté quelques lignes de code préconisées chez Ionos :

use PHPMailer\PHPMailer\PHPMailer;

// Ajout
use PHPMailer\PHPMailer\SMTP;
// Fin ajout

use PHPMailer\PHPMailer\Exception;

require_once 'PHPMailer603/src/PHPMailer.php';

// Ajout
require_once 'PHPMailer603/src/SMTP.php';
// Fin ajout

require_once 'PHPMailer603/src/Exception.php';

$mail = new PHPMailer\PHPMailer\PHPMailer;

// Ajout
$mail-&gt;SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
// Fin ajout


Et je me prends l'erreur :

Uncaught Error: Class "PHPMailer" not found

Avez-vous une explication ? Modifié par boteha_2 (12 Sep 2026 - 15:42)</content:encoded>
		<pubDate>Sat, 12 Sep 2026 15:41:35 +0200</pubDate>
		<dc:date>2026-09-12T15:41:35+02:00</dc:date>
		<dc:creator>boteha_2</dc:creator>
		<dc:subject>Uncaught Error: Class "PHPMailer" not found</dc:subject>
		<link>https://forum.alsacreations.com/topic-20-91715-1.html</link>
		<guid>https://forum.alsacreations.com/topic-20-91715-1.html</guid>
	</item>
	<item>
		<title>Utilisation des pré-processeurs : état de l&amp;apos;art en 2026</title>
		<description>Bonjour à tous,

Bien sûr, il existe des enquêtes Stack Overflow, des npm trends et autres outils statistiques, mais pour vous-même : Vous utilisez quoi aujourd'hui comme outils de build pour vos styl</description>
		<content:encoded>Bonjour à tous,

Bien sûr, il existe des enquêtes Stack Overflow, des npm trends et autres outils statistiques, mais pour vous-même : Vous utilisez quoi aujourd'hui comme outils de build pour vos styles ? Si vous en utilisez encore un d'ailleurs ? Et surtout pour quels types de projets (projet perso, d'envergure, legacy, etc) ?

Et ce qui m'intéresse le plus : quelles sont les fonctionnalités dont vous ne pouvez encore vous passer en 2026 ?

Pour vous inciter à répondre je commence par répondre moi-même à ma propre question :

Après avoir longtemps utilisé Stylus, désormais totalement legacy, n'avoir jamais été convaincu par le monolithe Sass, j'ai tenté PostCSS. Ce dernier vendait du rêve sur le papier, avançait sa modularité, mais dans la pratique il repose entièrement sur un écosystème composés de plugins tous autant chaotiques les uns que les autres : incompatibles entre eux souvent, deprecated du jour au lendemain. J'ai fini par adopter une solution maison, avec notamment Lightningcss.

Les avancés de CSS de ces 2 dernières années ont fait reculer le besoin viscéral d'avoir un préprocesseurs sur certains projets. Cependant, voici les fonctionnalités dont je ne peux me passer même aujourd'hui :

- Les variables : en effet, les custom properties ne seront jamais supportés par les media queries (@media) en raison du risque de récursivité infinie ; les @custom-media ne sont pas encore supportées et, de toute façon ne seront jamais supportés eux non plus par @container. Perso j'ai fait un système de variables qui supporte la syntaxe media queries level 5 **.
- Les mixins (@mixin et @include), mais je ne permet pas de descendre au-delà de 3 niveaux de récursivité, sinon je considère qu'il y a un problème de design ; en réalité, je devrais même interdire la récursivité pour cette feature...
- Fusion des @import, avec compatibilité layer(), en un unique fichier.
- Les boucles @for, à utiliser avec modération pour ne pas générer n'importe quoi.

Voilà, je crois que je n'ai rien oublié, j'ajouterais peut-être à terme la résolution de calc() sur les valeurs statiques, mais je ne permettrais pas les mélanges d'unités statiques comme le permet SASS, là encore je trouve que cela encourage les mauvais designs.

C'est à vous !

---

** Exemple :
$from-s-to-m: (50em &lt; width &lt;= 70em); Modifié par Olivier C (02 Sep 2026 - 08:54)</content:encoded>
		<pubDate>Tue, 01 Sep 2026 20:58:51 +0200</pubDate>
		<dc:date>2026-09-01T20:58:51+02:00</dc:date>
		<dc:creator>Olivier C</dc:creator>
		<dc:subject>Utilisation des pré-processeurs : état de l&amp;apos;art en 2026</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91713-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91713-1.html</guid>
	</item>
	<item>
		<title>Avis UX : Emis, devis/factures PDF (pas une PA)</title>
		<description>Bonjour,

Je cherche des retours (HTML/CSS/clarté du texte, pas du référencement) sur Emis, un éditeur de devis et de factures PDF qui tourne dans le navigateur, sans compte.

Les pièces restent en localStorage.</description>
		<content:encoded>Bonjour,

Je cherche des retours (HTML/CSS/clarté du texte, pas du référencement) sur Emis, un éditeur de devis et de factures PDF qui tourne dans le navigateur, sans compte.

Les pièces restent en localStorage. Gratuit avec filigrane ; 29 € une fois enlèvent le filigrane, à vie, sur ce navigateur.

Ce n'est pas une plateforme agréée, pas une e-facture, pas de Factur-X, pas Chorus Pro. Périmètre : devis, PDF particuliers, et PDF B2B jusqu'au 1er septembre 2027. Ensuite l'émission B2B passera par une PA. Emis n'en est pas une.

La mention de franchise par défaut est « TVA non applicable, art. L. 223 et s. du CIBS » (pas L. 233-3). Ce n'est pas un conseil fiscal.

Page : https://marine-anvil-swnt.here.now/
App : https://marine-anvil-swnt.here.now/app.html

Merci d'avance pour un regard franc, surtout si le discours 2026/2027 est ambigu ou si l'accessibilité cloche.</content:encoded>
		<pubDate>Tue, 01 Sep 2026 12:22:43 +0200</pubDate>
		<dc:date>2026-09-01T12:22:43+02:00</dc:date>
		<dc:creator>JeremyL19</dc:creator>
		<dc:subject>Avis UX : Emis, devis/factures PDF (pas une PA)</dc:subject>
		<link>https://forum.alsacreations.com/topic-18-91712-1.html</link>
		<guid>https://forum.alsacreations.com/topic-18-91712-1.html</guid>
	</item>
	<item>
		<title>Je cherche des retours sur mon site de rappel</title>
		<description>Bonjour,

J'ai créé un site pour mes parents parce qu'ils oublient tout (contrôle technique de la voiture, rendez-vous médicaux récurrents, entretien des appareils de la maison) et je me suis dis que ç</description>
		<content:encoded>Bonjour,

J'ai créé un site pour mes parents parce qu'ils oublient tout (contrôle technique de la voiture, rendez-vous médicaux récurrents, entretien des appareils de la maison) et je me suis dis que ça pourrait servir à d'autres.
Mais pour le moment pas grand monde s'est connecté dessus donc je cherche des avis pour comprendre si c'est l'application qui est pas bien.
Le site c'est https://ialwaysforget.com

Merci d'avance pour vos retours
Bonne journée</content:encoded>
		<pubDate>Thu, 27 Aug 2026 23:51:50 +0200</pubDate>
		<dc:date>2026-08-27T23:51:50+02:00</dc:date>
		<dc:creator>Thomaslfrt</dc:creator>
		<dc:subject>Je cherche des retours sur mon site de rappel</dc:subject>
		<link>https://forum.alsacreations.com/topic-18-91711-1.html</link>
		<guid>https://forum.alsacreations.com/topic-18-91711-1.html</guid>
	</item>
	<item>
		<title>Synchronisation de requêtes MySQL</title>
		<description>Bonjour à tous
Je suis tombé sur le problème suivant:
J'ai une table Members dans laquelle je référence les membres de l'association
J'ai une table MemberGroups dans laquelle sont indiqués les groupes au</description>
		<content:encoded>Bonjour à tous
Je suis tombé sur le problème suivant:
J'ai une table Members dans laquelle je référence les membres de l'association
J'ai une table MemberGroups dans laquelle sont indiqués les groupes auxquels un membre appartient,
par exemple un membre peut être dans le groupe "actif" et dans le groupe "membre du CA".
Quand j'essaie de créer un membre puis de lui affecter un ou plusieurs groupes (par deux requêtes successives), tout se passe comme si la création du membre n'avait pas encore eu lieu au moment où je l'affecte à un groupe: le serveur MySQL répond qu'il y a une erreur dans les contraintes.
J'ai  également d'autres cas moins nets qui me laissent penser que deux requêtes successives ne se déroulent pas exactement dans l'ordre où elles sont demandées, ou bien que les tables de contraintes ne sont pas immédiatement mises à jour.
Je n'ai  rien trouvé sur ce sujet dans la documentation.
Quelqu'un pourrait il éclairer ma lanterne ?</content:encoded>
		<pubDate>Tue, 25 Aug 2026 15:40:18 +0200</pubDate>
		<dc:date>2026-08-25T15:40:18+02:00</dc:date>
		<dc:creator>PapyJP</dc:creator>
		<dc:subject>Synchronisation de requêtes MySQL</dc:subject>
		<link>https://forum.alsacreations.com/topic-20-91710-1.html</link>
		<guid>https://forum.alsacreations.com/topic-20-91710-1.html</guid>
	</item>
	<item>
		<title>[Résolu] Problème de SQL</title>
		<description>Bonjour à tous
J'ai une table Calendrier qui contient la description des évènements de mon association.
Chaque entrée de la table est référencée par un champ eventID
J'ai une autre table CalItems qui conti</description>
		<content:encoded>Bonjour à tous
J'ai une table Calendrier qui contient la description des évènements de mon association.
Chaque entrée de la table est référencée par un champ eventID
J'ai une autre table CalItems qui contient pour chaque évènement les actions à effectuer au cours d'un évènement, par exemple
Dans "Calendrier" l'évènement R20260901 contient la date, l'heure le lieu de l'évènement et quelques autres informations 
Dans "CalItem" j'ai des entrées qui décrivent les actions de cet évènement sous la forme
eventID = R20260901, rank = 1, action n°1
eventID = R20260901, rank = 2, action n°2
eventID = R20260901, rank = 3, action n°3

Je cherche à obtenir pour chaque entrée du calendrier les informations contenus dans la table Calendrier plus un élément itemCount qui contient le nombre des actions à effectuer pour chaque évènement.
Mon SQL actuel:

SELECT DISTINCT
		c.eventID as id, `eventType`, ` `startTime`, `endTime`, `subject`, addressID` as locationID,
 COUNT(SELECT ci.rank FROM CalItems AS ci WHERE ci.eventID = c.eventID) AS itemCount
		FROM Calendar as c
		WHERE DATE(`startTime`) BETWEEN '2026-09-01' AND '2026-09-30'
		ORDER BY `startTime`
			;

Cette syntaxe est erronée mais je n'arrive pas à trouver la bonne syntaxe pour la ligne "COUNT...."
Merci de votre aide Modifié par PapyJP (25 Aug 2026 - 10:22)</content:encoded>
		<pubDate>Tue, 25 Aug 2026 10:22:28 +0200</pubDate>
		<dc:date>2026-08-25T10:22:28+02:00</dc:date>
		<dc:creator>PapyJP</dc:creator>
		<dc:subject>[Résolu] Problème de SQL</dc:subject>
		<link>https://forum.alsacreations.com/topic-20-91709-1.html</link>
		<guid>https://forum.alsacreations.com/topic-20-91709-1.html</guid>
	</item>
	<item>
		<title>[captcha] je ne suis pas un robot</title>
		<description>Salut tout le monde, 

un super captcha  (ça rappelle une certaine expérience)

https://www.youtube.com/playables/UgkxHdkwpf63wV7pQvaimwWCkJfcrELLrJmJ Modifié par Niuxe (19 Aug 2026 - 02:38)</description>
		<content:encoded>Salut tout le monde, 

un super captcha  (ça rappelle une certaine expérience)

https://www.youtube.com/playables/UgkxHdkwpf63wV7pQvaimwWCkJfcrELLrJmJ Modifié par Niuxe (19 Aug 2026 - 02:38)</content:encoded>
		<pubDate>Wed, 19 Aug 2026 02:36:22 +0200</pubDate>
		<dc:date>2026-08-19T02:36:22+02:00</dc:date>
		<dc:creator>Niuxe</dc:creator>
		<dc:subject>[captcha] je ne suis pas un robot</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91708-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91708-1.html</guid>
	</item>
	<item>
		<title>[Résolu] Drag and Drop (suite) : texte extérieur</title>
		<description>Bonjour à tous
Je suis toujours en train d'apprendre les arcanes du DnD avec mon programme de test.
Je cherche à récupérer un texte dans un fichier texte et à le dropper dans une zone de ma page de test.</description>
		<content:encoded>Bonjour à tous
Je suis toujours en train d'apprendre les arcanes du DnD avec mon programme de test.
Je cherche à récupérer un texte dans un fichier texte et à le dropper dans une zone de ma page de test. Le résultat est qu'au moment du drop le texte est intercepté par le navigateur (FireFox) qui le considère comme l'adresse d'une page devant remplacer la page de test.
y a-t-il un moyen d'obtenir ce que je cherche à faire, c'est à dire récupérer ce texte dans la méthode drop attachée à ma zone?</content:encoded>
		<pubDate>Mon, 10 Aug 2026 13:10:27 +0200</pubDate>
		<dc:date>2026-08-10T13:10:27+02:00</dc:date>
		<dc:creator>PapyJP</dc:creator>
		<dc:subject>[Résolu] Drag and Drop (suite) : texte extérieur</dc:subject>
		<link>https://forum.alsacreations.com/topic-5-91705-1.html</link>
		<guid>https://forum.alsacreations.com/topic-5-91705-1.html</guid>
	</item>
	<item>
		<title>Mes Programmes</title>
		<description>Bonjour à tous !

Je suis un développeur indépendant et je voulais vous présenter quelques logiciels que j’ai créés pour Windows. J’ai réalisé chaque programme moi-même en VB.NET, en mettant l’accent</description>
		<content:encoded>Bonjour à tous !

Je suis un développeur indépendant et je voulais vous présenter quelques logiciels que j’ai créés pour Windows. J’ai réalisé chaque programme moi-même en VB.NET, en mettant l’accent sur la simplicité et la facilité d’utilisation.

Voici quelques-uns de mes projets :

* Tarot, application qui tire les cartes
* Zoya, un assistant IA.
* Pile ou Face.
* Roche, Papier, Ciseaux.
* Marguerite, comment savoir si votre coup de cœur vous aime

Si vous avez des commentaires, des idées d’amélioration ou des questions, je serais ravi d’en discuter. Vos avis m’aident énormément à faire évoluer mes projets.

Si certains logiciels vous intéressent, ils sont disponibles sur mon site :
www.mesprogrammes.ca

Merci d’avoir pris le temps de regarder ! Modifié par Felipe (06 Aug 2026 - 18:05)</content:encoded>
		<pubDate>Thu, 06 Aug 2026 14:53:34 +0200</pubDate>
		<dc:date>2026-08-06T14:53:34+02:00</dc:date>
		<dc:creator>JGP</dc:creator>
		<dc:subject>Mes Programmes</dc:subject>
		<link>https://forum.alsacreations.com/topic-18-91701-1.html</link>
		<guid>https://forum.alsacreations.com/topic-18-91701-1.html</guid>
	</item>
	<item>
		<title>LAMP : pas de fichier index.php avec la liste des sites installes</title>
		<description>Salut

J'ai installé LAMP en local, mais je n'ai pas de fichier index.php avec la liste des sites installés en local. J'ai qu'un fichier index.html, la page par défaut d'Apache. J'avais déjà installé</description>
		<content:encoded>Salut

J'ai installé LAMP en local, mais je n'ai pas de fichier index.php avec la liste des sites installés en local. J'ai qu'un fichier index.html, la page par défaut d'Apache. J'avais déjà installé LAMP sur un autre ordi et il me semble qu'il y avait un fichier index.php, et la liste des sites. Aurais-je raté une étape à l'installation ?</content:encoded>
		<pubDate>Tue, 04 Aug 2026 11:23:34 +0200</pubDate>
		<dc:date>2026-08-04T11:23:34+02:00</dc:date>
		<dc:creator>schtroumph</dc:creator>
		<dc:subject>LAMP : pas de fichier index.php avec la liste des sites installes</dc:subject>
		<link>https://forum.alsacreations.com/topic-1-91700-1.html</link>
		<guid>https://forum.alsacreations.com/topic-1-91700-1.html</guid>
	</item>
	<item>
		<title>[Résolu] Souci d'utilisation de tableau json en variable globale</title>
		<description>Bien le bonjour à vous et je demande votre indulgence si je ne suis pas clair, je suis nouveau sur ce forum et j'apprends la programmation html, css, php, mysql et javascript, ce dernier langage me donnant</description>
		<content:encoded>Bien le bonjour à vous et je demande votre indulgence si je ne suis pas clair, je suis nouveau sur ce forum et j'apprends la programmation html, css, php, mysql et javascript, ce dernier langage me donnant du fil à retordre.

Pour apprendre, je transforme à ma sauce et en local, un javascript de gestion de taches. Les infos sont données par les utilisateurs de la maison et complètent un tableau json qui est manipulé (ajout, modification d'état, modification d'intitulé, suppression) par différentes fonctions au sein de ce script (jusqu'ici, tout fonctionne bien).
Ce script était prévu pour une sauvegarde en "localstorage". Chose que j'ai modifié pour le faire dans un fichier spécifique par l'intermédiaire de PHP (Là aussi tout fonctionne).
Le souci arrive lors de la récupération de ces infos. J'arrive à les récupérer par la fonction fetch mais sorti de cette fonction, la manipulation du tableau ne fonctionne plus car je n'arrive pas à en faire une variable globale utilisable dans tout le script et donc hors de la fonction fetch.

Voici les codes:
-&gt; le fichier save.json (sauvegarde du tableau)




-&gt; Le fichier script.js (gestion  du tableau json)

// Récupération du fichier json
fetch('save.json')
  .then(response =&gt; response.json())
  .then(todos =&gt; {
    console.log(todos);
  })

/* Ici j'aimerais pouvoir utiliser "todos" dans tout le script */

// Ajoute une tache dans la liste
function addTodo(){
  const input = document.getElementById("todoInput");
  const text = input.value.trim();
  if(text){
    const todo = {
      id: Date.now(),
      text: text,
      state: "aFaire",
      timestamp: new Date()
    };
    todos.push(todo); // ajoute la nouvelle tache au tableau todos
    saveTodos(); // sauvegarde du changement
    input.value = ""; 
    renderTodos(); // Rafraîchissement de la liste todos
  }
}

// Efface une tache de la liste
function deleteTodo(id){
  todos = todos.filter(todo =&gt; todo.id !== id); // efface toute l'info correspondant à cet id
  saveTodos(); // sauvegarde du changement
  renderTodos();  // Rafraîchissement de la liste todos
}


Dans toutes les fonctions du script je travaille sur la variable "todos" qui est le tableau json au sein du script. Et je n'arrive pas à comprendre comment affecter la variable "data" récupérée par "fetch" à la variable "todos" que j'utilise partout ailleurs en global.

Merci d'avance pour votre aide Modifié par Revetoile (03 Aug 2026 - 22:47)</content:encoded>
		<pubDate>Sun, 02 Aug 2026 15:15:23 +0200</pubDate>
		<dc:date>2026-08-02T15:15:23+02:00</dc:date>
		<dc:creator>Revetoile</dc:creator>
		<dc:subject>[Résolu] Souci d'utilisation de tableau json en variable globale</dc:subject>
		<link>https://forum.alsacreations.com/topic-5-91699-1.html</link>
		<guid>https://forum.alsacreations.com/topic-5-91699-1.html</guid>
	</item>
	<item>
		<title>Jeu de lettres</title>
		<description>Il y a une vingtaine d’années, j’étais venu sur le site et un sympathique contributeur m’avait concocté un petit script pour un exercice de lettres que je voulais proposer à mes élèves.
Le script fonctionnait</description>
		<content:encoded>Il y a une vingtaine d’années, j’étais venu sur le site et un sympathique contributeur m’avait concocté un petit script pour un exercice de lettres que je voulais proposer à mes élèves.
Le script fonctionnait super et  l’exercice aussi!


#!/bin/bash
 
mot=$1
 
m=$(sed 's/./&amp; /g;s/ $//' &lt;&lt;&lt;$mot)
motif=$(echo "$m" | awk '(FNR==NR){a=$2;next} {printf("");for (i=1;i&lt;=NF;i++) if (a!="") printf("",a); else printf("",$i); printf("\n");}' conversion.txt - )
 
if ! grep -i "$motif" dictionnaire.txt
then
        echo "Aucun mot ne sied."
fi



Si c’est possible, je cherche maintenant  une variation.
Je ne vous explique pas l’exercice en entier… la partie de lettres n’étant que l’entrée en matière.

Le principe de départ d'il y a 20 ans: 
Chaque lettre de l’alphabet a différentes déclinaisons possibles (fichier conversion.txt).
Je choisis un mot quelconque.
Le script me donne toutes les mots du dictionnaire  (fichier dictionnaire.txt) qui contiennent le mot choisi ou toutes ses variations 
L’ordre des lettres du mot choisi et ses variations ne doit pas changer.

Exemple: je choisis le mot « chat » 
Dans mon fichier conversion, j’ai les variations possibles:   a= a,c,y     c= c,j,t,n,q,u      h= h,r.       t= t,x,w
Je lance le script et y a 85 mots qui en résultent, tous contenant le mot chat ou une de ses variations: achat, achats, administrateur, administrateurs, administratif, administratifs, administration, administrations, administrative, administratives, aristocrate etc.
Il ont tous au minimum 4 lettres.

Il me faudrait donc un nouveau script du même genre que le précédent.
Le nouveau principe:
Chaque lettre de l’alphabet a différentes déclinaisons possibles (fichier conversion.txt).
Je choisis un mot quelconque.
Le script me donne tous les mots du dictionnaire  (fichier dictionnaire.txt) qui sont contenus dans le mot choisi ou dans ses variations.
L’ordre des lettres du mot choisi et ses variations ne doit pas changer.

La différence entre les 2 versions réside dans   « qui contiennent » de la version de départ et « qui sont contenus » de la nouvelle version !

Exemple: toujours le mot « chat » 
Dans mon fichier conversion, j’ai  toujours les mêmes variations possibles:   a= a,c,y     c= c,j,t,n,q,u      h= h,r.       t= t,x,w
Iil n’y aura que des mots de 4 lettres au maximum.
Du coup,  j’ai fait ça à la main. Il y a le mot chat et puis that et cry (ouais, c’est en anglais mais mes élèves ont 14/15 ans, ça pose pas de problème)
C’est sûr qu’avec des mots comme « néandertaliens » ça sera plus coton!

J’espère être assez clair et pas trop long.
Ciao à tous et encore et toujours bravo pour le site et sa longévité</content:encoded>
		<pubDate>Mon, 27 Jul 2026 15:18:08 +0200</pubDate>
		<dc:date>2026-07-27T15:18:08+02:00</dc:date>
		<dc:creator>Grocorico</dc:creator>
		<dc:subject>Jeu de lettres</dc:subject>
		<link>https://forum.alsacreations.com/topic-1-91697-1.html</link>
		<guid>https://forum.alsacreations.com/topic-1-91697-1.html</guid>
	</item>
	<item>
		<title>Impossible connexion à LinkedIn. Ils exigent ma carte d'identité</title>
		<description>Salut à tous,

Je viens partager avec vous une mésaventure numérique qui vire à l'absurde. Depuis une semaine, je suis enfermé dehors de mon compte LinkedIn. connexion manuel refusée, connexion automatique</description>
		<content:encoded>Salut à tous,

Je viens partager avec vous une mésaventure numérique qui vire à l'absurde. Depuis une semaine, je suis enfermé dehors de mon compte LinkedIn. connexion manuel refusée, connexion automatique via gmail refusé : récupération mot de passe erreur 404. erreur 400, erreur, erreur, etc., captcha en boucle... le grand classique.

Jusqu'ici, rien de bien original. Mais voilà le twist : pour « vérifier mon identité » et me rendre l'accès, LinkedIn exige une copie de ma carte d'identité nationale.

Pas mon CV (pourtant bien rempli), pas mon numéro de téléphone (affiché publiquement sur ma bannière depuis des mois), pas une question de sécurité. Non. Ma CNI.

Comme si j'allais confier un document aussi sensible à une plateforme qui n'arrive même pas à gérer un simple login sans erreur 400. Un vol d'identité peut ruiner une vie, et je ne confie ma CNI qu'à ceux qui ont le droit de la voir : la police, la justice. Pas à un réseau social qui se prend pour un commissariat.

Après une semaine de combat, j'ai eu droit à :

- Une multitude d'interlocuteurs (ou de robots) qui répètent « ta carte d'identité, et rien d'autre » en boucle.
- Un agent qui m'a suggéré de passer par un notaire public. Ni plus, ni moins. 
- Une fin de non-recevoir polie, mais ferme : sans CNI, pas de compte. Et pas de suppression non plus (à ce stade, je demande la suppression du compte).

J'ai donc décidé de ne plus discuter et de passer à l'action : signalement à la CNIL, contact avec La Quadrature du Net, et un petit post sur les réseaux sociaux pour prévenir les copains. Parce qu'exiger une CNI pour un compte gratuit, c'est non seulement absurde, mais aussi contraire au RGPD (consentement forcé, minimisation des données =&gt; article 5 et article 7).

Bref, si vous avez des soucis avec LinkedIn, bon courage. Déjà avoir un interlocuteur, ça va être compliqué. Mais vous allez parler à des murs. Et si un jour on vous demande votre CNI pour un service gratuit, rappelez-vous : vous n'êtes pas chez les flics. Modifié par Niuxe (20 Jul 2026 - 22:32)</content:encoded>
		<pubDate>Fri, 17 Jul 2026 19:04:52 +0200</pubDate>
		<dc:date>2026-07-17T19:04:52+02:00</dc:date>
		<dc:creator>Niuxe</dc:creator>
		<dc:subject>Impossible connexion à LinkedIn. Ils exigent ma carte d'identité</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91695-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91695-1.html</guid>
	</item>
	<item>
		<title>[modélisation]: DrawDB</title>
		<description>Salut tout le monde, 

Je viens de découvrir une petite app pour modéliser une database  drawdb

J'ai fait quelques tests. Ça a l'air pas si mal. (pour créer une foreign key, ajouter un champ et glisser</description>
		<content:encoded>Salut tout le monde, 

Je viens de découvrir une petite app pour modéliser une database  drawdb

J'ai fait quelques tests. Ça a l'air pas si mal. (pour créer une foreign key, ajouter un champ et glisser déposer (disc to disc). 

Bon test</content:encoded>
		<pubDate>Sun, 28 Jun 2026 15:29:54 +0200</pubDate>
		<dc:date>2026-06-28T15:29:54+02:00</dc:date>
		<dc:creator>Niuxe</dc:creator>
		<dc:subject>[modélisation]: DrawDB</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91692-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91692-1.html</guid>
	</item>
	<item>
		<title>[Résolu] (LAMP) Akeeba Backup Joomla : impossible de choisir un disque</title>
		<description>Salut

Après des soucis sous Winsows 10, je suis (enfin) passé à Linux Mint Debian et donc LAMP pour gérer les sites en local sous Joomla. J'ai installé un site, fait des mises à jours et j'ai voulu</description>
		<content:encoded>Salut

Après des soucis sous Winsows 10, je suis (enfin) passé à Linux Mint Debian et donc LAMP pour gérer les sites en local sous Joomla. J'ai installé un site, fait des mises à jours et j'ai voulu régler Akeeba Backup pour que les sauvegardes se fassent dans un dossier d'un de mes disques durs externes. Ceux-ci se trouvent dans /media/nomutilisateur/nomdudisquedur. Or, dans Akeeba Backup j'arrive bien dans /media/nomutilisateur, mais les disques durs externes n'apparaissent pas !

Joomla 6.1.1
Akeeba Backup 10.3.4</content:encoded>
		<pubDate>Mon, 22 Jun 2026 11:42:23 +0200</pubDate>
		<dc:date>2026-06-22T11:42:23+02:00</dc:date>
		<dc:creator>schtroumph</dc:creator>
		<dc:subject>[Résolu] (LAMP) Akeeba Backup Joomla : impossible de choisir un disque</dc:subject>
		<link>https://forum.alsacreations.com/topic-20-91691-1.html</link>
		<guid>https://forum.alsacreations.com/topic-20-91691-1.html</guid>
	</item>
	<item>
		<title>Recherche d'un contributeur pour finaliser le logo de Brivacia AGPLv3</title>
		<description>Bonjour,

Je développe actuellement Brivacia, un outil de statistiques web open source sous licence AGPLv3.

Le projet est déjà fonctionnel et utilisé sur mes propres sites. Il me reste principalement</description>
		<content:encoded>Bonjour,

Je développe actuellement Brivacia, un outil de statistiques web open source sous licence AGPLv3.

Le projet est déjà fonctionnel et utilisé sur mes propres sites. Il me reste principalement quelques graphiques à ajouter, la page À propos à terminer et la création du logo définitif.

La philosophie de Brivacia est simple :

Mesurer l'activité d'un site sans chercher à suivre individuellement ses visiteurs.

## Aperçu du projet

https://i.ibb.co/PZc9ksHd/dashboard-sombre.jpg
https://i.ibb.co/3mX4pXn5/dashboard-clair.jpg

## Ce qui différencie Brivacia

Contrairement à de nombreux outils analytics, Brivacia ne cherche pas à construire un profil visiteur.

Par exemple :

- aucune adresse IP complète n'est stockée ;
- aucun profil visiteur n'est créé ;
- les pages vues ne sont jamais associées à un visiteur particulier ;
- la géolocalisation se limite au pays et peut être désactivée.

J'ai même ajouté une page permettant aux visiteurs de voir exactement ce que le site connaît (ou ne connaît pas) à leur sujet :

https://i.ibb.co/spnf5QZ5/modal.png

## Exemple de graphique actuellement utilisé

La couleur bleue #1d9bf0 visible ici est probablement celle qui sera reprise pour la courbe analytics du futur logo :

https://i.ibb.co/Kp87gd5D/graph.png

## Ce que je recherche

Je cherche une personne à l'aise avec :

- Inkscape ;
- Affinity ;
- Illustrator ;
- Gimp ;
- ou tout autre outil similaire.

L'objectif est de créer le logo officiel du projet.

## Ressources déjà disponibles

Le logo historique de breat.fr existe depuis de nombreuses années et doit être conservé tel quel.

Au-delà de son aspect visuel, ce B est utilisé depuis longtemps sur mes projets et fait partie de leur identité. Je souhaite donc qu'il reste l'élément central du futur logo de Brivacia.

https://i.ibb.co/KjqLNRNh/logo.png

J'ai également réalisé un mockup très rapide sous Affinity afin d'illustrer l'idée générale recherchée :

https://i.ibb.co/HLRfPvBL/mockup.png

?? Le mockup sert uniquement à expliquer le concept. Le but n'est évidemment pas de reproduire ce rendu.

L'idée est la suivante :

- le B représente l'héritage de breat.fr ainsi que le B de Brivacia ;
- la courbe bleue représente les statistiques / visites ;
- le bouclier représente la limite volontaire imposée à la collecte d'informations.

Le B ne doit pas être un simple élément décoratif.

J'imagine une courbe analytics qui pénètre dans le B par l'une de ses ouvertures, circule à travers celui-ci puis en ressort. Cette interaction doit symboliser le fait que les visites sont comptabilisées par Brivacia.

Après avoir traversé le B, la courbe est ensuite stoppée par le bouclier avec un léger impact visible, illustrant la limite volontaire imposée à la collecte d'informations et l'absence de suivi individuel des visiteurs.

Le rendu final est bien entendu libre tant que cette idée générale reste reconnaissable.

Je dispose également du SVG du bouclier servant de base de réflexion (modifiable librement).

https://lucide.dev/icons/shield

## Livrables souhaités

- un logo principal (grand format) ;
- une version simplifiée pour favicon / footer / petites tailles ;
- les sources modifiables (SVG et/ou format natif du logiciel utilisé).

Je souhaite absolument récupérer les sources afin d'éviter de reproduire la situation de mon ancien logo dont j'ai malheureusement perdu les fichiers de travail il y a longtemps.

## Contrepartie

Je n'ai malheureusement pas de budget à consacrer à cette partie du projet.

En revanche, je peux proposer :

- un crédit permanent dans la page À propos de Brivacia ;
- un lien vers votre site, portfolio ou réseau social.

Si le projet vous intéresse, je peux fournir davantage de captures, le brief complet ainsi que les ressources existantes.

Merci d'avance ????

PS : Je suis un développeur amateur, pas un graphiste. J'ai une idée assez précise de ce que le logo doit raconter, mais pas les compétences nécessaires pour lui donner le rendu qu'il mérite.</content:encoded>
		<pubDate>Sun, 21 Jun 2026 12:23:58 +0200</pubDate>
		<dc:date>2026-06-21T12:23:58+02:00</dc:date>
		<dc:creator>Breat</dc:creator>
		<dc:subject>Recherche d'un contributeur pour finaliser le logo de Brivacia AGPLv3</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91690-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91690-1.html</guid>
	</item>
	<item>
		<title>Plusieurs extensions pour les IDE de JetBrains hackés</title>
		<description>Bonjour tout le monde, 

Plusieurs extensions pour les IDE de JetBrains ont été prises en flagrant délit de vol de clés d'IA

Bonne lecture</description>
		<content:encoded>Bonjour tout le monde, 

Plusieurs extensions pour les IDE de JetBrains ont été prises en flagrant délit de vol de clés d'IA

Bonne lecture</content:encoded>
		<pubDate>Sun, 21 Jun 2026 11:18:30 +0200</pubDate>
		<dc:date>2026-06-21T11:18:30+02:00</dc:date>
		<dc:creator>Niuxe</dc:creator>
		<dc:subject>Plusieurs extensions pour les IDE de JetBrains hackés</dc:subject>
		<link>https://forum.alsacreations.com/topic-9-91689-1.html</link>
		<guid>https://forum.alsacreations.com/topic-9-91689-1.html</guid>
	</item>
	<item>
		<title>[Résolu] Drag and Drop</title>
		<description>Bonjour à tous
Cela fait pas mal de temps que je n'ai pas programmé de fonction drag and drop et j'ai du mal à m'en sortir, d'autant que la dernière fois que je l'ai  fait (il y a au moins 10 ans) la</description>
		<content:encoded>Bonjour à tous
Cela fait pas mal de temps que je n'ai pas programmé de fonction drag and drop et j'ai du mal à m'en sortir, d'autant que la dernière fois que je l'ai  fait (il y a au moins 10 ans) la version de JavaScript n'était pas la même.
L'objectif: changer l'ordre des li dan un ul.
Auriez vous un modèle de code à me proposer ?
Merci de votre aide.</content:encoded>
		<pubDate>Thu, 11 Jun 2026 17:35:21 +0200</pubDate>
		<dc:date>2026-06-11T17:35:21+02:00</dc:date>
		<dc:creator>PapyJP</dc:creator>
		<dc:subject>[Résolu] Drag and Drop</dc:subject>
		<link>https://forum.alsacreations.com/topic-5-91686-1.html</link>
		<guid>https://forum.alsacreations.com/topic-5-91686-1.html</guid>
	</item>
	<item>
		<title>Problème d'installation de WAMP64</title>
		<description>Bonjour, 
Après une réinstallation suivant les directives mentionnées, j'ai pu recharger un fichier SQL, que j'accède sans problème via phpadmin  root et sans mode passe.

Ma question le lancement de</description>
		<content:encoded>Bonjour, 
Après une réinstallation suivant les directives mentionnées, j'ai pu recharger un fichier SQL, que j'accède sans problème via phpadmin  root et sans mode passe.

Ma question le lancement de test php. 
j'ai le test de 'hello world' et une page HTML simple et un appel en php.
les 2 fichiers sont dans le rep www/project
J'ai bien 'local host'  et créé un autre avec une adresse IP 127.0.0.5

Lorsque je lance local host hello.php  ou http 127.0.0.5  hello.php
L'affichage obtenu est le détail complet du contenu du fichier .
J'en déduit que j'ai du rater une instruction.
Merci de m'avoir lu
guybon Modifié par guybo (08 Jun 2026 - 12:25)</content:encoded>
		<pubDate>Mon, 08 Jun 2026 12:24:21 +0200</pubDate>
		<dc:date>2026-06-08T12:24:21+02:00</dc:date>
		<dc:creator>guybo</dc:creator>
		<dc:subject>Problème d'installation de WAMP64</dc:subject>
		<link>https://forum.alsacreations.com/topic-1-91684-1.html</link>
		<guid>https://forum.alsacreations.com/topic-1-91684-1.html</guid>
	</item>
</channel>
</rss>
