Parametre d'une fonction avec $_POST

Résolu/Fermé
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 - 26 mars 2013 à 19:39
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 - 26 mars 2013 à 21:04
Bonjour,

J'essaye de faire une fonction qui introduit des valeurs dans une bases de données.

J'ai éssayé ce code :
include("connexion.php");

function insert_bdd($_POST['pseudo'], $_POST['pwd'], $_POST['email'])
{
$requete = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES (:pseudo, :pass, :email, NOW())' );

$requete->execute(array(
                        'pseudo' => $_POST['pseudo'],
                        'pass' => sha1($_POST['pwd']),
                        'email' => $_POST['email'],                 
));
}
$requete->closeCursor();


et celà donne une erreur php comme ceci :
Parse error: syntax error, unexpected '[', expecting ')' in D:\wamp\www\PHP-REPROG\PartIV\Membres\modele\insert_inscription.php on line 9


la ligne 9 c'est la ligne de la declaration de la fonction.

Merci pour votre aide.
A voir également:

4 réponses

Utilisateur anonyme
26 mars 2013 à 20:49
Bonsoir

Il y a une erreur dans la déclaration de la fonction elle-même :
function insert_bdd($_POST['pseudo'], $_POST['pwd'], $_POST['email'])

Les paramètres doivent être - au niveau de la déclaration - des variables simples, même si lors de l'appel tu peux passer des éléments de tableau comme valeurs
Il fallait écrire
function insert_bdd($pseudo, $pwd, $email)

et bien sûr modifier les apparitions des variables correspondantes à l'intérieur de la fonction
1
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
26 mars 2013 à 19:45
Bonsoir,

Il y a une virgule inutile ici 'email' => $_POST['email'],
Cdlt.
0
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 3
26 mars 2013 à 19:51
Merci pour ta reponse ReDLoG !
J'ai supprimé le virgule mais ca n'a changé rien.
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
26 mars 2013 à 19:56
Alors l'erreur se situe avant la déclaration de la fonction, vérifies ton code avant cette fonction mais également dans le fichier en include connexion.php
Cdlt.
0
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 3
26 mars 2013 à 20:12
Avant la fonction il n'y a pas d'autre code que le include et la balise ouverture <?php. J'ai déjà utilisé ce include dans d'autres fonctions mais ca a marché.
Voilà son contenu.
try{
    $bdd = new PDO("mysql:host=localhost;dbname=test","root","");
    //$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(exception $e)
{
    die('Erreur :'. $e->getMessage());
}

Mais là, bizarrement, il y a une erreur.
0
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 3
26 mars 2013 à 21:04
Merci le père, effectivement PHP n'a pas aimé les variables en tableau.
0