CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème PHP

GhostOfRousseau
GhostOfRousseau
Niveau 4
20 mai 2014 à 20:40:01

Bonsoir,
Alors voilà, je dois créer un site pour un projet scolaire, mais j'ai un problème avec la page d'inscription...
Le strlen n'est pas reconnu pour les mots de passe et du coup ça me fait une erreur de syntaxe...
Voilà mon code: http://pastebin.com/wZiPLjU0
Et le message d'erreur: Parse error: syntax error, unexpected '}' in /home/www/1d54c7a406cf560eb044366414a82b5f/users/g
r1/web/nouveauUtilisateur.php
on line 46

Merci :)

Pseudo supprimé
Pseudo supprimé 20 mai 2014 à 20:57:38

Salut,

Tu devrais utiliser PDO pour t'éviter ce genre de problèmes. Ensuite, tu appelles MySQL_close avant MySQL_error ; je ne me rappelle pas bien du fonctionnement de MySQL_close, mais ça ne me semble pas très logique.

Bref, la ligne 46, c'est bien celle juste après echo "Problème : ".mysql_error(); ?

Pseudo supprimé
Pseudo supprimé 20 mai 2014 à 20:58:43

Hum, mon message s'est un peu mélangé dans ma tête, après modif ; donc "tu devrais utiliser PDO pour t'éviter des problèmes", ça ira mieux.

GhostOfRousseau
GhostOfRousseau
Niveau 4
20 mai 2014 à 21:01:44

Ah zut, j'ai pas remarqué que les lignes correspondaient pas... (j'ai pas mis tout le code sur pastebin) mais c'est cette ligne qui pose problème: if (strlen ($password, 'UTF-8') > 18){$msg = "Mot de passe trop long, saisir un mot de moins de 18 caractères <br/>"}; ligne 10 sur le pastebin :)

Et tu pourrais m'expliquer le PDO, j'y connais pas grand chose en PHP à part ce qu'on a fait en cours :hap:

GhostOfRousseau
GhostOfRousseau
Niveau 4
20 mai 2014 à 21:08:52

Enfin, ce que je voudrais faire, c'est affiché un message d'erreur si le mot de passe fait plus de 18 caractères. En espérant que ça aide

Pseudo supprimé
Pseudo supprimé 20 mai 2014 à 21:19:25

Voilà pour PDO : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/lire-des-donnees-2
Dans ces quelques pages, tu as les bases : Lire les données, enregistrer, modifier, effacer.

Bref, concernant ton problème, c'est parce que tu inverses ; et }. La syntaxe, c'est ça :

if (strlen ($password, 'UTF-8') > 18) {
$msg = "Mot de passe trop long, saisir un mot de moins de 18 caractères <br/>";
}

GhostOfRousseau
GhostOfRousseau
Niveau 4
20 mai 2014 à 21:24:48

Youpi, merci beaucoup :coeur: , en effet c'était bien à cause du ; et }. Je vais regarder pour le PDO :)

yes-man
yes-man
Niveau 13
20 mai 2014 à 21:38:57

J'en profite warp, c'est mieux d'utiliser un array ou d'utiliser les bindparam ?
J'ai pris l'habitude (mauvaise peut-être) de toujours utiliser bindParam.. :(

yes-man
yes-man
Niveau 13
20 mai 2014 à 21:41:43

J'ai aussi l'habitude de TOUJOURS utiliser des requêtes préparées, données utilisateurs présentes ou non :(

Pseudo supprimé
Pseudo supprimé 20 mai 2014 à 21:47:53

Hum, question pointue ; array() ne retourne que des données de même type, si je ne dis pas de bêtises, alors que bindValue permet plus de souplesse pour manier des types différents (des dates, par exemple, qui ne seraient pas retournées en type string).
bindParam n'est utilisé que pour les requêtes préparées, justement.

Après, je ne saurais pas te dire s'il vaut mieux utiliser des requêtes ou non ; c'est assez loin derrière moi tout ça.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment