Choisir le bon encodage
Dernière réponse : dans Programmation
Bonjour à tous,
je viens vous pour que vous m'éclairiez à propos de l'encodage de mes pages PHP.
J'utilise cette balise :
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
mais j'ai un problème avec les accents alors j'utilise utf-8
et là j'ai un autre problème c'est que les apostrophes sont remplacés par \'
L'autre souci c'est que j'ai un script PHP qui doit enregistrer des infos dans une BDD, le problème est que si ma clé primaire (en l’occurrence le titre de l'info) contient un apostrophe l'info ne s'enregistre pas dans la BDD.
Est-ce que je dois changer dans PHPMyAdmin l'interclassement (latin1_swedish_ci).
Pouvez-vous m'aider et me donner une solution ?
Merci d'avance
je viens vous pour que vous m'éclairiez à propos de l'encodage de mes pages PHP.
J'utilise cette balise :
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
mais j'ai un problème avec les accents alors j'utilise utf-8
et là j'ai un autre problème c'est que les apostrophes sont remplacés par \'
L'autre souci c'est que j'ai un script PHP qui doit enregistrer des infos dans une BDD, le problème est que si ma clé primaire (en l’occurrence le titre de l'info) contient un apostrophe l'info ne s'enregistre pas dans la BDD.
Est-ce que je dois changer dans PHPMyAdmin l'interclassement (latin1_swedish_ci).
Pouvez-vous m'aider et me donner une solution ?
Merci d'avance
Autres pages sur : choisir bon encodage
Lassé par la pub ? Créez un compte
Il faut que tu harmonises tout.
Si tes headers sont en ISO-8859, tout doit être en ISO-8859. Et pour tes accents, utilises des entités HTML (é = é, ...).
Si tu veux être en UTF-8, utilises UTF-8 partout, même (et surtout) dans tes headers.
Au niveau MySQL, interclassement utf8_general_ci, et il y a la commande MySQL "SET NAMES utf8" qui est très pratique.
Et au niveau PHP, l'utilisation de utf8_encode().
Si tes headers sont en ISO-8859, tout doit être en ISO-8859. Et pour tes accents, utilises des entités HTML (é = é, ...).
Si tu veux être en UTF-8, utilises UTF-8 partout, même (et surtout) dans tes headers.
Au niveau MySQL, interclassement utf8_general_ci, et il y a la commande MySQL "SET NAMES utf8" qui est très pratique.
Et au niveau PHP, l'utilisation de utf8_encode().
Merci pour ta réponse !
A quoi sert la commande "SET NAMES utf8" et utf8_encode() ?
Mon problème c'est que j'affiche des infos qui viennent d'une BDD donc je ne peux pas directement remplacer les é par des é, est-ce que justement la fonction utf8_encode sert à ça ?
Autre question j'ai un formulaire PHP qui rentre des infos dans une BDD et j'utilise ces infos après pour les afficher mais je rencontre quelques problèmes avec les apostrophes ? est-ce que ça peut venir des échappements (avec addslashes ou htmlspecialchars) ?
Merci
A quoi sert la commande "SET NAMES utf8" et utf8_encode() ?
Mon problème c'est que j'affiche des infos qui viennent d'une BDD donc je ne peux pas directement remplacer les é par des é, est-ce que justement la fonction utf8_encode sert à ça ?
Autre question j'ai un formulaire PHP qui rentre des infos dans une BDD et j'utilise ces infos après pour les afficher mais je rencontre quelques problèmes avec les apostrophes ? est-ce que ça peut venir des échappements (avec addslashes ou htmlspecialchars) ?
Merci
boss183 a dit :
Merci pour ta réponse !A quoi sert la commande "SET NAMES utf8" et utf8_encode() ?
Merci
http://www.google.fr/search?hl=fr&source=hp&biw=1366&bi...
@+
boss183 a dit :
J'ai tout mis en utf-8 (dans l'entête, dans l'éditeur et dans ma base de données) et j'ai plein de problèmes, mes infos s'enregistrent sous la forme éé dans la BDD.Y'a plus rien qui marche ...
dans ce cas, si tu ne sais pas comment corriger la bdd, il faut ré-installer ... après tu n'auras plus ces problèmes
Ok bon je pense que pour les accents le problème est résolu, ça s'enregistre sous la forme é dans la BDD mais les traitements se font correctement donc ça me va ^^
Par contre j'ai une autre petite chose à te demander (désolé de te solliciter encore) mais j'ai un problème avec les apostrophes je n'arrive pas à insérer dans la BDD des infos dont le titre contient un apostrophe.
Je pense que j'ai un problème avec l'échappement que j'utilise :
$title = (isset($_POST['title'])) ? htmlspecialchars($_POST['title']) : '';
j'ai également essayé avec addslashes :
$title = addslashes($_POST['title']);
avec cette méthode le résultat est un peu mieux mais toujours pas top : j'ai une page où on choisit une info à modifier (avec une checkbox) ça retrouve la fiche de l'info pour la modifier (jusque là tout va pas de souci avec les apostrophes) mais la page qui effectue la mise à jour avec UPDATE pose problème puisqu'elle ne récupère pas correctement le titre de l'info : elle ne prend pas tout ce qui est après l'apostrophe dc la modif ne se fait pas dans la BDD. il ne faut peut être pas faire deux échappements sur 2 pages consécutives ?
Peux-tu m'éclairer ?
Merci
Par contre j'ai une autre petite chose à te demander (désolé de te solliciter encore) mais j'ai un problème avec les apostrophes je n'arrive pas à insérer dans la BDD des infos dont le titre contient un apostrophe.
Je pense que j'ai un problème avec l'échappement que j'utilise :
$title = (isset($_POST['title'])) ? htmlspecialchars($_POST['title']) : '';
j'ai également essayé avec addslashes :
$title = addslashes($_POST['title']);
avec cette méthode le résultat est un peu mieux mais toujours pas top : j'ai une page où on choisit une info à modifier (avec une checkbox) ça retrouve la fiche de l'info pour la modifier (jusque là tout va pas de souci avec les apostrophes) mais la page qui effectue la mise à jour avec UPDATE pose problème puisqu'elle ne récupère pas correctement le titre de l'info : elle ne prend pas tout ce qui est après l'apostrophe dc la modif ne se fait pas dans la BDD. il ne faut peut être pas faire deux échappements sur 2 pages consécutives ?
Peux-tu m'éclairer ?
Merci
Ah oui j'ai oublié de préciser dans mon fichier qui effectue la requête update, je récupère les infos comme ça :
$title = addslashes($_POST['title']);
$logiciel = addslashes($_POST['logiciel']);
$version = addslashes($_POST['version']);
$link = addslashes($_POST['link']);
$description = addslashes($_POST['description']);
et la commande update est la suivante (je crois que c'est toi qui m'avait aidé à la faire) :
$query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE title='".mysql_real_escape_string($title)."'";
mysql_query($query) or die (mysql_error());
j'ai essayé d'enlever les mysql_real_escape_string mais pas mieux
$title = addslashes($_POST['title']);
$logiciel = addslashes($_POST['logiciel']);
$version = addslashes($_POST['version']);
$link = addslashes($_POST['link']);
$description = addslashes($_POST['description']);
et la commande update est la suivante (je crois que c'est toi qui m'avait aidé à la faire) :
$query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE title='".mysql_real_escape_string($title)."'";
mysql_query($query) or die (mysql_error());
j'ai essayé d'enlever les mysql_real_escape_string mais pas mieux
Alors j'ai fait ce que tu m'as dit :
Pour ajouter mes infos :
1)je récupère sans échapper
2) et je fais l'échappement direct dans la requête
pour ajouter pas de souci, le problème est quand je veux modifier :
1) dans validmodif.php, je récupère "la fiche" de l'info --> pas de souci
... et les echo pr réafficher le formulaire avec les données de l'info
2) dans validmodifok.php je fais la msie à jour :
a) je récupère les infos :
b) je fais ma requête update :
--> et là ça ne marche pas
Deux choses que je trouve bizarre :
- il ne me met pas d'erreur mysql il fait comme s'il avait réussi à faire la requête UPDATE alors que c'est pas le cas, aucune modif dans la BDD
- la page supprinfo.php marche et permet de suppruimer l'info
Pour ajouter mes infos :
1)je récupère sans échapper
$title = $_POST['title'];
$logiciel = $_POST['logiciel'];
$version = $_POST['version'];
$link = $_POST['link'];
$description = $_POST['description'];
2) et je fais l'échappement direct dans la requête
mysql_query("INSERT INTO infolog (title,logiciel,version,link,description) VALUES('".mysql_real_escape_string($title)."','".mysql_real_escape_string($logiciel)."','".mysql_real_escape_string($version)."','".mysql_real_escape_string($link)."','".mysql_real_escape_string($description)."')") or die (mysql_error());
pour ajouter pas de souci, le problème est quand je veux modifier :
1) dans validmodif.php, je récupère "la fiche" de l'info --> pas de souci
$title = mysql_real_escape_string($_POST['title']);
$requete = "SELECT title, logiciel, version, link, description FROM infolog WHERE title='$title'";
... et les echo pr réafficher le formulaire avec les données de l'info
2) dans validmodifok.php je fais la msie à jour :
a) je récupère les infos :
$title = $_POST['title'];
$logiciel = $_POST['logiciel'];
$version = $_POST['version'];
$link = $_POST['link'];
$description = $_POST['description'];
b) je fais ma requête update :
$query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE title='".mysql_real_escape_string($title)."'";
mysql_query($query) or die (mysql_error());
--> et là ça ne marche pas
Deux choses que je trouve bizarre :
- il ne me met pas d'erreur mysql il fait comme s'il avait réussi à faire la requête UPDATE alors que c'est pas le cas, aucune modif dans la BDD
- la page supprinfo.php marche et permet de suppruimer l'info
$title = mysql_real_escape_string($_POST['title']);
mysql_query("DELETE FROM infolog WHERE title='$title'");
As tu essayé, dans validmodifok.php, de faire:
$query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE title='".mysql_real_escape_string($title)."'";
echo '<pre>', var_dump($query), '</pre>';
exit;
mysql_query($query) or die (mysql_error());
string(144) "UPDATE `infolog` SET logiciel='mx management server', version='', link='http://lolo.fr', description='exemple d\'info 2' WHERE title='exemple d'"
au lieu de :
...... WHERE title='exemple d'info"
au lieu de :
...... WHERE title='exemple d'info"
lol, bon je te met les 3 fichiers :
1)modifinfo.php : qui permet de sélectionner l'info que l'on souhaite modifier
2)validmodif.php : qui affiche la "fiche" de l'info et qui nous permet donc de faire des modifications
3) validmodifok.php : qui effectue la mise à jour dans la BDD
je m'excuse d'avance pour le code qui est un peu "bizarre" et je te remercie.
1)modifinfo.php : qui permet de sélectionner l'info que l'on souhaite modifier
$link = DBconnect($serveur,$user,$mdp,$bdd); $tmp = 0; $requete = 'SELECT title, link FROM infolog'; $resultat = mysql_query($requete) or die ('Exécution de la requète impossible'); echo "<P align='center'><FONT SIZE=5 COLOR='#377693'><span style='font-variant: small-caps;'><B>Modifier/Supprimer information</B></SPAN></FONT><BR><BR></P>"; echo '<form name="monform" id="monform" action="validmodif.php" method="post">'; while ($liste=mysql_fetch_array($resultat)) { print '<div style="width:50%;margin:auto;"><p style="text-align:justify;">'.'<input type="radio" value="'.$liste['title'].'" name="title"><A HREF="'.$liste['link'].'">'.$liste['title'].'</A></p></div>'.'</radio>'; $tmp = $tmp + 1; } if ($tmp == 0) { echo '<BR>'.'<p align="center"><font size=3><i>Aucune info enregistrée</i><font size=3></p>'; } else { echo '<BR>'; echo '<p align="center">'; echo '<input type="submit" name="modifier" id="modifier" value="Modifier" />'; echo ' '; echo '<input type="button" name="supprimer" id="supprimer" value="Supprimer" onclick="document.getElementById(\'monform\').action=\'supprinfo.php\';document.getElementById(\'monform\').submit();return false;" />'; echo '</p>'; echo '<form>'; } ?>
2)validmodif.php : qui affiche la "fiche" de l'info et qui nous permet donc de faire des modifications
$link2 = DBconnect($serveur,$user,$mdp,$bdd); $title = mysql_real_escape_string($_POST['title']); $requete = "SELECT id, title, logiciel, version, link, description FROM infolog WHERE title='$title'"; $resultat = mysql_query($requete); if(empty($title)) { echo "<P align='center'><BR><BR><B>Veuillez choisir une info à modifier !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;';><FONT SIZE=2'><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Choisir à nouveau une info à modifier</B></SPAN></FONT></A></P>"; } else { while ($row= mysql_fetch_array($resultat)) { $id = $row[0]; $title = $row[1]; $logiciel = $row[2]; $version = $row[3]; $link = $row[4]; $description = $row[5]; } echo '<table align="center" width="800" height="390" border="0" cellpadding="0" cellspacing="0">'; echo '<form action="validmodifok.php" method="post">'; echo '<tr>'; echo '<!--<td width="6%"> </td>-->'; echo '<td colspan="5"><P ALIGN="center"><FONT SIZE=5 COLOR="#377693"><span style="font-variant: small-caps;"><B>Modifier une Information</B></SPAN></FONT><BR><BR><BR></P></td>'; echo '</tr>'; echo '<tr>'; echo '<td><div><font size=4 COLOR="#377693"><span style="font-variant: small-caps;"><B>Titre</B></SPAN></font></div></td>'; echo '</tr>'; echo '<tr>'; echo "<td colspan='35'><b><FONT SIZE=4><span style='font-variant: small-caps;'><input type='hidden' name='title' value='$title'>$title</hidden></span></FONT></b></td>"; echo '</tr>'; echo '<tr>'; echo '<td><div><font size=4 COLOR="#377693"><span style="font-variant: small-caps;"><B>Logiciel / Matériel</B></SPAN></font></div></td></tr>'; echo '<tr>'; echo '<td colspan="5"><input type="text" name="logiciel" size="50" maxlength="50" value="', $logiciel, '"></td>'; echo '</tr>'; echo '<tr>'; echo '<td><div><font size=4 COLOR="#377693"><span style="font-variant: small-caps;"><B>Version</B></SPAN></font></div></td>'; echo '</tr>'; echo '<tr>'; echo '<td colspan="5"><input type="text" name="version" size="50" maxlength="50" value="', $version, '"></td>'; echo '</tr>'; echo '<tr>'; echo '<td><div><font size=4 COLOR="#377693"><span style="font-variant: small-caps;"><B>Lien</B></SPAN></font></div></td></tr>'; echo '<tr>'; echo '<td colspan="5"><input type="text" name="link" size="50" maxlength="50" value="', $link, '"></td>'; echo '</tr>'; echo '<tr>'; echo '<td><BR><div><font size=4 COLOR="#377693"><B><span style="font-variant: small-caps;">Description</SPAN></B></font></div></td>'; echo '</tr>'; echo '<tr>'; echo "<td colspan='5'><textarea rows='5' cols='76' name='description'>$description</TEXTAREA></td>"; echo '</tr>'; //On passe en hidden l'id echo '<input type="hidden" name="id" value="', $id, '">'; echo '<tr>'; echo '<td height="24"></td>'; echo '<td> </td>'; echo '<td> </td>'; echo '</tr>'; echo '<tr>'; echo '<td height="14"></td>'; echo '<td width="28%"><left><input type="submit" name="Submit" value="Modifier l\'info"></left></td>'; echo '</tr>'; } mysql_close(); ?>
3) validmodifok.php : qui effectue la mise à jour dans la BDD
$link2 = DBconnect($serveur,$user,$mdp,$bdd); $id = $_POST['id']; $title = $_POST['title']; $logiciel = $_POST['logiciel']; $version = $_POST['version']; $link = $_POST['link']; $description = $_POST['description']; if(empty($title)) $erreur = "<P align='center'><BR><B>Veuillez saisir le titre de l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if(empty($logiciel)) $erreur = "<P align='center'><BR><B>Veuillez saisir le nom du logiciel / matériel !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if(empty($link)) $erreur = "<P align='center'><BR><B>Veuillez saisir un lien pour l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if(empty($description)) $erreur = "<P align='center'><BR><B>Veuillez saisir la description de l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if (isset($erreur)) { echo $erreur; } else if (preg_match("#(((https?|ftp)://(w{3}\.)?)(?<!www)(\w+-?)*\.([a-z]{2,4}))#", $link)) { $query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE id='".mysql_real_escape_string($id)."'"; //echo '<pre>', var_dump($query), '</pre>'; //exit; mysql_query($query) or die (mysql_error()); echo "<p align='center'><font size=4><BR><B>L'info suivante a bien été modifiée :</B></FONT></P>"; echo "<P align='center'><I><B>"."<A HREF='$link'><FONT SIZE=4>".$title."</FONT></A></B></I></P><BR><BR>"; echo "<A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=4><P align='center'><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Modifier/Supprimer une autre info</B></SPAN></FONT></A></P>"; } else { echo "<P align='center'><BR><B>Le lien de l'info que vous avez saisi n'est pas correct !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau l'info</B></SPAN></FONT></A></P>"; } mysql_close(); ?>
je m'excuse d'avance pour le code qui est un peu "bizarre" et je te remercie.
validmodif.php: echo '<input type="hidden" name="id value="', $id, '">';
Il te manque un " après name="id.
Ensuite, dans modifinfo.php, vu que tu as maintenant un id numérique, sert-en dans les radios, plutôt que d'utiliser le titre. Et dans tes requêtes aussi.
Il faut tout rendre homogène, sinon tu vas t'y perdre.
Il te manque un " après name="id.
Ensuite, dans modifinfo.php, vu que tu as maintenant un id numérique, sert-en dans les radios, plutôt que d'utiliser le titre. Et dans tes requêtes aussi.
Il faut tout rendre homogène, sinon tu vas t'y perdre.
Je me suis permis de reprendre tes codes, je pense qu'au bout d'un moment, il vaut mieux te donner quelque chose de juste et que tu le comprennes.
J'ai fait quelques modifications sur la logique (entre autre de certains tests), je n'ai pas testé mais ça doit être à peu près fonctionnel:
modifinfo.php
validmodif.php
validmodifok.php
J'ai fait quelques modifications sur la logique (entre autre de certains tests), je n'ai pas testé mais ça doit être à peu près fonctionnel:
modifinfo.php
<?php $link = DBconnect($serveur,$user,$mdp,$bdd); $tmp = 0; $requete = 'SELECT id, title, link FROM infolog'; $resultat = mysql_query($requete) or die (mysql_error()); echo "<P align='center'><FONT SIZE=5 COLOR='#377693'><span style='font-variant: small-caps;'><B>Modifier/Supprimer information</B></SPAN></FONT><BR><BR></P>"; echo '<form name="monform" id="monform" action="validmodif.php" method="post">'; if (@mysql_num_rows($resultat) == 0) { echo '<BR>'.'<p align="center"><font size=3><i>Aucune info enregistrée</i><font size=3></p>'; } else { while ($liste=mysql_fetch_array($resultat)) { echo '<div style="width:50%;margin:auto;"><p style="text-align:justify;"><input type="radio" value="', $liste['id'], '" name="id"><a href="', $liste['link'], '">', $liste['title'], '</a></p></div>'; } echo '<br />'; echo '<p align="center">'; echo '<input type="submit" name="modifier" id="modifier" value="Modifier" />'; echo ' '; echo '<input type="button" name="supprimer" id="supprimer" value="Supprimer" onclick="document.getElementById(\'monform\').action=\'supprinfo.php\';document.getElementById(\'monform\').submit();return false;" />'; echo '</p>'; echo '<form>'; } ?>
validmodif.php
<?php $link = DBconnect($serveur,$user,$mdp,$bdd); $id = intval($_POST['id']); if ($id == 0) { echo '<p align="center"><br /><br /><b>Veuillez choisir une info à modifier !</b><br /><br /><br /><a href="modifinfo.php" style="text-decoration:none; font-variant: small-caps;"><font size="2"><span style="border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;"><b>Choisir à nouveau une info à modifier</b></span></font></a></p>'; } else { $requete = "SELECT id, title, logiciel, version, link, description FROM infolog WHERE id=".$id; $resultat = mysql_query($requete); echo '<form action="validmodifok.php" method="post">'; while ($row= mysql_fetch_array($resultat)) { echo '<input type="hidden" name="id" value="', $row['id'], '" />'; echo '<table align="center" width="800" height="390" border="0" cellpadding="0" cellspacing="0">'; echo '<tr><th colspan="2"><font size="5" color="#377693"><span style="font-variant: small-caps;">Modifier une Information</span></font></th></tr>'; echo '<tr><th>Titre :</th><td>', $row['title'], '</td></tr>'; echo '<tr><th>Logiciel / Matériel :</th><td><input type="text" name="logiciel" size="50" maxlength="50" value="', $row['logiciel'], '"></td></tr>'; echo '<tr><th>Version :</th><td><input type="text" name="version" size="50" maxlength="50" value="', $row['version'], '"></td></tr>'; echo '<tr><th>Lien :</th><td><input type="text" name="link" size="50" maxlength="50" value="', $row['link'], '"></td></tr>'; echo '<tr><th colspan="2">Description</th></tr>'; echo '<tr><td colspan="2" align="center"><textarea rows="5" cols="76" name="description">', $row['description'], '</textarea></td></tr>'; echo '<tr><td colspan="2" align="left"><input type="submit" name="Submit" value="Modifier l\'info"></td></tr>'; echo '</table>'; } echo '</form>'; } mysql_close(); ?>
validmodifok.php
<?php $link = DBconnect($serveur,$user,$mdp,$bdd); $id = intval($_POST['id']); $title = $_POST['title']; $logiciel = $_POST['logiciel']; $version = $_POST['version']; $link = $_POST['link']; $description = $_POST['description']; if ($id == 0) $erreur = "<P align='center'><BR><B>Aucun programme selectionné !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; /* if(empty($title)) $erreur = "<P align='center'><BR><B>Veuillez saisir le titre de l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; */ if(empty($logiciel)) $erreur = "<P align='center'><BR><B>Veuillez saisir le nom du logiciel / matériel !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if(empty($link) || !preg_match("#(((https?|ftp)://(w{3}\.)?)(?<!www)(\w+-?)*\.([a-z]{2,4}))#", $link)) $erreur = "<P align='center'><BR><B>Veuillez saisir un lien pour l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if(empty($description)) $erreur = "<P align='center'><BR><B>Veuillez saisir la description de l'info !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>"; if (isset($erreur)) { echo $erreur; } else { $query = "UPDATE `infolog` SET logiciel='".mysql_real_escape_string($logiciel)."', version='".mysql_real_escape_string($version)."', link='".mysql_real_escape_string($link)."', description='".mysql_real_escape_string($description)."' WHERE id=".$id; //echo '<pre>', var_dump($query), '</pre>'; //exit; mysql_query($query) or die (mysql_error()); echo "<p align='center'><font size=4><BR><B>L'info suivante a bien été modifiée :</B></FONT></P>"; echo "<P align='center'><I><B>"."<A HREF='$link'><FONT SIZE=4>".$title."</FONT></A></B></I></P><BR><BR>"; echo "<A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=4><P align='center'><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Modifier/Supprimer une autre info</B></SPAN></FONT></A></P>"; } mysql_close(); ?>
C'est pas grave et merci pour ton aide par contre j'avais pas fait attention mais je me rends compte que maintenant j'ai un autre problème qui apparaît :
le fichier modifinfo.php liste les infos (avec des boutons radio) et on a le chox entre modifier et supprimer et maintenant que j'ai fait tes modifs lorsque je choisis une info et que je clique sur supprimer il me met que je n'ai pas choisi d'info
Voici le code du fichier qui doit effectuer la suppression :
le fichier modifinfo.php liste les infos (avec des boutons radio) et on a le chox entre modifier et supprimer et maintenant que j'ai fait tes modifs lorsque je choisis une info et que je clique sur supprimer il me met que je n'ai pas choisi d'info
Voici le code du fichier qui doit effectuer la suppression :
$link = DBconnect($serveur,$user,$mdp,$bdd);
$title = mysql_real_escape_string($_POST['title']);
mysql_query("DELETE FROM infolog WHERE title='$title'");
if(empty($title))
{
echo "<P align='center'><BR><BR><BR><B>Veuillez choisir une info à supprimer !</B><BR><BR><BR><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;';><FONT SIZE=2'><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Choisir à nouveau une info à supprimer</B></SPAN></FONT></A></P>";
}
else
{
echo '<br><p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Vous avez supprimé les info(s) suivante(s) : <BR><BR></span><span style="text-decoration: italic; font-weight: bold;">'.$title.'</span></p>';
echo "<BR><BR>";
echo "<p align='center'><A HREF='modifinfo.php' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=4><span style='border:solid 2px; border-color:#E7634D; margin-left:50; padding:10px; border-radius:1em;'><B>Modifier/Supprimer une autre info</B></SPAN></FONT></A></P>";}
?>
J'ai une autre question qui n'a pas forcément rapport alors je sais pas trop si je dois créer un autre sujet (comme je suis à peu près sur que c'est toi qui va répondre) :
en fait, mon application permet à l'utilisateur d'ajouter des infos sur des logicielsou matériel par l'intermédiaire de formulaire. L'utilisateur écrit donc la description de son info et le logiciel (ou matériel) concerné (dans un input type='text') et moi je souhaiterais aller chercher les noms de logiciel qui sont dans une base de données et donc afficher avec une liste déroulante. La même chose pour les matériels mais il se trouve dans une autre table de ma BDD.
Comment je peux faire ? je pensais utiliser "optgroupe" mais je vois pas comment utiliser ça :
<td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="logiciel">Logiciel / Matériel *</label></B></SPAN></font></div></td></tr>
<tr>
<?php
$resu=mysql_query("SELECT nom FROM ouapi_software")
while ($liste=mysql_fetch_array ($resu))
{
print '<div style="width:50%;margin:auto;"><p style="text-align:justify;">'.'<input type="select" value="'.$liste['nom'].'" name="id[]">">'.$liste['title'].'</A></p></div>'.'</select>';
}
?>
Merci d'avance
en fait, mon application permet à l'utilisateur d'ajouter des infos sur des logicielsou matériel par l'intermédiaire de formulaire. L'utilisateur écrit donc la description de son info et le logiciel (ou matériel) concerné (dans un input type='text') et moi je souhaiterais aller chercher les noms de logiciel qui sont dans une base de données et donc afficher avec une liste déroulante. La même chose pour les matériels mais il se trouve dans une autre table de ma BDD.
Comment je peux faire ? je pensais utiliser "optgroupe" mais je vois pas comment utiliser ça :
<td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="logiciel">Logiciel / Matériel *</label></B></SPAN></font></div></td></tr>
<tr>
<?php
$resu=mysql_query("SELECT nom FROM ouapi_software")
while ($liste=mysql_fetch_array ($resu))
{
print '<div style="width:50%;margin:auto;"><p style="text-align:justify;">'.'<input type="select" value="'.$liste['nom'].'" name="id[]">">'.$liste['title'].'</A></p></div>'.'</select>';
}
?>
Merci d'avance
La, c'est les bases du HTML qu'il faut revoir:
<td><div><font size=4 COLOR='#377693'><span style="font-variant: small-caps;"><B><label for="logiciel">Logiciel / Matériel *</label></B></SPAN></font></div></td></tr>
<tr>
<div style="width:50%;margin:auto;"><p style="text-align:justify;"><input type="select" name="logiciel">
<?php
$resu=mysql_query("SELECT id, nom FROM ouapi_software" )
while ($liste=mysql_fetch_array ($resu)) {
echo '<option value="', $liste['id'], '">', $liste['nom'], '</option>';
}
?>
</select>
</p></div>
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumChoisir un bon ordinateur portable
- ForumChoisir le bon telephone portable
- ForumChoisir un bon ordi portable
- ForumChoisir un bon graveur
- ForumComment choisir un bon cpl
- ForumComment choisir un bon laptop
- ForumChoisir un bon téléphone portable
- ForumChoisir un bon casque audio
- ForumChoisir un bon antivirus gratuit
- ForumChoisir un bon gps
- Voir plus