pb avec formulaire et bdd - PHP - Programmation
Marsh Posté le 03-06-2004 à 21:31:03
ce n'est pas une erreur, mais un warning, donc pas bloquant pour ton script
si tu veux faire le test proprement, il faut utiliser isset if(isset($rechercher))
edit : petit pb de syntaxe...
Marsh Posté le 03-06-2004 à 22:59:15
mais le probleme c'est que meme si je remplis ce champ rechercher, je me prends ce Notice... alors qu'il n'est plus undefined du coup!
Marsh Posté le 04-06-2004 à 03:47:18
1. C'est pas isset en un seul mot ?
2. remplace tes $rechercher par $_POST['rechercher'] et ainsi de suite pour tout ce qui provient d'un formulaire
(on ferait un top des erreurs/questions les plus fréquentes, je suis sûr que celle là serait sur le podium...)
Marsh Posté le 04-06-2004 à 12:34:06
naceroth a écrit : 1. C'est pas isset en un seul mot ? bien sur que si ! |
Marsh Posté le 04-06-2004 à 16:24:39
dans le cas du if, le isset semble mieux car le $_POST renvoie une erreur en cas de champ non rempli
merci pour votre aide
Marsh Posté le 04-06-2004 à 23:04:28
cymp a écrit : dans le cas du if, le isset semble mieux car le $_POST renvoie une erreur en cas de champ non rempli |
Je t'ai jamais dit de n'en utiliser qu'un, la bonne réponse, c'est les deux ensemble
Marsh Posté le 07-06-2004 à 10:29:14
c koi le mieux ou la différence profonde entre les 2 :
Code :
|
Code :
|
Marsh Posté le 07-06-2004 à 10:35:37
titione a écrit : c koi le mieux ou la différence profonde entre les 2 :
|
C'est différent
Le premier teste si $_POST['rechercher'] est défini (c'est-à-dire si la clé 'rechercher' est présente dans le tableau $_POST).
Le second teste si la valeur de $_POST['rechercher']) est vide.
$_POST['rechercher'] peut être défini mais vide
Par contre s'il n'est pas défini, il est forcément vide.
En fait :
Mais les implications suivantes sont fausses (au sens logique) :
Marsh Posté le 23-06-2004 à 21:49:59
je profite du topic ouvert je suis completement débutant (2 jours) et je ne comprends pas bien pourquoi ça ne fonctionne pas. J'ai un formulaire qui contient :
Code :
|
jusque là tout va bien maintenant, voici le code de mon essai.php:
Code :
|
et je n'arrive pas à faire fonctionner l'ensemble . En fait il me fait une erreur :
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in chemin\essai.php on line 10
quelqu'un peut il m'expliquer ou m'envoyer sur un tutorial??? merci d'avance
Marsh Posté le 23-06-2004 à 22:16:06
laissez tomber, j'ai trouvé la solution sur PPC il suffisait de rajouter des lignes $nom = $_POST['nom'] pour toutes les variables. Par contre, si quelqu'un pouvait m'expliquer pourquoi il faut en passer par là, j'aimerais assez
Marsh Posté le 24-06-2004 à 01:01:11
Je vois pas le rapport entre l'erreur et la solution que tu donnes hein, tu te fais jeter à cause des ' présent dans $_POST['...']
Marsh Posté le 24-06-2004 à 07:31:12
ben en fait, j'ai essayé avec un peu toutes les possibilités de '', "" , \'\'... et si je les enlevais complètement, j'avais une ligne vierge insérée dans ma BDD! c'est donc la seule solution que j'ai trouvé pour insérer correctement des données
Marsh Posté le 24-06-2004 à 07:32:03
Quand tu veux accéder à un tableau associatif dans une chaîne entre " " il ne faut pas mettre les simples quotes autour de la clé => il faut faire $_POST[nom] et pas $_POST['nom'].
Attention ceci n'est valable que quand on mets la variable dans la chaîne.
Marsh Posté le 24-06-2004 à 07:38:52
donc ça donne en gros:
Insert into table values ('$_POST[nom]',etc etc) ?
Marsh Posté le 24-06-2004 à 07:49:21
Oui exactement.
Tout cela est bien sûr dans la documentation
Marsh Posté le 24-06-2004 à 08:03:11
ben justement, j'ai les 2 docs de Nexen, pour PHP et MySQL, et je n'ai rien trouvé qui me guide vraiment! j'y ai passer un bon moment hier sans arriver à comprendre comment faire. J'ai du rater le passage sur les variables où ils expliquent comment faire à l'intérieur des "" .
A ce propos, existe t il des docs autres que celles de nexen, qui soit bien faites et compréhensibles par un débutant?
Merci pour tes réponses.
edit : au fait comment se fait il qu'il n y ait pas de topics uniques comme dans la plupart des autres catégories? comme par exemple sur les docs, les sites, les forums d'entraide...
Marsh Posté le 24-06-2004 à 09:10:54
Je te conseille la doc officielle de PHP, en anglais (pour éviter les remarques non traduites ou bien les éventuelles erreurs de traduction) : http://www.php.net/manual/en/
Je te conseille de regarder les commentaires en bas des pages, ils sont souvent utile ou permettent d'éclairer des points obscurs de la doc (encore faudrait-il qu'il y en ait ).
Pour ton problème de chaîne c'est ici : http://www.php.net/manual/en/langu [...] ng.parsing
Marsh Posté le 24-06-2004 à 18:34:58
Merci pour les liens j'utilisais la version traduite par nexen
Marsh Posté le 03-06-2004 à 20:49:00
Salut à tous
Alors voila le pb: j'ai un formulaire et je veux exploiter un champ de ce formulaire dans un autre .php.
le formulaire (simple):
<html>
<head><title>formu</title></head>
<body bgcolor="#FFFFFF">
<h3>Entrez le truc a rechercher</h3>
<form method="post" action="listesimple.php">
A rechercher:
<input type="text" name="rechercher">
<input type="submit" name="Submit" value="Ok">
</form>
</body>
</html>
et le listesimple.php:
<?php
mysql_connect("localhost","root","" );
mysql_select_db("connexion" );
if($rechercher)
{
........//suite pas intéressante la n'est pas le pb
et je me prends cette erreur:
Notice: Undefined variable: rechercher in c:\program files\easyphp1-7\www\projet\listesimple.php on line 6
La ligne 6 correspond au "if($rechercher)".
Si vous pouviez me dire où est l'erreur, merci .
PS: je fais du php depuis cet apres midi alors bon je suis pas tres au point soyez gentils...