chaine tronquée

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 : chaine tronquée

par céka » 28 oct. 2005, 15:50

Le problème était que la chaine etait tronquée. Mais maintenant, ca fonctionne. C'est à cause des guillemets que j'avais oublié.

par jeff » 28 oct. 2005, 09:50

:oops:
j'avais pas fait gaffe pour la concatenation
zeus a écrit:

2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"

Merci. comme ca ca ne tronque plus
qu'est ce qui ne fonctionne pas au juste
l'affichage ou le fait que ta chaine n'est pas concaténée

par céka » 28 oct. 2005, 09:40

Non, jeff, je n'écrase pas, je contatène, puisque je met $tout comme 1ere de mes chaines à concaténer. numrows ne me renvoie que le nombre de rangées. Ensuite, j'ajoute le contenu des rangées et je met le tout dans mon champ "Données", qui en fait en hidden.
Et de la, je le dispatche dans une listbox par un script en javascript.

par jeff » 28 oct. 2005, 09:34

j'ai pas suivit le sujet mais y a untruc qui m'etonne
$tout = mysql_numrows($res);
et tu ecrase $tout avec
 $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
devrait etre
$tout = mysql_num_rows($res);
et un formulaire est soit en get soit en post

est ce que php est cofigurer pour les short tag?

par Cyrano » 28 oct. 2005, 09:30

Mais est-ce qu'on peut avoir dans le meme formulaire method="get" et method="post" ? Car j'utilise déja method="post" pour mettre à jour ma base de données.
Rien ne l'interdit: l'url de l'attribut action peut comporter des paramètre, ce que faisant c'est la méthode get qu sera employée, et tu peux avoir post pour l'attribut method : résultat, les deux méthodes simultanément pour le même formulaire. Mais bien sur, tu ne peux avoir qu'un seul attribut method et la valeur doit être unique.

J'ajouterai une précision : on ne met pas à jour une base de données avec quelque méthode que ce soit, get ou post: on transmet des données vers une autre page: la mise à jour de la base est indépendante puisqu'elle est faite par une partie du code de la page. Entre l'envoi des valeurs du formulaire et la mise à jour de la base, il y a obligatoirement une récupération de données envoyées, traitement et envoi ensuite vers la base.

par céka » 28 oct. 2005, 09:08

1°/ ta méthode pour insérer du texte dans un INPUT est ... exotique
<?php
    $host = "localhost";
    $user = "";
    $pass = "";
    mysql_connect($host, $user, $pass) or die;
    mysql_select_db("catalogue") or die;
    $sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
    $res = mysql_query($sql);
    $tout = mysql_numrows($res);
    while($val = mysql_fetch_array($res)){
        $code = $val['id_categ'];
        $nom = $val['nom_categ'];
        $image = $val['Photo_categ'];
        $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
    }
    @mysql_close();
?>
<INPUT id="Donnees" type="text" maxlength="10000" size="151" value ="<?= $tout ?>" name="Donnees">
J'aime l'exotisme, ca me rappelle les vacances :D . Mais surtout, j'essaie de me débrouiller en m'inspirant des exemples que je trouve, et je peux donc passer à côté des façons de faire les plus simples. Ca fait à peine 2 semaines que j'ai commencé à faire ce site, et avant je n'y connaissais rien (sauf en programmation sur des langages sans rapport avec le web).
2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"
Merci. comme ca ca ne tronque plus
3°/ Est-ce que ton formulaire n'aurait pas METHOD="GET" par hasard ?
Ben je pense que oui. Mais est-ce qu'on peut avoir dans le meme formulaire method="get" et method="post" ? Car j'utilise déja method="post" pour mettre à jour ma base de données.

par zeus » 28 oct. 2005, 08:37

1°/ ta méthode pour insérer du texte dans un INPUT est ... exotique
<?php
    $host = "localhost";
    $user = "";
    $pass = "";
    mysql_connect($host, $user, $pass) or die;
    mysql_select_db("catalogue") or die;
    $sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
    $res = mysql_query($sql);
    $tout = mysql_numrows($res);
    while($val = mysql_fetch_array($res)){
        $code = $val['id_categ'];
        $nom = $val['nom_categ'];
        $image = $val['Photo_categ'];
        $tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
    }
    @mysql_close();
?>
<INPUT id="Donnees" type="text" maxlength="10000" size="151" value ="<?= $tout ?>" name="Donnees">
2°/ il y avait une erreur : il faut encadrer le valeur par des "
value="valeur"

3°/ Est-ce que ton formulaire n'aurait pas METHOD="GET" par hasard ?

chaine tronquée

par céka » 28 oct. 2005, 05:24

Bonjour

J'obtiens une chaine de caractères par concaténation, mais dans mon champ récepteur, elle est tronquée à 25 caractères.
Si je ne la met pas dans mon input, elle n'est pas tronquée.
J'ai mis une maxlength à 10000, mais ca n'a rien changé.
Je précise aussi que lorsque je charge ce champ par un autre moyen (scritpt javascript ou en ecrivant dedans), je n'ai pas cette limite.
			<INPUT id="Donnees" type="text" maxlength="10000" size="151" value = 
				<?php
				$host = "localhost";
				$user = "";
				$pass = "";
				mysql_connect($host, $user, $pass) or die;
				mysql_select_db("catalogue") or die;
				$sql = "SELECT * FROM `categorie` ORDER BY `id_categ`";
				$res = mysql_query($sql);
				$tout = mysql_numrows($res);
				while($val = mysql_fetch_array($res)){ 
					$code = $val['id_categ'];
					$nom = $val['nom_categ'];
					$image = $val['Photo_categ'];
					$tout = $tout . "|" . $code . "|" . $nom . "|" . $image;
				}
				@mysql_close();
				echo $tout;
				?>
			name="Donnees">