IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage catalogue et formulaire d'édition d'articles PHP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut Affichage catalogue et formulaire d'édition d'articles PHP
    Je suis débutant et c'est la première fois que je m'inscris sur un forum... Merci à tous pour ce forum... J'espère ne pas faire d'impair!
    j'ai construit un "site/blog" avec 10 catégories alimentées par des formulaires -> bases de données (id auto, dessins, sculptures, musique, expression etc.. )

    je voudrais pouvoir modifier ensuite certaines tables de ces bases (titre, commentaire,.) simplement à partir d'un tableau qui me servirait de 'catalogue et suivi catalogue de mes oeuvres . j'ai trouvé cette discussion:

    https://www.developpez.net/forums/d1...he-simple-bdd/
    J'ai cherché à comprendre et adapter mais Je bloque. page blanche... comment envoyer et récupérer les $post, comment lancer l'update de la table? (en plus je n'ai pas les erreurs : pas d'accès au serveur d'hébergement de mon site)
    Je poste ces débuts de codes.

    - recherche.php - (tableau de recherche souhait d'édition "en direct" et validation par bouton ou [entrée] dans la zone concernée.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8"/>
    	<title>Recherche</title>
    	<style>
    		table{width:100%;border-collapse:collapse}
    		table tr,table th,table td{border:1px solid black;}
    		table tr td{text-align:center;padding:1em;}
    	</style>
    </head>
    <body>
    	<?php include('concom.php');?>
    	<form method='post'>
    		<input type='number' placeholder='recherche' name="recherche_valeur"/>
    		<input type='submit' value="Rechercher"/>
    	</form>
    	<table>
    		<thead>
    			<tr><th>Id</th><th>Titre</th><th>Commentaire</th><th>Date</th></tr>
    		</thead>
    		<tbody>
    			<?php
    				$sql='select * from pictures';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where nom like :nom';
    					$params[':nom']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$connect->prepare($sql);
    				$resultats->execute($params);
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    					?>  <form name="inscription" method="post" action="chgtCom.php">
    						<tr>
    						<td><input type='number' value='<? echo$d['Id']?>'name="Id"</td>
    						<td><input type='textarea' value='<? echo $d['Titre']?>'name="titre"/></td>
    						<td><input type='textarea' value='<?  echo $d['Commentaire']?>' name="Commentaire"/></td>
    						<td><input type='textarea' value='<? echo $d['Date']?>' name="Date"/></td>
    						<input type="submit" name="valider" value="valider Id<?=$d['Id']?>"/>
    					    </form>
    						</tr>
    					<?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=4>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
    		</tbody>
    	</table>
    </body>
    </html>
    - code.php - (fichier récupération du submit et post update dans la table pictures.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
     
    $postId= $post ['Id'];
    $postTitre=$post ['Titre'];
    $postCommentaire=$post ['Commentaire'];
    $postDate=$post ['Date'];
     
     
         $connect = mysqli_connect("localhost", "utilsateur", "mdp", "ma_base"); 
      /* Vérification de la connexion */ 
       if (!$connect) { 
          echo "Échec de la connexion : ".mysqli_connect_error(); 
          exit(); 
       }  
      /* Vérification de la connexion */ 
     
     if(isset($_POST['valider']))
       if (!$connect) 
       { 
          echo "Échec de la connexion : ".mysqli_connect_error(); 
          exit(); 
       } 
        else
        {
        $query="UPDATE pictures SET Titre='$postTitre', Commentaire='$postCommentaire', Date='$postDate' WHERE id='$postId'";
        mysql_query($query);
        echo "Les modification ont été enregistrées dans la base de données";
        mysql_close();
        }
        else  
        { 
          echo "Érreur" ; 
          exit(); 
        }
     
    mysqli_close($connect);
    ?>
    - connexion.php - Il y a aussi un fichier de connexion PDO (je n'ai pas trop compris par rapport à if (!$connect)...) mais je chercherai avant d'éventuelles questions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    //connection_database.php
     
       $connect = new PDO('mysql:host=localhost;dbname=ma_base', 'utilisateur, 'mdp',[
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
     
    ?>
    Un petit rendu du tableau souhaité pour modifier les articles.
    Nom : tableau.jpg
Affichages : 555
Taille : 42,9 Ko
    Si c'est possible, j'en créerai pour chaque catégorie.

    Voili ,voilà; J'espère ne pas être trop ridicule et que quelqu'un pourra me mettre sur la bonne voie...
    Au plaisir de vous lire,

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 499
    Par défaut
    Salut,

    Déjà tu utilises deux API, PDO et Mysqli, ce qui n'est pas bon. il faut choisir seulement 1 mais pas les deux en même temps.

    En parcourant tes scripts je commence par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['recherche_valeur'])){
    	$sql.=' where nom like :nom';
    	$params[':nom']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    }
    Tu n'as pas de colonne "nom" dans la table "pictures", tu as plutôt Id,Titre,Commentaire,Date et donc si tu veux rechercher par Titre par exemple il faut remplacer "nom" par "Titre" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['recherche_valeur'])){
    	$sql.=' where Titre like :titre';
    	$params[':titre']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    }
    Et en ce qui concerne un bouton pour chaque ligne je ne te conseille pas.
    deux solutions possibles :
    • Ajouter une 5éme colonne "Actions" à la fin qui contiendra les boutons d'actions "supprimer"/"modifier"
    • Ajouter une 5éme colonne "Case à Cocher" dans chaque ligne, et lorsqu'on soumet le formulaire on ne modifie/supprime que les lignes cochées.


    Le code complet de la première solution qui fonctionne en utilisant l'attribut form="..." (du HTML5) pour chaque input, voir l'exemple sur w3schools.

    index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8"/>
    	<title>Recherche</title>
    	<style>
    		table{width:100%;border-collapse:collapse}
    		table tr,table th,table td{border:1px solid black;}
    		table tr td{text-align:center;padding:1em;}
    	</style>
    </head>
    <body>
    	<?php 
                    include('concom.php');
                    if ( !isset($connect) ){ //si $connect n'est pas défini, on affiche une erreur et on quitte le script
                         echo "Échec de la connexion"; 
                         exit(); 
                    } 
            ?>
    	<form method='post'>
    		<input type='text' placeholder='rechercher par titre...' name="recherche_valeur"/>
    		<input type='submit' value="Rechercher"/>
    	</form>
    	<table>
    		<thead>
    		<!-- ajout d'une colonne Actions qui contiendra les boutons supprimer et modifier ...-->
    			<tr><th>Id</th><th>Titre</th><th>Commentaire</th><th>Date</th><th>Actions</th></tr>
    		</thead>
    		<tbody>
    			<?php
    				$sql='select * from pictures';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where Titre like :titre';
    					$params[':titre']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$connect->prepare($sql);
    				$resultats->execute($params);
                                    $compteur=0;
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    						$compteur++;
    					?>
    						<tr>
    						<!-- Normalement la colonne Id ne doit pas être modifiable ni visible si c'est une clé primaire !
    							les erreurs corrigées :
    							1- espace avant name="Id"
    							2-fermeture de l'input avec />
    							3- name="Titre" avec T majuscule
    							4- Erreur de syntaxe value='< ? echo ...?>', 
    								-soit avec (php) après ? et "echo" : < ?php echo $variable;?> 
    								-soit remplacer (php) par "=" mais sans "echo" < ?=$variable?>
    							5- le <input type="submit"> été mal placé, y'a pas de <td> parent !								
    						-->
    							<td>
    								<form id="form<?=$compteur;?>" name="inscription" method="post" action="chgtCom.php">
    									<input type='number' value='<?=$d['Id']?>' disabled />
    									<input type="hidden"  name="Id" value="<?=$d['Id']?>" />
    								</form>
    							</td>
    							<td>
    								<input form="form<?=$compteur;?>" type='textarea' name="Titre" value='<?=$d['Titre']?>' />
    							</td>
    							<td>
    								<input form="form<?=$compteur;?>" type='textarea' name="Commentaire" value='<?=$d['Commentaire']?>' />
    							</td>
    							<td>
                                                                   <!-- type="datetime-local" existe !, + bonus : conversion et affichage de la date au bon format -->
    								<input form="form<?=$compteur;?>" type='datetime-local' name="Date" value='<?php $date=new DateTime($d['Date']);echo $date->format('Y-m-d\TH:i:s');?>' />
    							</td>
    							<td>
    								<input form="form<?=$compteur;?>" type="submit" name="action" value="Modifier" />
    								<input form="form<?=$compteur;?>" type="submit" name="action" value="Supprimer" />
     
    							</td>
     
     
    						</tr>
    					<?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=5>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
    		</tbody>
    	</table>
    </body>
    </html>
    Le fichier de la modification en utilisant PDO de concom.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
    include "concom.php";
    if ( !isset($connect) ){ //si $connect n'est pas défini, on affiche une erreur et on quitte le script
          echo "Échec de la connexion"; 
          exit(); 
       } 
    else{
    	/* $_POST et pas $post */
    	$postId= $_POST['Id'];
    	$postTitre=$_POST['Titre'];
    	$postCommentaire=$_POST['Commentaire'];
    	$postDate=$_POST['Date'];
    	$action=$_POST['action']??""; /*l'opérateur ?? est équivalent à : if(isset($_POST['action']))$action=$_POST['action']; else $action=""; */ 
    	echo "id :".$postId.", action :".$action."<br />";
    	if(!empty($action)){
               /* Attention, il faut toujours préparer les requêtes quand on traite les variables $_POST ou $_GET, et ne jamais passer les variables en dur !*/
    	   if($action=="Modifier"){//procédure de modification 
    			$query="UPDATE pictures SET Titre=?, Commentaire=?, Date=? WHERE id=?";
    			$stmt=$connect->prepare($query);
    			$stmt->execute([$postTitre,$postCommentaire,$postDate,$postId]);
    			if($stmt->rowCount()>0){
    				header("location: index.php");//redirection vers la même page pour actualiser le tableau
    			}
    			else{
    				echo "Aucune modification n'a été effectuée !<br />";
    			}
    	   }else if($action=="Supprimer"){/* procédure de suppression ...*/
    			$query="delete from pictures where Id=?";
    			$stmt=$connect->prepare($query);
    			$stmt->execute([$postId]);
    			if($stmt->rowCount()>0){
    				header("location: index.php");
    			}
    			else{
    				echo "Aucune suppression n'a été effectuée !<br />";//redirection vers la même page pour actualiser le tableau
    			}
    	   }
     
    	}
    	else  
    	{ 
    	  echo "Aucune action !" ; 
    	  exit(); 
    	}	
    }
    $connect=null;
    Et le fichier concom.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php 
    try{
       $connect = new PDO('mysql:host=localhost;dbname=ma_base', 'nom_utilisateur', 'mot_de_passe',[
           PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
           PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
    }catch(PDOException $e){
    	echo "Erreur de connection :".$e->getMessage();
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    ...tu utilises deux API, PDO et Mysqli, ce qui n'est pas bon. il faut choisir seulement 1 mais pas les deux en même temps.
    Il faut choisir PDO.
    Point.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut Merci beaucoup Toufik83! et jreaux62 et petite question en +
    Bien. je note pour Pdo. Il faudra que je revoie toutes mes connexions dans mes pages alors...

    Un Grand Merci Toufik83!! C'est très clair. vraiment super

    Une ou deux petite question supplémentaire si je n'abuse pas de votre temps...

    - On cache l'Id (pour des raisons de sécurité?) mais peut-on l'intégrer dans la recherche (c'est la référence de chacune de mes créations). Sinon, Il faut alors que je fasse une table N° par exemple qui récupére l'Id clé primaire?

    J'ai mis un peu de temps à répondre, j'avais un souci de codage en utf-8. Mon serveur prend les modifications sans prendre en compte les caractères spéciaux et accents malgré la conversion de mes tables en utf-8.

    - J'ai donc récupéré la fonction de mon script qui me sert à poster mes article et l'ai appliquée aux variables comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postTitre=htmlentities($_POST['Titre']);
    Ça a l'air de fonctionner mais est-ce que la méthode est correcte?

    - Ensuite, je change un peu de "thème", je pensais que ce serait plus simple d'appliquer un dimensionnement automatique au textarea en html ou css. J'ai recherché, certains post parlent de fonctions, de js, Est-qu'il existe une solution "simple"? Sinon, je taperai mon commentaire à part avant de l'insérer pour éviter les err'edfurs. :-)

    Encore merci,

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Haberick Voir le message
    Il faudra que je revoie toutes mes connexions dans mes pages alors...
    Le script de connexion doit être mis dans un fichier externe, appelé via include() dans les pages.


  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 499
    Par défaut
    Citation Envoyé par Haberick Voir le message
    - On cache l'Id (pour des raisons de sécurité?)
    Je ne dis pas que c'est un problème de sécurité mais je ne vois aucun intérêt de montrer les id de ta table aux utilisateurs.

    Citation Envoyé par Haberick Voir le message
    mais peut-on l'intégrer dans la recherche (c'est la référence de chacune de mes créations).
    Oui, pour cela il faut modifier un peu la requête sql et ajouter les colonnes en question :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql.=' where Id like :valeur or Titre like :valeur';
    $params[':valeur']="%".addcslashes($_POST['recherche_valeur'],'_')."%";

    Par-contre, on a oublié de sécuriser les données à l'affichage avec htmlspecialchars (pour toutes les value="..."):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type='number' value='<?=htmlspecialchars($d['Id'])?>' disabled />
    <input type="hidden"  name="Id" value="<?=htmlspecialchars($d['Id'])?>" />

  7. #7
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut Quelques détails...
    - Parfait pour la requête de recherche! ...J'aurais pu réfléchir un peu plus...

    - Coté "htmlspecialchars", la fonction me crypte les commentaires que j'appelle sur la base...
    Est-ce que je peux l'appliquer plutôt à la réception sur l'autre fichier? Comme ça a l'air de fonctionner...

    - Une petite question s'était glissée dans mon dernier message. y-aurait-il un moyen d'ajuster la fenêtre de commentaire au contenu. J'ai trouvé des astuces en css (voir image) mais je ne vois pas comment faire pour intégrer les valeurs. Si on peut faire qqch sans ajouter une fonction ou autre... Sinon, tant pis; c'est déjà très bien grâce à vous.

    Nom : fenetre_texte.jpg
Affichages : 502
Taille : 49,2 Ko

    ...Après, je commence mes includes vers le fichier de connexion...Merci pour la lecture jreaux62, j'ai regardé un peu...

    Mais débutant, ça commence à faire bcp ces derniers mois... Je fatigue...

    Merci Beaucoup Beaucoup!

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 499
    Par défaut
    Salut,

    Apparemment tu as des erreurs html, une balise non fermée ou peut être autre chose que je ne peux pas savoir sans code. (vérifie l'html...)

    tout d'abord il faut corriger la balise input et mettre textarea :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <textarea form="form<?=$compteur;?>" name="Commentaire"></textarea>
    <!-- et PAS <input type="textarea" .... /> -->

    Pour ajuster la taille du textarea au contenu, je ne sais pas si c'est la meilleur solution mais tu peux utiliser l'attribut rows et définir un nombre de lignes dynamique en fonction de la longueur du tableau retourné par preg_split qui Éclate le commentaire par expression rationnelle selon le nombre de sauts de lignes :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <textarea form="form<?=$compteur;?>" name="Commentaire" rows='<?=count(preg_split("/\n|\r/",htmlspecialchars($d['Commentaire'])))?>'><?=htmlspecialchars($d['Commentaire'])?></textarea>

    Ou bien avec seulement avec explode sans expression régulière :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    count(explode("\r\n",htmlspecialchars($d['Commentaire'])))

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    L'Id n'est pas censé être modifiable.
    Affiche-le, sans input.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut C'est magnifique!. même si coté utf-8...
    -Ça marche nickel. Merci Toufik83! Au-dessus de mes attentes pour le formulaire.!! recadrage modifiable à la volée. Le style rss suit et tout!!!- Super!.

    - Par contre, j'ai un souci d'affichage utf-8.
    En fait, Quand dans ma table commentaire (utf8_unicode_ci) c'est affiché comme ça : "nouvelle image &ugrave;", c'est bon sur mon site qui appelle le commentaire.
    Quand on fait htmlspecialchars, ça s'affiche bien sur mes tables dans phpmyadmin mais pas sur le site.
    Tout est inversé.

    Quand on le force le codage avec htmlentites à la réception du $post et en envoyant dans la base. la base de donnée s'affiche comme ça : "nouvelle image &ugrave;" . donc ça marche sur le site! Je crains que le problème ne soit :

    ? Soit en amont niveau de ma baseMysql et là je n'ai pas d'accés avec mon hébergeur;
    ? Dans mon html avec un truc qui a foiré avec un vieux dreamweaver, mais je ne vois pas d'erreur. (j'ai fait une vérification d'encodage W3C, Il me trouve 2 balises "meta " mais identiquesalors que je n'en ai qu'une dans l'index... .) ;
    ? Ou encore dans formulaire d'envoi de mes posts qui balance mes posts en "htmlentities" (avec mes photos dédoublées miniature/originales pour optimiser le chargement avec une fonction...)
    Je crois que je vais laissé comme ça au risque de me perdre...vu mon niveau

    ... J'ai déjà eu déjà beaucoup de mal Et vous m'avez tous beaucoup aidé!


    En plus, j'ai encore un "chantier" en suivant xml/php pour comprendre les flux RSS et intégrer un fil plus tard...

    (et toujours les PDO include à intégrer sur mes pages... merci jreaux62)

    Bref, Merci merci!

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Haberick Voir le message
    ...dans ma table commentaire (utf8_unicode_ci) c'est affiché comme ça : "nouvelle image &ugrave;"...
    1-

    * AVANT l'enregistrement, on doit faire des vérification de validité des données (validité email, champs obligatoires,...) mais pas "transformer" les données.

    Tu peux corriger ta BDD avec html_entity_decode() (ou "à la main" ).


    2- A LIRE aussi :

  12. #12
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut
    Merci...
    c'est sûr qu'il vaut mieux privilégier une base propre pour le futur. mais je ne comprend pas.

    j'envoie des données en initialisant la base à la connexion (à priori si j'ai bien compris - PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" -)
    J'insère des données avec le formulaire. Elles s'affichent correctement dans le formulaire html.
    Elles sont envoyées normalement correctement ou en forçant l'utf-8. Elles apparaissent correctement dans ma base de donnée sur Phpmyadmin.
    Je fais appel à ces données dans mon fichier index.php d'affichage (avec doctype html ) et là quand j'affiche sur tous mes navigateurs et tous mes ordis. ça s'affiche mal.
    Pareil quand j'insère et j'édite en mode graphique directement sur phpMyadmin.

    Par contre, quand dans ma base c'est mal affiché, c'est bon, ça s'affiche bien sur le site. Je me plongerai dans les liens que tu m'envoies.

    ->?? Ça ne fait qu'un mois que je me suis lancé dans le code (html/php) et jai travaillé en local sur wamp. J'ai bcp bricolé au début.
    Est-ce que ça pourrait venir d'une mauvaise base (j'ai basculé quelques tables depuis latin_XX) dans mes bricolages du début.
    ça vaut le coup que je reprenne proprement toutes mes tables depuis le début? ça peut changer venir de là?

    Merci pour les liens! Je me plongerai dedans, mes réponses doi

  13. #13
    Membre à l'essai
    Homme Profil pro
    Artiste
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Artiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Par défaut Problème du post résolu!
    Bon Ben, super
    Merci Toufik83. Coté tableau formulaire. Trop beau . Ce sera super efficace pour gérer tout 'mon bazar' et mes catégories de création!.

    Et merci jreaux62 pour ces aiguillages et conseils avisés sur l'utf-8 et sur le PDO pour parfaire mes formulaires et mes connexions.
    J'ai du boulot. Je vais me plonger dans ces questions connexes, essayer de résoudre tout ça avant de faire perdre du temps aux autres...

    Je crois que je peux marquer le sujet comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Doublons sur affichage d'un formulaire en mode édition
    Par ACNTOURAINE dans le forum Contribuez
    Réponses: 2
    Dernier message: 26/03/2015, 14h43
  2. Pb d'affichage de sous formulaire
    Par Didi17 dans le forum Access
    Réponses: 7
    Dernier message: 28/10/2005, 03h48
  3. Une table --> 2 sous formulaires d'édition ?
    Par Neilos dans le forum IHM
    Réponses: 2
    Dernier message: 20/06/2005, 16h10
  4. Réponses: 6
    Dernier message: 19/05/2005, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo