débutant avec de grande ambitions

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

25 avr. 2005, 11:26

je ne suis pas constament sur le pc je sort détrompe toi, et j'ai pas compris ya qqchose qui m'échappe donc explique moi :s
Heu, ça fait 3 pages qu'il t'explique plein de choses, qu'on apprend d'habitude petit à petit. Donc, ne va pas plus vite que la musique. Essaye de tout comprendre jusque là et ensuite, tu iras à l'étape 2. Non ?

C'est de la programmation, tu manipules des données abstraites, que tu ne vois pas, et il faut imaginer que tu les envoie de fichier en fichier et que tu les transformes. Prends le temps de lire, souligner ce qui te paraît important et de relire.

Sinon, il existe PHPDebutant, qui fait des pas à pas très bons.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Petit nouveau ! | 5 Messages

27 avr. 2005, 16:08

j'ai relu ton formulaire et j'ai essayé de l'appliquer mais pour le moment quand je lance ccette page il me dis : Notice: Undefined variable: unun in c:\program files\easyphp1-8\www\site\essai.php on line 37 donc la après avoir réfléchi je comprend pas.


[code]
<?php /* Date de création: 22/04/2005 */ ?>
<html>
<body>
<?php
// connexion à la base de données
$db = mysql_connect('localhost', 'root', '')
or die('connexion impossible');

// sélection de la base
mysql_select_db('fpg',$db);

if(isset($_POST['envoi']))
{

//J'identifie les variables

$unun = $_POST["unun"];
$undeux = $_POST["undeux"];
$untrois = $_POST["untrois"];
$deuxun = $_POST["deuxun"];
$deuxtrois = $_POST["deuxtrois"];
$troisun = $_POST["troisun"];
$troisdeux = $_POST["troisdeux"];
$quatreun = $_POST["quatreun"];
$quatredeux = $_POST["quatredeux"];
$quatretrois = $_POST["quatretrois"];
$deuxdeux = $_POST["deuxdeux"];
$deuxquatre = $_POST["deuxquatre"];
$deuxcinq = $_POST["deuxcinq"];

}


echo"
<form method=post action=index.php target=_blank>
Ligne 1 colone 1 du tablo
<input type=text name=unun value=$unun><br>
Ligne 1 colone 2 du tablo
<input type=text name=undeux><br>
Ligne 1 colone 3 du tablo
<input type=text name=untrois><br>
Ligne 2 colone 1 du tablo (1)
<input type=text name=deuxun><br>
Ligne 2 colone 1 du tablo (2)
<input type=text name=deuxdeux><br>
Ligne 2 colone 1 du tablo (3)
<input type=text name=deuxtrois><br>
Ligne 2 colone 3 du tablo
<input type=text name=deuxquatre><br>
Ligne 2 colone 2 du tablo
<input type=text name=deuxcinq><br>
troisun
<input type=text name=troisun><br>
troisdeux
<input type=text name=troisdeux><br>
quatreun
<input type=text name=quatreun><br>
quatredeux
<input type=text name=quatredeux><br>
quatretrois
<input type=text name=quatretrois><br>
<input type=submit name=envoi value=Envoyer>
</form>";

// fin de la connexion
mysql_close();
?>
</body>
</html>

[/code]

Mammouth du PHP | 19672 Messages

27 avr. 2005, 16:20

C'est tout à fait logique : observe bien le code : où donc est initialisée la variable $unun ?

Dans le if(isset($_POST['envoi'])) : donc.... à la première ouverture de la page, tu admettras que logiquement, cette variable ($_POST) n'existe pas encore puisque tu n'as pas encore cliqué sur le bouton, tu arrives juste dans la page.

Comment corriger ça : au lieu de
echo ....
<input type=text name=unun value=$unun><br>
....
essaye de commencer par virer le echo, il est inutile de faire générer du html de cette manière et sur cette ligne tu fais :
<input type=text name=unun value="<?php if(isset($_POST['unun'])){ echo $_POST['unun'];} ?>"><br>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 23 Messages

27 avr. 2005, 16:35

Je tire un grand chapo a ceux qui ont eut la patience avec toi jusque la car je n'en connait pas des mass qui t'aurais aidé comme ca.
Un grand bravo a php france et vive la communauté open source!

Mammouth du PHP | 19672 Messages

27 avr. 2005, 18:01

on appelle ça montrer l'exemple:langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

27 avr. 2005, 20:46

ok je vais essayer ca je vous tiendrais au courant mais surtout merci a vous tous cest vrai que c'est la 1ere fois qu'on m'aide autant quand je demande de l'aide

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 09:37

