Bonjour , je suis actuellement le tuto pour l'espace membre de Grafikart et j'obtien cette petite érreur :
Fatal error: Cannot redeclare debug() (previously declared in D:\wamp\www\membre\inc\functions.php:2) in D:\wamp\www\membre\inc\functions.php on line 4

J'ai beau cherché je ne trouve pas...

Voici mon code :

<?php
function debug($variable){
    echo '<pre>' . print_r($variable, true) . '</pre>';
}
function str_random($length){
    $alphabet = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
    return substr(str_shuffle(str_repeat($alphabet, $length)), 0, $length);
}

7 réponses


kanah
Réponse acceptée

Bonsoir,

Dans ton header tu n'appelles pas ton fichier functions ?

Bonsoir

L'erreur dit que la function qu'il ne peut pas re-déclarer la fonction, elle est déjà déclaré quelque part vant dans le fichier function.php (à la ligne 2).
Et l'erreur vient de la ligne 4.
Tu pourrais montrer le fichier où tu veux l'utiliser ?

Nucky
Auteur

Register.php

<?php
require_once 'inc/functions.php';
if (!empty($_POST)) {

    $errors = array();
    require_once 'inc/db.php';

    if(empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])) {
        $errors['username'] = "Votre pseudo n'est pas valide (alphanumérique)";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE username = ?');
        $req->execute([$_POST['username']]);
        $user = $req->fetch();
        if($user){
            $errors['username'] = 'Ce pseudo est déjà pris';
        }
    }

    if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errors['email'] = "Votre email n'est pas valide";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE email = ?');
        $req->execute([$_POST['email']]);
        $user = $req->fetch();
        if($user){
            $errors['email'] = 'Cet email est déjà utilisé pour un autre compte';
        }
    }

    if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']) {
        $errors['password'] = "Vous devez entrer un mot de passe valide";
    }

    if(empty($errors)){

        $req = $pdo->prepare("INSERT INTO users SET username = ?, password = ?, email = ?, confirmation_token = ?");
        $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
        $token = str_random(60);
        $req->execute([$_POST['username'], $password, $_POST['email'], $token]);
        $user_id = $pdo->lastInsertId();
        mail($_POST['email'], 'Confirmation de votre compte', "Afin de valider votre compte merci de cliquer sur ce lien\n\nhttp://localhost/membre/confirm.php?id=$user_id&token=$token");
        header('location: login.php');
        exit();
    }
}
?>
<?php require 'inc/header.php'; ?>

<h1>S'inscrire</h1>

<?php if(!empty($errors)): ?>

    <div class="alert alert-danger">
        <p>Vous n'avez pas remplis le formulaire correctement</p>
        <ul>
        <?php foreach($errors as $error): ?>
            <li><?= $error; ?></li>
        <?php endforeach; ?>
        </ul>
    </div>

<?php endif; ?>

<form action="" method="post">

    <div class="form-group">

        <label for="">Pseudo</label>
        <input type="text" name="username" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Email</label>
        <input type="text" name="email" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Mot de Passe</label>
        <input type="password" name="password" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Confirmez votre mot de passe</label>
        <input type="password" name="password_confirm" class="form-control"/>

    </div>

        <button type="submit" class="btn btn-primary">M'inscrire</button>

</form>

<?php require 'inc/footer.php'; ?>

Et le Functions.php

<?php
function debug($variable){
echo '<pre>' . print_r($variable, true) . '</pre>';
}
function str_random($length){
$alphabet = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
return substr(str_shuffle(str_repeat($alphabet, $length)), 0, $length);
}

Nucky
Auteur

Si pourquoi ?

Nucky
Auteur

Sujet Réglé ! Merci Kanah , grace a ta réflexion j'ai su trouver.

bonjour ! svp comment l'avez vous resolu, je sui face au meme probleme depuis deux jours...Merci d'avance

Salut, @Just Tsemo
Le sujet date un peu je te conseil de soit lire la réponse en vert (marqué par l'auteur comme réponse qui a résolu son problème) soit de créer ton propre topic pour espérer avoir une réponse de la communauté.