Récupérer données $_post [Résolu]

Talmidiel - 6 janv. 2017 à 18:28 - Dernière réponse : yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention
- 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.
Afficher la suite 

9 réponses

Répondre au sujet
yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 6 janv. 2017 à 18:42
0
Utile
1
bonsoir,
Suggestion pour post.php:

if (isset($_POST['code']))
{
   (ton code actuel)
}
else
{
   echo 'rien reçu!';
}
yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 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.
Commenter la réponse de yg_be
.:Goox:. 2846 Messages postés lundi 22 mai 2006Date d'inscriptionContributeurStatut 7 mai 2017 Dernière intervention - 6 janv. 2017 à 18:49
0
Utile
Hello,
Il manque l'attribut name avec la valeur code sur l'input de ta page codes.php

Commenter la réponse de .:Goox:.
0
Utile
5
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é
yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 6 janv. 2017 à 19:06
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).
Talmidiel > yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 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)
yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 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.
Talmidiel > yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 6 janv. 2017 à 19:27
Non j'ai ma table generateur et ma colonne code
yg_be 4130 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 6 janv. 2017 à 20:47
insert into code (code, valid)
?
tu as un index unique sur la colonne code?
Commenter la réponse de Talmidiel