j'ai essayé mais ca marche pas :s il faudrait pas une connection a la base de donnée ?

Mammouth du PHP | 19672 Messages

01 mai 2005, 09:53

Nous dire que ça marche pas, c'est une chose: nous donner des détails, ce serait mieux:

- Peux-tu décrire ce que tu essayes de faire?
- Quelle partie ne fonctionne pas ?
- As-tu un (ou des) message(s) d'erreur
- Si tu as des erreurs, tu dois avois des numéros de ligne: peut-on voir ces lignes pour détecter une erreur?

On est pas devin. Au besoin, ouvre un autre sujet, celui-ci ne sera plus beaucoup regardé, il y a trop de pages.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 10:04

en fait ca marche sans messages d'erreur mais quand je remplis les champs je valide et ensuite je reviens sur cette page les champs sont vides :'(

Mammouth du PHP | 19672 Messages

01 mai 2005, 10:07

envoie ton code (en oubliant pas le bouton [ PHP ] en haut
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 10:16

<?php /* Date de création: 22/04/2005 */ ?>
<html>
<body>


<form method=post action=index.php target=_blank>
Ligne 1 colone 1 du tablo
<input type=text name=unun value="<?php if(isset($_POST['unun'])){ echo $_POST['unun'];} ?>"><br>
Ligne 1 colone 2 du tablo
<input type=text name=undeux><br>
Ligne 1 colone 3 du tablo
<input type=text name=untrois><br>
Ligne 2 colone 1 du tablo (1)
<input type=text name=deuxun><br> 
Ligne 2 colone 1 du tablo (2)
<input type=text name=deuxdeux><br>
Ligne 2 colone 1 du tablo (3)
<input type=text name=deuxtrois><br>
Ligne 2 colone 3 du tablo
<input type=text name=deuxquatre><br>
Ligne 2 colone 2 du tablo
<input type=text name=deuxcinq><br>
troisun
<input type=text name=troisun><br>
troisdeux
<input type=text name=troisdeux><br>
quatreun
<input type=text name=quatreun><br>
quatredeux
<input type=text name=quatredeux><br>
quatretrois
<input type=text name=quatretrois><br>
<input type=submit name=envoi value=Envoyer>
</form>


</body>
</html>
donc la j'ai mis juste pour le 1er champ mais le pb serait le même pour les autres champs

Mammouth du PHP | 19672 Messages

01 mai 2005, 10:21

Une petite description de la manoeuvre peut-être ? :evil: Hé, je veux bien t'aider, mais je fonctionne pas avec une boule de cristal ! Comment veux-tu que je devine ce qui se passe : avant, tu remplis le formulaire? : ensuite, tu envoies les données vers cette page ? Cette page est sur le même fichier ? sur un fichier différent ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 10:25

bah c'est dans une page index.php que ca va c'est pas bon?

alors je remplis le formulaire
ca va sur la page index.php
et si je reviens sur cette page du formulaire le champ est vide

Mammouth du PHP | 19672 Messages

01 mai 2005, 10:36

Bon, ça commence à être plus clair et ça explique très bien le problème; La variable $_POST ne garde ses données que si elles sont relayées par un bouton de type submit dans un formulaire. Si tu quittes la page formulaire ou la page de résultat pour aller voir une autre page, en revenant sur ton formulaire, les données ont disparu : normal, en quittant le formulaire, tu as vidé la variable $_POST.

Maintenant, je devine ta prochaine question : comment garder ces données même si je quitte le formulaire: Avec des variables de session. C'est a dire qu'il faut dans un premier temps que tu envoies ton formulaire et que tu récupères le contenu da la variable $_POST : tu initialise ensuite des variables $_SESSION avec chacun des variables reçues.

Chacune de tes pages doivent impérativement commencer par la ligne session_start();

Quand tu veux retourner dans le formulaire, les variables ne seront plus dans $_POST, mais dans $_SESSION, donc pour remplir les champs, au lieu de :
<input type=text name=unun value="<?php if(isset($_POST['unun'])){ echo $_POST['unun'];} ?>"><br>
tu mets :
<input type=text name=unun value="<?php if(isset($_SESSION['unun'])){ echo $_SESSION['unun'];} ?>"><br>
Ça signifie aussi que tu vas devoir vérifier au début de ta page formulaire si $_POST existe et en récupérer les valeurs, si $_POST n'existe pas, vérifier alors $_SESSION.
Et si $_POST existe, ré-initialiser les variables $_SESSION

Et si aucune des deux n'existe, ton formulaire sera vide, ce qui servira surtout pour la première entrée sur la page formulaire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 10:41

merci mais ton "session_start(); " je le met ou dans la page?