>>> Modification de contenu de chmp : problème avec les espaces

Résolu
cs_PatX Messages postés 34 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 11 mai 2007 - 28 déc. 2004 à 19:37
cs_PatX Messages postés 34 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 11 mai 2007 - 31 déc. 2004 à 10:38
Bonjour à tous ! 8)

Vu que je suis nouveau sur le forum, je me présente : je suis étudiant. Cela fait maintenant un an que je programme en html mais je débute seulement avec les Base de données MySql. Pour l'instant, je n'ai fait qu'insérer et supprimer des enregistrements d'une table avec un petit programme php "self-made".

En plus d'ajouter des enregistrements à partir d'un formulaire et de les supprimer, je voudrais pouvoir les modifier en récupérant les valeurs depuis la base de données et les réinsérer dans un formulaire. Là, je les modifierai et je validerai les modifications pour mettre la base de données à jour.

Pour en venir au problème lui même, j'ai déjà réalisé le formulaire qui récupère les données prête à être modifiées, mais si jamais le contenu à insérer dans l'un des champs contient un espace, le remplissage des champs s'arrète et j'ai une erreur :

Notice: Undefined index: auteur in c:\program files\easyphp1-7\www\206sql\sql_accueil_gestion.php on line 132

Voilà, vous savez tout. Je vous donne mon script qui permet d'effectuer toutes les opérations que j'ai décrites. Si vous souhaitez avoir d'autres informations (nom de ma base de données, fichier.txt pour créer la table, etc.) je reste à votre disposition.

Cordialement,

PatX :)

<?
// Parametres de connexion à la base de données
include 'conf/sql_acces.php';
?>

<?
// calcul de la date
$date = date('d-m-Y');
$_REQUEST['date']=$date;
?>

<?
// -----------------------------------------
// Gestion de l'ajout d'un message d'accueil
// -----------------------------------------
if ($_REQUEST["action"]=="Ajouter")
{
print "
<HR width=60%>
<form action=sql_accueil_gestion.php method=post name=accueil_ajouter>
Ajouter un message :,

----

Titre,
,

----

Contenu,
<textarea name=contenu rows=8 cols=50></textarea>,

----

Auteur,
,

----

Date,
,

----

</form>";}

// --------------
// Enregistrement
// --------------
if ($_REQUEST["action"]=="Enregistrer")
{
$titre = isset($_POST['titre']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['titre']) : $_POST['titre']): '';
$contenu = isset($_POST['contenu']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['contenu']) : $_POST['contenu']): '';
$auteur = isset($_POST['auteur']) ? (get_magic_quotes_gpc() ? stripslashes($_POST['auteur']) : $_POST['auteur']): '';
// préparation de la requête
//mysql_query("insert into ... set champ="".mysql_real_escape_string($champ)."");
$requete = "INSERT INTO accueil (titre, contenu, auteur, date) ";
$requete .= "VALUES (
'" . mysql_real_escape_string($_REQUEST["titre"]) . "',
'" . mysql_real_escape_string($_REQUEST["contenu"]) . "',
'" . mysql_real_escape_string($_REQUEST["auteur"]) . "',
'" . mysql_real_escape_string($_REQUEST["date"]) . "');";
$resulat = mysql_query($requete, $cnx);
}

// -----------------------------------
// Suppression d'un message
// -----------------------------------
// Doit on supprimer un message ?
if ($_REQUEST["action"]=="Supprimer")
{
// préparation de la requête
$requete = "delete from accueil WHERE id_accueil=".$_REQUEST['id'];
$resulat = mysql_query($requete, $cnx);
}

