Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2006, 22h10   #1
Invité de passage
 
Inscription : août 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 8
Points : 3
Points : 3
Par défaut [Conception] Insérez un texte long

Bonjour,

je débute sur php mysql depuis ce soir :o)

Je suis en train de créer un formulaire tout bête pour le moment :
NOM
DATE
MAIL

Je l'ai fait par étape en essayant d'envoyer 1 champ NOM de mon formulaire dans ma base SQL et ça marche

Avec leschamps NOM et DATE --> ça marche

Avec le champs MAIL en plus, ça ne marche pas et ça vient de là car j'ai mis
Code :
1
2
3
4
if(empty($mail))
    {
    echo '<font color="red">le champs Mail est vide !</font>';
    }
En fait mon champ mail est un champs de type
Code :
<TEXTAREA NAME="mail" ROWS=5 COLS=50> </TEXTAREA>
Je colle du texte dedans et ça me dit que le champs est vide. Pourquoi ?
N'a t on pas le droit de laisser un champs texte libre et l'incrémenter dans une base SQL ?

Ensuite, si vous arrivez à me faire fonctionner ce fameux champs, Pourriez vous m'indiquez la structure du champs dans la table que je dois mettre ? C'est à dire dois je mettre un type LONGTEXT ou autre chose ?


En espérant avoir été précis.

Je vous remercie d'avance pour votre aide.

Eddy
mamagubida10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 22h13   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je sais pas la fin de ta phrase mais je te conseille de jeter un oeil ici : MySQL
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 22h17   #3
Invité de passage
 
Inscription : août 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 8
Points : 3
Points : 3
désolé j'avias fait une mauvaise manipulation sur mon clavier. J'ai édité mon message pendant que tu m'écrivais ta réponse.

je viens de consulter ton lien et je n'ai pas trouvé ma réponse, snif. Désolé. Mais bon, tu n'avais pas la fin de mon post. Encore merci à toi
mamagubida10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 00h28   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Attends ton mail pourquoi tu le mets dans un textarea ? un input text devrait suffir et tu pourrais le stocker dans un champ varchar(255).

Pour ce qui est de la récupération, il faudrait que tu nous montres le code. Aussi pour ce genre de récupération, il faut passer par la methode de soumission du formulaire. Si tu utilises POST avec ca devient $_POST['mail']
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 10h24   #5
Invité de passage
 
Inscription : août 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 8
Points : 3
Points : 3
Merci à toi mais en fait avec un input text, le chmaps n'est pas assez long. Moi je veux pouvoir insérez le contenu d'un mail entier. Soit peut être 20 lignes ou 30 lignes.

Pour mon code, le voici :


eddy.html
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<HEAD>
<TITLE>Formulaire 1</TITLE>
</HEAD>
<BODY>
<form method="post" action="form2.php3">
nom: <br><input type="text" name="nom" size="4"><br>
date: <br><input type="text" name="date" size="8"><br>
mail:<TEXTAREA NAME="mail" ROWS=5 COLS=50> </TEXTAREA> <br>
<input type="submit" value="OK">
<input type="reset" name="Clear" value="Effacer">
</form>
</BODY>
</HTML>
form2.php3
Code :
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
<?php
// On commence par récupérer les champs
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="23";
if(isset($_POST['date']))      $date=$_POST['date'];
else      $date="2099-12-31";
if(isset($_POST['mail']))      $date=$_POST['mail'];
else      $mail="mail is null";
 
echo $mail;
 
/* On vérifie si les champs sont vides*/
if(empty($nom))
    {
    echo '<font color="red">le champs Nom est vide !</font>';
    }
if(empty($date))
    {
    echo '<font color="red">le champs Date est vide !</font>';
    }
if(empty($mail))
    {
    echo '<font color="red">le champs Mail est vide !</font>';
    }
 
/* Aucun champ n'est vide, on peut enregistrer dans la table
//else     
    {
       // connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
 
// sélection de la base  
 
    mysql_select_db('hln',$db)  or die('Erreur de selection '.mysql_error());
 
    // on écrit la requête sql
    $sql = "INSERT INTO test(id, date, nom, mail) VALUES('','$date','$nom','$mail')";
 
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';
 
    mysql_close();  // on ferme la connexion
    }
*/ 
?>
Je me suis volontairement arrêté à la vérification des champs vide, car à cet endroit ça ne marche pas. Mon champs mail est détecté comme vide.

Merci à vous.

Eddy
mamagubida10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 11h32   #6
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Code :
if(isset($_POST['mail']))      $date=$_POST['mail'];
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 12h52   #7
Invité de passage
 
Inscription : août 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 8
Points : 3
Points : 3


bien vu. Mince.

Mais apparemment j'ai un autre souci qu'on m'a expliqué. dans mon texte area je colle un mail reçu et donc j'ai des , et des ; et des : qui vont me poser des soucis.

Bref faut que je les remplace.
mamagubida10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 12h58   #8
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
http://www.php.net/fr/strtr
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 17h33   #9
Invité de passage
 
Inscription : août 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 8
Points : 3
Points : 3
merci à toi.

Un ami m'a trouvé la soluce entre temps

Code :
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
 
<?php
if (isset($_GET["mode"])) $mode = $_GET["mode"]; else $mode = "";
if (isset($_POST["nom"])) $nom = $_POST["nom"]; else $nom = "23";
if (isset($_POST["date"])) $date = $_POST["date"]; else $date =
"2099-12-31";
if (isset($_POST["mail"])) $mail = $_POST["mail"]; else $mail = "mail is
null";
 
if ($mode == "valider")
{
      /* On vérifie si les champs sont vides*/
      if(empty($nom))
      {
            echo "<FONT COLOR=red>le champs Nom est vide !</FONT>";
      }
 
      if(empty($date))
      {
            echo "<FONT COLOR=red>le champs Date est vide !</FONT>";
      }
 
      if(empty($mail))
      {
            echo "<FONT COLOR=red>le champs Mail est vide !</FONT>";
      }
      else
      {
            $mail = htmlspecialchars($mail);
      }
 
      /* Aucun champ n'est vide, on peut enregistrer dans la table */
 
      if (empty($nom) == false or empty($date) == false or empty($mail) ==
false)
      {
            // connexion à la base
            $db = mysql_connect('localhost','root','') or die("Erreur de
connexion" . mysql_error());
            // sélection de la base
            mysql_select_db('hln',$db) or die("Erreur de selection" .
mysql_error());
            // on écrit la requête sql
            $sql = "INSERT INTO test (id, date, nom, mail) VALUES ('','" .
$date . "','" . $nom . "','" . $mail . "')";
            // on insère les informations du formulaire dans la table
            mysql_query($sql) or die("Erreur SQL !" . $sql . "<BR>" .
mysql_error());
            // on affiche le résultat pour le visiteur
            echo "Vos infos on été ajoutées.";
            // on ferme la connexion
            mysql_close();
      }
}
?>
mamagubida10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web