Parametre d'une fonction avec $_POST

Résolu
stupidon737 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
stupidon737 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Membre Dernière intervention   57
 
Bonsoir,

Il y a une virgule inutile ici 'email' => $_POST['email'],
Cdlt.
0
stupidon737 Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   3
 
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   Statut Membre Dernière intervention   57
 
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   Statut Membre Dernière intervention   3
 
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   Statut Membre Dernière intervention   3
 
Merci le père, effectivement PHP n'a pas aimé les variables en tableau.
0