// -----------------------------------
// Modification d'un message
// -----------------------------------
// Doit on modifier un message ?
if ($_REQUEST["action"]=="Modifier")
{

// préparation de la requête (Suppression + Ajout)
$requete = "delete from accueil WHERE id_accueil=" . $_REQUEST['ancien_message'];
$resulat = mysql_query($requete, $cnx);
{
print ("
<HR width=60%>
<form action=sql_accueil_gestion.php method=post name=accueil_ajouter>
Modifier un message :,

----

Titre,
,

----

Contenu,
<textarea name=contenu rows=8 cols=50>" . $_REQUEST["contenu"] . "</textarea>,

----

Auteur,
,

----

Date,
,

----

A enregistrer même sans modification (le message a été supprimé)

</form>
");}
}

// Interroger la base de données
$requete = "SELECT * FROM accueil ;";
$resultat = mysql_query ($requete,$cnx) ;

print ("<HR width=60%>
Liste des message enregistrés :

");
print ("\");
print (\"----

Id_accueil,
Titre,
Auteur,
Date,
 ,
 ,
\");

//fonction qui alterne les couleurs
function Couleur(){
static $valcoul;
if ($valcoul == \"#CCCCCC\")
$valcoul = \"#FFFFFF\";
else $valcoul = \"#CCCCCC\";
return $valcoul;
}

//affiche les informations
while ($ligne = mysql_fetch_array ($resultat))
{
print(\"----
\") ;
print (\"" . $ligne ["id_accueil"] . ", \") ;
print (\"" . $ligne ["titre"] . ", \") ;
print (\"" . $ligne ["auteur"] . ", \n\") ;
print (\"" . $ligne ["date"] . ", \n\") ;
print (\"[sql_accueil_gestion.php?action=Ajouter Ajouter un message]

7 réponses

tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
28 déc. 2004 à 19:46
salut
je pense que si tu laisse un message de cette longeur tu a peut de chance davoir une reponse

donc si tu a moyen de reduire pour que ce soit lisible
ensuite ce serait bien de montrer la ligne 132 ou il y a l'erreur

mais de toute evidence il ne connait pas la variable auteur !!!

cordialement

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 déc. 2004 à 09:52
Hello,

question, parce que je ne suis pas sur, je n'ai jamais ecrit ca comme ca, et je n'ai pas php la (au taf) :

'" . mysql_real_escape_string($_REQUEST["titre"]) . "',
'" . mysql_real_escape_string($_REQUEST["contenu"]) . "',
'" . mysql_real_escape_string($_REQUEST["auteur"]) . "',
'" . mysql_real_escape_string($_REQUEST["date"]) . "');";

ca pose pas un probeme? Tu fermes le guillemt pour concatener le contenue de ta variable, et tu rouvres les guillemets pour mettre le nom de ton POST, le refermes, ferme la concatenation, ferme les guillemets.
Tu devrais pas plutot ecrire :

'" . mysql_real_escape_string($_REQUEST['titre']) . "',

?
3
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
29 déc. 2004 à 21:02
salut
comme leur noms l'indique
addslashes ajoute des antislashes devant les carcteres le nécessitant (' " \ etc...)
comme ça, la chaine de caractere peut etre utiliser pour sql
stripslashes est la fonction inverse

ca s'utilise comme ca :
$var = addslashes("ta chaine de caractere ou ta variable")

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
3
cs_PatX Messages postés 34 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 11 mai 2007
28 déc. 2004 à 20:00
D'accord, euh, on fait comment pour modifier le message ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
28 déc. 2004 à 20:43
on peut pas
il faut refaire le msg

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
0
cs_PatX Messages postés 34 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 11 mai 2007
29 déc. 2004 à 20:51
Salut Malalam !

Alors je viens de faire les modifications sur mon script, mais ça fonctionne comme avant. Rien n'a changé.

On m'a parlé de Stripslaches ou de Addslaches qui pourrait résoudre mon problème. C'est quoi et comment ça s'utilise ?
0
cs_PatX Messages postés 34 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 11 mai 2007
31 déc. 2004 à 10:38
Ok, donc en fait, ça ne permet pas d'accepter les espaces lorsque je veux reprendre le contenu de mes variables dans le formulaire pour les modifier.

En plus, je viens de m'apercevoir que les retours à la ligne n'étaient pas pris en compte lors de la saisie ... (sniff)
0
Rejoignez-nous