Récupérer données $_post

Résolu/Fermé
Talmidiel - Modifié par NHenry le 6/01/2017 à 18:39
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 6 janv. 2017 à 20:47
Bonjour,

Ayant, hier réussi a faire mon generateur de chaine aléatoire, he poursuit mon apprentissage du php, mais je rencontre un nouveau problème.

J'ai décidé de faire un système pour enregistrer les codes générés dans ma bdd.

En gros j'ai ma page code.php qui génère le code est l'envoi a la page post.php avec la méthode 'post'
Le problème est que j'ai une erreur qui s'affiche sur la page post :


Notice: Undefined index: code in /public_html/devphp/post.php on line 5

Et je ne sais pas d'ou elle vient...

Mes codes :

- page codes.php :

<?php
 // Génération d'une chaine aléatoire 
function chaine_aleatoire($nb_car) { 
$chaine = 'azertyuiopqsdfghjklmwxcvbn123456789'; $nb_lettres = strlen($chaine) - 1; 
$generation = ''; 
for($i=0; $i < $nb_car; $i++) { $pos = mt_rand(0, $nb_lettres);  
$car = $chaine[$pos];  
$generation .= $car; } 
return $generation;} 
// on determine le nombre de caracteres qu'on souhaite afficher
?>


 

<form action="/post.php" method="post"> 

<p> 

<label for="code">code</label> :  <input type='text' value='<?php echo chaine_aleatoire(5); ?>'><br /> 


<input type="submit" value="activer" /> 

</p> 

</form>





- page post.php :

<?php 

include('config.php');

$code=$_POST['code'];
 if(mysql_query('insert into code (code, valid) values ("'.$code.'", ".1.")'))
 {
  echo '<strong>code active</strong>';
 }
 else
 {
  echo '<strong>Une erreur c\'est produite lors de l\'activation du code.</strong>';
 }
?>




Dans le fichier config, je me connecte a la bdd.

Merci pour votre aide

Ps: je suis débutant en php, et jz m' entraine en codant et demandant de l'aide sur les forums prévus a cet effet, donc c'est normal si vous me voyez beaucoup.

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
6 janv. 2017 à 18:42
bonsoir,
Suggestion pour post.php:

if (isset($_POST['code']))
{
   (ton code actuel)
}
else
{
   echo 'rien reçu!';
}
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
6 janv. 2017 à 18:49
Et ensuite, quand cela fonctionne, tu vas sans doute te rendre compte que codes.php ne définit pas bien l'input pour code : il manque
name="code"
.
Sans nom, les
<input>
ne sont pas renvoyés.
0
.:Goox:. Messages postés 2816 Date d'inscription lundi 22 mai 2006 Statut Contributeur Dernière intervention 7 janvier 2017 2 216
6 janv. 2017 à 18:49
Hello,
Il manque l'attribut name avec la valeur code sur l'input de ta page codes.php

0
Génial, ca marche !!

Il me reste plus qu'a régler l'envoi sql car ca me met le message "une erreur c'est produite lors de l'activation du code mais ca devrai pas être compliqué
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié par yg_be le 6/01/2017 à 19:07
post.php:
pourquoi pas plutôt:
$sql='insert into code (code, valid) values ("'.$code.'", ".1.")';
if(mysql_query($sql))
 {
  echo '<strong>code active</strong>';
 }
 else
 {
  echo '<strong>Une erreur c\'est produite lors de l\'activation du code.</strong>';
  echo $sql;
 }

Cela va t'aider à vérifier ta requête sql, éventuellement en la testant directement sur la bdd (si tu ne vois pas tout de suite ce qui cloche).
0
Talmidiel > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
6 janv. 2017 à 19:14
C'est bon, en fait j'avais oublié d'indiquer l'id

Maintenant que tout marche, j'ai fait 10% du generateur de code, plus que quelques lignes de codes pour qu'il soi fonctionnel

Ps: pour ceux qui ce pose la question, je code un generateur de code, ce qui veut dire :

- un generateur (fait)
- un validateur (pour pouvoir vendre les codes)
- une page ou on voit l'ensemble de codes activés
- une page ou on voit l'ensemble des codes validés,
- etc...
Bref un générateur de code comme les cartes Google play, psn, etc


Sur ce bonne soirée a vous et j'espère qu'on ce revera uniquement pour des VRAIES erreurs (la j'ai honte de moi, c du niveau débutant)
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
6 janv. 2017 à 19:18
J'imagine que tu as un index unique sur la colonne code dans la table code?
Je te suggère de ne pas utiliser un même nom pour une table et une colonne.
0
Talmidiel > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
6 janv. 2017 à 19:27
Non j'ai ma table generateur et ma colonne code
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
6 janv. 2017 à 20:47
insert into code (code, valid)
?
tu as un index unique sur la colonne code?
0