Partie admin gérer base de donnée
Résolu
val
-
eternity63 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
eternity63 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un site avec une partie "admin" pour modifier les texte affichés via ma base de donnée.
Seulement le problème est que
le "titre" n'est pas modifié
Le "texte "est codé ex :
Voici mon code php avec dreamweaver :
et celui qui s'affiche dans ma page :
Merci d'avance pour votre aide
J'ai créé un site avec une partie "admin" pour modifier les texte affichés via ma base de donnée.
Seulement le problème est que
le "titre" n'est pas modifié
Le "texte "est codé ex :
• Le premier entretien est gratuit ; câ€(TM)est lâ€(TM)entretien de la naissance de lâ€(TM)idée, la nature de la demande. • Jâ€(TM)exerce ma profession dans le cadre strict de mes compétences, si jâ€(TM)estime quâ€(TM)une prestation qui mâ€(TM)est soumise requiert le concours dâ€(TM)un professionnel, jâ€(TM)orienterai mon client vers celui-ci (avocat, notaire, conseil juridique, etc…). • Devis gratuit. • Le travail est effectué après signature du devis accepté et signé. • Tarifs transparents (consultables).
Voici mon code php avec dreamweaver :
<?php require_once('../Connections/Ecrivain_public.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO texte_acc (titre, texte) VALUES (%s, %s)", GetSQLValueString($_POST['titre'], "text"), GetSQLValueString($_POST['texte'], "text")); mysql_select_db($database_Ecrivain_public, $Ecrivain_public); $Result1 = mysql_query($insertSQL, $Ecrivain_public) or die(mysql_error()); $insertGoTo = "mentions.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } mysql_select_db($database_Ecrivain_public, $Ecrivain_public); mysql_query("SET NAMES UTF8"); $query_mentions = "SELECT * FROM texte_acc"; $mentions = mysql_query($query_mentions, $Ecrivain_public) or die(mysql_error()); $row_mentions = mysql_fetch_assoc($mentions); $totalRows_mentions = mysql_num_rows($mentions); ?>
et celui qui s'affiche dans ma page :
<form method="post" name="form1" action="<?php echo $editFormAction; ?>"> <table align="center"> <tr valign="baseline"> <td nowrap align="right">Titre:</td> <td><input type="text" name="titre" value="<?php echo $row_mentions['titre']; ?>" size="32"></td> </tr> <tr valign="baseline"> <td nowrap align="right" valign="top">Texte:</td> <td><textarea name="texte" cols="50" rows="5"><?php echo $row_mentions['texte']; ?></textarea> </td> </tr> <tr valign="baseline"> <td nowrap align="right"> </td> <td><input type="submit" value="Insérer l'enregistrement"></td> </tr> </table> <input type="hidden" name="MM_insert" value="form1"> </form>
Merci d'avance pour votre aide
A voir également:
- Partie admin gérer base de donnée
- Base de registre - Guide
- Livebox admin - Guide
- Mot de passe admin - Guide
- Excel si cellule contient partie texte ✓ - Forum Excel
- Easywifi.config admin - Forum WiFi
10 réponses
Bonjour
Ce n'est pas quand vous allez exposer tout votre code qu'on saura vous aider.
Quel est le souci avec le titre ?
Et quelle partie du code est concernée ?
Ce n'est pas quand vous allez exposer tout votre code qu'on saura vous aider.
Quel est le souci avec le titre ?
Et quelle partie du code est concernée ?
Bonjour et merci pour votre réponse
En fait lorsque je vais dans mon admin pour modifier le texte d'accueil (par exemple) texte qui s'affiche depuis ma base de donnée. lorsque je clique sur enregistrer les modifs mon texte ressemble plus a rien exemple ci-dessus.
A la base il ressemble a ça AVANT:
Si je le modifie en rajoutant ex "essai" APRES:
Et là je ne vois pas comment éviter ces changement de caractères
Merci d'avance pour votre aide
En fait lorsque je vais dans mon admin pour modifier le texte d'accueil (par exemple) texte qui s'affiche depuis ma base de donnée. lorsque je clique sur enregistrer les modifs mon texte ressemble plus a rien exemple ci-dessus.
A la base il ressemble a ça AVANT:
Transparence : * Le premier entretien est gratuit ; c'est l'entretien de la naissance de l'idée, la nature de la demande. * J'exerce ma profession dans le cadre strict de mes compétences, si j'estime qu'une prestation qui m'est soumise requiert le concours d'un professionnel, j'orienterai mon client vers celui-ci (avocat, notaire, conseil juridique, etc...). * Devis gratuit. * Le travail est effectué après signature du devis accepté et signé. * Tarifs transparents (consultables).
Si je le modifie en rajoutant ex "essai" APRES:
essai modification rajout de texte • Le premier entretien est gratuit ; câ€(TM)est lâ€(TM)entretien de la naissance de lâ€(TM)idée, la nature de la demande. • Jâ€(TM)exerce ma profession dans le cadre strict de mes compétences, si jâ€(TM)estime quâ€(TM)une prestation qui mâ€(TM)est soumise requiert le concours dâ€(TM)un professionnel, jâ€(TM)orienterai mon client vers celui-ci (avocat, notaire, conseil juridique, etc…). • Devis gratuit. • Le travail est effectué après signature du devis accepté et signé. • Tarifs transparents (consultables).
Et là je ne vois pas comment éviter ces changement de caractères
Merci d'avance pour votre aide
Ce code est-il inclu (en dur) dans du PHP ou bien provient t-il d'une requête de base de données ?
Je pense qu'il faut utiliser une fonction pour applique le bon encodage...
Je pense qu'il faut utiliser une fonction pour applique le bon encodage...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il faut faire un truc du genre
SELECT CONVERT(mon_champ) using latin1 as monChamp
FROM TABLE
Quand j'ai à faire ça le problème est résolu.
Souvent c'est une fonction utilisée sur la chaine de caractère qui ne sait pas traiter l'encodage qui renvoie cette anomalie.
Si ça persiste.. Faites voir la requete + indiquer la version de mySQL..
SELECT CONVERT(mon_champ) using latin1 as monChamp
FROM TABLE
Quand j'ai à faire ça le problème est résolu.
Souvent c'est une fonction utilisée sur la chaine de caractère qui ne sait pas traiter l'encodage qui renvoie cette anomalie.
Si ça persiste.. Faites voir la requete + indiquer la version de mySQL..
Ok. Donc vous avez la réponse. Utiliser cette fonction CONVERT (indiqué plus hat) au niveau de la requete SQL qui renvoie l'anomalie
çà marche çà ?
mysql_query("SET NAMES UTF8");
$query_mentions = "SELECT * FROM texte_acc";
Il faut faire un truc comme j'ai indiqué...
SELECT CONVERT(mon_champ) using latin1 as monChamp
FROM TABLE
Aller vous avez la réponse bon courage
mysql_query("SET NAMES UTF8");
$query_mentions = "SELECT * FROM texte_acc";
Il faut faire un truc comme j'ai indiqué...
SELECT CONVERT(mon_champ) using latin1 as monChamp
FROM TABLE
Aller vous avez la réponse bon courage
oui cette fonction fonctionne bien mes textes venant de la base de donnée s'affichent correctement mais plus si je passe par l'admin.
Je pense que ça doit venir de ce code qui enregistre les données dans ma base :
j'ai tenté
Je pense que ça doit venir de ce code qui enregistre les données dans ma base :
$editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO texte_acc (titre, texte) VALUES (%s, %s)", GetSQLValueString($_POST['titre'], "text"), GetSQLValueString($_POST['texte'], "text")); mysql_select_db($database_Ecrivain_public, $Ecrivain_public); $Result1 = mysql_query($insertSQL, $Ecrivain_public) or die(mysql_error()); $insertGoTo = "mentions.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }
j'ai tenté
$editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO texte_acc (titre, texte) VALUES (%s, %s)", GetSQLValueString($_POST['titre'], "text", ENT_COMPAT, 'utf-8'), <-------- GetSQLValueString($_POST['texte'], "text", ENT_COMPAT, 'utf-8')); <------ mysql_select_db($database_Ecrivain_public, $Ecrivain_public); $Result1 = mysql_query($insertSQL, $Ecrivain_public) or die(mysql_error()); $insertGoTo = "mentions.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }
Bonsoir à tous
Ca avance, encore une petite erreur mais :
voici le texte modifié via l'admin (a comparer avec le premier en intitulé de mon post) :
Modification apporté à mon code :
en fait ça :
Mais j'ai des ? à la place des * et des '
est ce que ça pourrait venir de la fonction ?
Merci d'avance pour votre aide
Ca avance, encore une petite erreur mais :
voici le texte modifié via l'admin (a comparer avec le premier en intitulé de mon post) :
? Le premier entretien est gratuit ; c?est l?entretien de la naissance de l?idée, la nature de la demande. ? J?exerce ma profession dans le cadre strict de mes compétences, si j?estime qu?une prestation qui m?est soumise requiert le concours d?un professionnel, j?orienterai mon client vers celui-ci (avocat, notaire, conseil juridique, etc?). ? Devis gratuit. ? Le travail est effectué après signature du devis accepté et signé. ? Tarifs transparents (consultables).
Modification apporté à mon code :
$editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE texte_acc SET titre=%s, texte=%s WHERE id=%s", GetSQLValueString(utf8_decode($_POST['titre']), "text"), GetSQLValueString(utf8_decode($_POST['texte']), "text"), GetSQLValueString($_POST['id'], "int")); mysql_select_db($database_Ecrivain_public, $Ecrivain_public); $Result1 = mysql_query($updateSQL, $Ecrivain_public) or die(mysql_error()); $updateGoTo = "/mentions.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } mysql_select_db($database_Ecrivain_public, $Ecrivain_public); mysql_query("SET NAMES UTF8"); $query_texte_modif = "SELECT * FROM texte_acc"; $texte_modif = mysql_query($query_texte_modif, $Ecrivain_public) or die(mysql_error()); $row_texte_modif = mysql_fetch_assoc($texte_modif); $totalRows_texte_modif = mysql_num_rows($texte_modif);
en fait ça :
GetSQLValueString(utf8_decode($_POST['titre']), "text"), GetSQLValueString(utf8_decode($_POST['texte']), "text"),
Mais j'ai des ? à la place des * et des '
est ce que ça pourrait venir de la fonction ?
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
Merci d'avance pour votre aide
Bonjour à tous
je viens encore de passer encore quelques heures (de perdues) pour ma requête.
J'ai téléphoné à mon hébergeur 1&1 qui me dis que j'ai un encodage répété (2 fois) et que pour cela il faut que je fasse un débogage via methode "post"
Je suis allez là :
https://portail.polytechnique.edu/informatique/fr
Mais je n'ai pas réussi car rien compris (trop fatiguée je pense et trop dessus.. je bloque !)
Si quelqu'un pouvais m'aider à comprendre ?????!!!
Merci d'avance
ps: je suis novice en développement alors SVP pas de "essaies la méthode bidule du style machin" parce que cela résulterait encore à passer des heures sur Internet à trouver ce genre de "message codé à demi-mots" pour comprendre ce qu'on tente de me dire ! :$ merci
je viens encore de passer encore quelques heures (de perdues) pour ma requête.
J'ai téléphoné à mon hébergeur 1&1 qui me dis que j'ai un encodage répété (2 fois) et que pour cela il faut que je fasse un débogage via methode "post"
Je suis allez là :
https://portail.polytechnique.edu/informatique/fr
Mais je n'ai pas réussi car rien compris (trop fatiguée je pense et trop dessus.. je bloque !)
Si quelqu'un pouvais m'aider à comprendre ?????!!!
Merci d'avance
ps: je suis novice en développement alors SVP pas de "essaies la méthode bidule du style machin" parce que cela résulterait encore à passer des heures sur Internet à trouver ce genre de "message codé à demi-mots" pour comprendre ce qu'on tente de me dire ! :$ merci
Comme vous dites moderno31 ....J'avais la réponse... :p
TROUVE !!!!
C'était une broutille comme je l'avais soupçonnée.
mysql_query("SET NAMES UTF8"); je ne l'avais pas mis au bon endroit lors de mes essais.... Fatiguée la fille.
bonne journée à tous
TROUVE !!!!
C'était une broutille comme je l'avais soupçonnée.
$editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE texte_acc SET titre=%s, texte=%s WHERE id=%s", GetSQLValueString($_POST['titre'], "text"), GetSQLValueString($_POST['texte'], "text"), GetSQLValueString($_POST['id'], "int")); mysql_select_db($database_Ecrivain_public, $Ecrivain_public); mysql_query("SET NAMES UTF8"); $Result1 = mysql_query($updateSQL, $Ecrivain_public) or die(mysql_error()); $updateGoTo = "/mentions.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); }
mysql_query("SET NAMES UTF8"); je ne l'avais pas mis au bon endroit lors de mes essais.... Fatiguée la fille.
bonne journée à tous