Problème pour récupérer les données d'un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème pour récupérer les données d'un formulaire

Re: Problème pour récupérer les données d'un formulaire

par thehawk » 01 janv. 2010, 19:17

Vive le notepad , sinon passe dans un IDE , et oublie pas de nommer ta page avec un beau .php (par habitude je les nomes toutes ainsi)

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 18:22

ah oui, tu fais allusion au point d'interogation....figure toi que je n'en suis pas la responsable, en effet:

je viens de comprendre d'ou vient ce ?

à l'écriture du code dans la partie source de Kompozer, il y a ça:

Code : Tout sélectionner

<?php $chaine = $_POST['contents'] ; $lg_max = 40; if (strlen($chain[b]e[/b]>$lg_max){ $chaine = substr($chaine, 0, $lg_max); } echo $chaine;[b]? >[/b]
et dès que je fais un crtl-s pour sauvegarder, ça se transforme pour je ne sais quelle obscure raison en ça:

Code : Tout sélectionner

<?php $chaine = $_POST['contents'] ; $lg_max = 40; if (strlen($chain[b]?[/b]>$lg_max){ $chaine = substr($chaine, 0, $lg_max); } echo $chaine; [b]?>[/b]
le E de "chaine" disparaît pour laisser place à un ?

et le ?> pour signifier le fin du code PHP devient un ?>

j'en peux plus de ce foutu TP, ça fait 48h que je bosse dessus :(

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 17:19

<?php 
//je récupère le texte du formulaire dans une variale nommée "chaîne"
$chaine = $_POST['contents'] ; 
//je définie une variable nommée lg_max qui aura pour valeur 40
$lg_max = 40;
//si le nombre de caractères de ma chaîne dépasse les 40, j'écrase ma chaîne avec cette même chaîne mais tronquée à 40.
if (strlen($chaine)?>$lg_max){ 
$chaine = substr($chaine, 0, $lg_max); 
} 
echo $chaine;

 ?>
franchement, je ne vois pas d'erreur 8-| mais je sens que tu en as décelé une :D

Re: Problème pour récupérer les données d'un formulaire

par jojolapine » 31 déc. 2009, 16:53

Si tu as vraiment saisie ce ci:
<?php $chaine = $_POST['contents'] ;
$lg_max = 40;
if (strlen($chaine)?>
$lg_max){ $chaine = substr($chaine, 0, $lg_max); } echo $chaine; ?>
Il est tout à fait normal que ça plante... :-°
On se relit on se relit!!

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 16:51

attend, question bete mais....donne nous le nom exacte de tes deux pages. renvoi.htm?
la première se nomme saisiTicket.html

et la seconde se nomme envoi.php

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 16:49

salut graffx :mrgreen:

mais je suis en mode "codage", la capture d'écran provient de la page génerer par WAMP.

Re: Problème pour récupérer les données d'un formulaire

par graffx » 31 déc. 2009, 16:48

attend, question bete mais....donne nous le nom exacte de tes deux pages. renvoi.htm?

Re: Problème pour récupérer les données d'un formulaire

par graffx » 31 déc. 2009, 16:46

Comme je te l' ai dit sur CCM, je pense que tu es en mode "graphique" au lieu de "coding", faudrait qu' un habitué de compozer vienne donner son avis, je dois partir moi :)

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 16:17

et bien écoute, c'est ce que j'ai fait, le résultat est visible sur l'image.

effacer ça:
<?php echo $_POST['contents']; ?>
et y mettre ça à la place:
<?php $chaine = $_POST['contents'] ;
$lg_max = 40;
if (strlen($chaine)?>
$lg_max){ $chaine = substr($chaine, 0, $lg_max); } echo $chaine; ?>
Alors je me suis dit qu'il fallait surement le mettre ailleurs mais tu vienS de m'apporter la confirmation que non.
C'est tout de même bizarre, je ne vois vraiment pas où réside l'erreur #-o

Re: Problème pour récupérer les données d'un formulaire

par jojolapine » 31 déc. 2009, 16:04

Il suffit à priori de remplacer
<td style="vertical-align: top;"><?php echo $_POST['contents']; ?><br>
</td>
par
<td style="vertical-align: top;">
<?php 
$chaine = $_POST['contents'] ; 
$lg_max = 40; 
if (strlen($chaine) > $lg_max){ 
$chaine = substr($chaine, 0, $lg_max); 
} 
echo $chaine; 
?><br>
</td>

Re: Problème pour récupérer les données d'un formulaire

par Invité » 31 déc. 2009, 15:59

le screen provient de Kompozer
et oui, on a eu qu'un seul cours de PHP et pas encore de séance pratique, du coup, j'ai beaucoup de mal à faire cet exercice. Heureusement qu'il a des tutos d'aide sur la toile!!!

voici la page de renvoi:
<html>
<head>
<style type="text/css">
.tab_bg_red{background-color:red}
.tab_bg_orange{background-color:orange}
.tab_bg_yellow{background-color:yellow}
.tab_bg_blue{background-color:blue}
.tab_bg_green{background-color:green}
</style>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>envoi</title>
</head>
<body>
<span style="font-style: italic;">(Demande envoyée par l'adresse IP</span>&nbsp;<br>
<?php echo $_SERVER['REMOTE_ADDR']; ?>)<br>
<br>
<table style="text-align: left; width: 100px;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;"><span style="font-weight: bold;">Application</span><br>
</td>
<td style="vertical-align: top;"><span style="font-weight: bold;">Priorité</span><br>
</td>
<td style="vertical-align: top;"><span style="font-weight: bold;">Type</span><br>
</td>
<td style="vertical-align: top;"><span style="font-weight: bold;">Date</span><br>
</td>
<td style="vertical-align: top;"><span style="font-weight: bold;">Résumé</span><br>
</td>
<td style="vertical-align: top;"><span style="font-weight: bold;">Description</span><br>
</td>
</tr>
<tr>
<td>
<p>YAHD</p>
</td>
<td style="vertical-align: top;"><?php echo $_POST['priority']; ?><br>
</td>
<td style="vertical-align: top;"><?php echo $_POST['type']; ?><br>
</td>
<td style="vertical-align: top;">&nbsp;&nbsp; ?<br>
</td>
<td style="vertical-align: top;"><?php echo $_POST['oneLiner']; ?><br>
</td>
<td style="vertical-align: top;"><?php echo $_POST['contents']; ?><br>
</td>
</tr>
</tbody>
</table>
</body>
</html>
et la page HTML correspondante:
<html>
<head>
<script language="javascript">

function checkForm() {
var input = document.editTicketForm.oneLiner;
if ( input.value.length == 0 )
{
alert("Vous n'avez pas saisi de résumé");
input.focus();
return false;
}
var selectApp = document.editTicketForm.application;
input = document.editTicketForm.applicationOther;
if ( selectApp.value == -1 && input.value.length == 0 )
{
alert("Vous devez saisir le nom de l'application si vous n'en choisissez pas une dans la liste");
input.focus();
return false;
}
return true;
}

</script>
<link rel="stylesheet" href="../styles/styles.css" type="text/css"
media="screen">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>saisieTicket</title>
</head>
<body>
<br>
<form method="post" action="envoi.php" onsubmit="return checkForm();"
name="editTicketForm">
<div style="text-align: center;"> </div>
<table style="text-align: left; width: 100px;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr class="tab_bg_1">
<th style="vertical-align: top; text-align: center;" colspan="2">Veuillez
décrire votre demande d'intervention:<br>
</th>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;">Application:<br>
</td>
<td style="vertical-align: top;">
<select name="application">
<option value="-1"> Autres</option>
<option value="0"></option>
</select>
&nbsp;<input size="50" name="applicationOther"><br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;">Priorité:<br>
</td>
<td style="vertical-align: top;">&nbsp;&nbsp;
<select name="priority">
<option>Très Urgente</option>
<option>Urgente</option>
<option>Moyenne</option>
<option>Faible</option>
<option>Très Faible</option>
</select>
<br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;">Type:<br>
</td>
<td style="vertical-align: top;"><input checked="checked"
name="type" value="anomalie" type="radio">Anomalie <input name="type"
value="evolution" type="radio">Demande d'évolution<br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;">Résumé:<br>
</td>
<td style="vertical-align: top;"><input size="70"
name="oneLiner"><br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;" colspan="2">Description
détaillée:<br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;" colspan="2"><textarea cols="60"
rows="14" name="contents">J'ai saisi plusieurs demandes d'intervention
avec cet outil.
Aucune n'a été sauvegardée.
Chaque fois que je me connecte, votre outil me dit qu'il n'existe
aucune demande de ma part!</textarea><br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top;">Pièce-jointe:<br>
</td>
<td style="vertical-align: top;"><input name="ch"><input
value="Parcourir..." type="submit"><br>
</td>
</tr>
<tr class="tab_bg_1">
<td style="vertical-align: top; text-align: right;" colspan="2"><input
value="Envoyer" type="submit"><br>
</td>
</tr>
</tbody>
</table>
<br>
</form>
</body>
</html>
jusque là, tout va bien mais ça se corse en voulant y intégrer le petit code que j'ai soumis dans mon premier post :mrgreen:

Re: Problème pour récupérer les données d'un formulaire

par jojolapine » 31 déc. 2009, 15:33

Bonjour,
aurais-tu le code complet?
Visiblement php est mal interprété...
D'où sort le screen que tu as fait? on dirait dreamweaver ou un logiciel semblable...

Problème pour récupérer les données d'un formulaire

par alvanoto » 31 déc. 2009, 14:39

Bonjour,

Je dois créer une page PHP sur laquelle seront visualisées les données récupérées sur un formulaire.

Une des ces données est un texte de plus de 100 caractères mais elle doit être tronquer à seulement 40 caractères lors de la visualisation de la page de renvoi.

Ce texte doit apparaître dans une case d'un tableau.

voici le bout de code pour y arriver :

Code : Tout sélectionner

<?php $chaine = $_POST['contents'] ; $lg_max = 40; if (strlen($chaine) > $lg_max){ $chaine = substr($chaine, 0, $lg_max); } echo $chaine; ?>
voici le résultat, pas très joli...

Image

et sur WAMP, c'est pire:

Code : Tout sélectionner

Parse error: parse error in C:\wamp\www\tests\envoi.php on line 47


le problème, c’est que je ne sais pas où il faut l’insérer dans la page de renvoi PHP, au début (après le <body>…), ou juste avant le </head> par exemple…, au milieu (mais où?)

je galère, merci de m’aider :?