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

Langage PHP Discussion :

comportement bizarre de $_POST['text']


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut comportement bizarre de $_POST['text']
    Bonjour,

    mon soucis c'est que j'ai l'erreur: Notice: Undefined index: title in D:\blabla\forum_new_subject_sending.php on line 5

    Mais le formulaire qui renvoie à cette page est:<form class="new_subject" id="new_subject" action="forum_new_subject_sending.php" method="POST" >
    et a bel et bien un champ: <input type="text" size="60" id="title" name="title" />


    Le plus bizarre, c'est que lorsque je fais echo $_POST['title'] il m'affiche effectivement le titre rentré par le formulaire, tout en me renvoyant l'erreur citée plus haut sur la ligne en question. Donc je ne comprend vraiment pas quel est sont problème.

    A savoir que j'envoie le formulaire via javascript: document.getElementById('new_subject').submit();


    Merci d'avance à celles et ceux qui pourront m'aider

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 35
    Points : 41
    Points
    41
    Par défaut
    Ton erreur signifie que ta variable $title de la ligne 5 n'est pas connue ou n'a pas de valeur, ce qui n'a pas forcement de rapport avec le $_POST['title']. Est-ce que tu as mis le $_POST['title'] dans un if ou quelque chose du genre?

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Salut,

    non je ne l'ai pas mise dans une condition, par contre, comme je veux l'entrer dans une base de donnée, j'ai fait: secure(trim($_POST['title']));
    "secure" étant une fonction que j'ai faite dans un autre fichier que j'inclu.

    Mais j'ai essayé d'enlever et de mettre dirèctement "$title=$_POST['title']", ça ne change rien.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    "Undefined index" par le bien d'un tableau (donc à priori $_POST['title']) et non d'une variable simple.
    Pourrais-tu nous montrer plus de code ?

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form class="new_subject" id="new_subject" action="forum_new_subject_sending.php" method="POST" >
      <label for="title"><?php echo $languages_form_title; ?></label><br />
      <input type="text" size="60" id="title" name="title" />
      <input type="hidden" name="forum" <?php if(isset($_GET['forum'])){ echo 'value="'.htmlentities($_GET['forum']).'"'; }?> />
      <br /><br />
      <label for="message"><?php echo $languages_form_message; ?></label><br />
      <textarea id="message" name="message" rows="10" cols="80"></textarea>
      <br /><br />
      <a href="javascript:preview();" class="preview"><?php echo $languages_form_preview; ?></a>
      <a href="javascript:send();" class="send" ><?php echo $languages_form_send; ?></a>
    </form>
    La fonction "send" en javascript
    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
     
    function send()
    {
      subject=document.getElementById("title").value;
      message=document.getElementById("message").value;
      message_error="";
     
      if(subject==""){message_error="<?php echo $languages_error_title; ?>";}
     
      if(message=="")
      {
    	if(message_error!=""){message_error+="\n";}
    	message_error+="<?php echo $languages_error_message; ?>";
      }
     
      if(message_error=="")
      {
    	document.getElementById('new_subject').submit();
      }
      else
      {
    	alert(message_error);
      }
    }
    Le début de la page php qui doit récupérer les variables
    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
    <?php 
    	
    session_start();
    	
    echo $_POST['title'];
    	
    if(isset($_GET['language']))
    {
    	if($_GET['language']=="french")
    	{
    		$_SESSION['language']="french";
    	}
    	else if($_GET['language']=="english")
    	{
    		$_SESSION['language']="english";
    	}
    }
    else
    {
    	$_SESSION['language']="french";
    }
    
    include("languages/".$_SESSION['language']."/forum_new_subject_sending.php");
    include("variables/variables_sql.php");
    
    $title=secure(trim($_POST['title'])); <-- ici
    $from=$_SESSION['pseudo'];
    $forum=secure($_POST['forum']); <-- et là
    $date=date("Y-m-d H:i:s");
    $language=$_SESSION['language'];

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code tel que tu nous l'a mis fonctionne chez moi.

    As-tu essayé sans ta fonction javascript pour voir ?

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Malheureusement même sans javascript ça ne fonctionne pas (sous google chrome).

    Il n'affiche rien sur la page, mais lorsque je fais "afficher le code source de la page", l'erreur apparait tout en haut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <br /> 
    <b>Notice</b>:  Undefined index: title in <b>D:\Programmes\eclipse\php\Projects\witches\forum_new_subject_sending.php</b> on line <b>5</b><br /> 
    <br /> 
    <b>Notice</b>:  Undefined index: title in <b>D:\Programmes\eclipse\php\Projects\witches\forum_new_subject_sending.php</b> on line <b>26</b><br /> 
    <br /> 
    <b>Notice</b>:  Undefined index: forum in <b>D:\Programmes\eclipse\php\Projects\witches\forum_new_subject_sending.php</b> on line <b>28</b><br /> 
     
    <html> 
      etc...
    Par contre ça n'apparait qu'avec "google chrome", lorsque je le fait avec internet explorer, il ne m'affiche pas les "Notice:"

    Peut-être que ça a un rapport avec la façon dont "google chrome" envoie les informations POST ?


    Cela dit j'ai résolu le problème de le faire entrer dans la base de donnée et puis ça ne s'affiche pas sur la page.
    Mais ça me parait quand même bizarre et j'aimerai bien régler le problème.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire un pour voir ce que tu recois

  9. #9
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Oui, il me dit qu'il trouve tout

    array(3) { ["title"]=> string(8) "un titre" ["forum"]=> string(9) "religions" ["message"]=> string(10) "un message" }

    Mais les erreurs restent... Au moins elles n'apparaissent que si l'on fait "voir la source" sous "google chrome" et elles ne gênent en rien, c'est déjà ça.

Discussions similaires

  1. [AC-2003] Zone de texte comportement bizarre
    Par Piou2fois dans le forum IHM
    Réponses: 2
    Dernier message: 13/02/2012, 09h24
  2. Comportement bizarre INSERT MySQL avec champ TEXT
    Par yamatoshi dans le forum Administration
    Réponses: 0
    Dernier message: 13/07/2010, 12h38
  3. Comportement bizarre INSERT MySQL avec champ TEXT
    Par yamatoshi dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/07/2010, 12h38
  4. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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