Chargement en cours...
Connexion au forum informatique de Sur-la-Toile
La discussion « Mon code ne marche pas... [PHP] » se trouve dans le forum « Programmation »
Statut de la discussion » Mon code ne marche pas... [PHP] « ( normale)

Mon code ne marche pas... [PHP]

» Liste des Forums » Programmation » Discussion

Le  6-06-2007 à 19:58 #

Salut, a tous...

J'ai un petit probleme avec mo code... le but est qu'il vérifie que les entrées inscriptes sur un autre formulaires sont valides (ca ca marche) et si c'est valide, il doit les ecrire dans ma base de donnée...et la c'est le bug! j'ai déja fait 2 tests, et a chaque fois, les champs sont crées, mais les données sont vides (pour "email", "passe" et "pseudo" et nulles pour l'heure et la popularité.

Qu'est ce qui ne va pas et comment dois-je faire pour que les entrées soient bien ajoutées?

Les infos de connexion a MySQL sont fausses biensur, je ne voudrais pas me faire piquer ma bdd ^^






[ Ce message a été modifié par : : ben le 06-06-2007 20:12 ]

Le  6-06-2007 à 20:10 #

Salut,

A première vue, le problème vient de là:

Code:
  1.   if ($vpseudo = "" AND $vmot_de_passe = "" AND $vmail = "" AND $vremail = "" AND $vmail != $vremail)


    = assignation,
    == comparaison logique

    Double les = et ça devait marcher.
    Penses aussi à utiliser la fonction mysql_real_escape_string() pour qu'on ne puisse pas faire d'injection SQL.

    Ben

    Edit: j'ai mis le lien vers la page en français pour mysql_escape_string()


    [ Ce message a été modifié par : : ben le 06-06-2007 20:49 ]

    Le  6-06-2007 à 20:27 #

    Merci de ton message Ben...

    Sauf que ce bout de code la sert uniquement a vérifier que l'utilisateur a rentré des valeurs...mon probleme vient de l'ecriture dans la BDD donc c'est dans une autre partie du code!

    C'est quoi le mysql_real_escape_string() ? Ca sert a quoi et je dois le placer ou?

    Encore merci!

    [ Ce message a été modifié par : : HammHetfield le 06-06-2007 20:30 ]

    Le  6-06-2007 à 20:43 #


    Ton bout de code ne vérifie rien, il vide les champs. Quand il y a un seul = c'est une assignation, même dans un if, donc tu dis à PHP de mette "" dans chaque variable

    Ben

    Le  6-06-2007 à 20:46 #

    ^^ Okay...merci beaucoup, je me prennais vraiment la tete, encore merci, tu me sauves le code lol

    Je viens te dire si c'est bon ou pas, en eperant que ce sera positif!!!


    Ajout du 06-06-2007 à 20:53:

    Malheuresement... ca n'a pas marché! voila ce que je vois uand j'affiche ma bdd...

    Attachement: probleme php.bmp

    Le  6-06-2007 à 21:09 #

    Il faudrait que je voie ton code actuel, y compris celui du formulaire.

    Dans ton if tu devrais aussi mettre des OR plutôt que des AND, vu que ça doit bloquer si n'importe quel champs est vide et pas uniquement s'ils le sont tous (d'ailleurs le if actuel ne serait jamais vrai, car tu demandes que $vmail et $vremail soient à la fois vides et différents l'un de l'autre!)

    Il est probable que les champs de ton formulaire n'aient pas les mêmes noms, ou que celui ci soit transmis en GET et non en POST. Tu peux débugger en faisant:

    Code:
    1.   print_r($_POST); // afficher le contenu du formulaire transmis


      ainsi qu'en affichant ta commande SQL et en l'exécutant manuellement dans phpMyAdmin.

      Ben

      Le  6-06-2007 à 21:19 #






      Voila, merci de ton aide!


      [ Ce message a été modifié par : : ben le 06-06-2007 21:24 ]

      Le  6-06-2007 à 21:31 #


      le bug c'est que tu changes les noms de variables à chaque étape.

      p.ex dans ton formulaire c'est nmotdepasse mais après $vmot_de_passe = $_POST['nmot_de_passe'];

      idem pour le SQL ou $vemail devient $vmail

      Ben

      Le  6-06-2007 à 21:32 #

      Arg...j'ai passé une heure a vérifier et je me suis planté Oo...j'espere que ca marchera cette fois ^^ je retente!


      Ajout du 06-06-2007 à 21:42:

      Oui, ca marche...pour l'heure de connexion, j'ai abandonné...je sais pas si c'était necessaire et ca me parait trop compliqué, pour un premier site de jeu, je vais faire le minimum!

      Merci beaucoup Ben, je mets un marqueur résolu t'inquietes ^^

      HammHetfield!

      Le  6-06-2007 à 22:00 #


      Pour l'heure de connexion, le plus simple est d'utiliser un champs SQL datetime, et de l'initialiser avec NOW() plutôt qu'une variable PHP. P.ex INSERT INTO ... (..., `premiere_connexion`) VALUES ( ..., NOW() )

      @++
      Ben
      » Liste des Forums » Programmation

      Sujets Connexes

      Arakien & WéWé


      Forums

      Navigation


      Publicité

      Connectés

      Il y a actuellement 96 visiteurs et 1 toilien en ligne, ainsi que 4 connectés sur le tchat.

      Recherche

      Concours


      Sauf mention contraire, le contenu du blog et du forum est sous licence Creative Commons By-Sa. Vous avez le droit de le reproduire à condition de citer l'auteur, de faire un lien vers la page d'origine, et de partager vos travaux dérivés selon les mêmes conditions.

      Conditions d'utilisation -

      Partenaires: [Informatique Multimédia] [Portail du Maroc] [Actualité High Tech]
      [Tutoriaux Photoshop] [éligibilité ADSL] [Astuces Windows]

      Page générée en 95 millisecondes sur WWW1.