Petit Problème

Ce sujet est résolu
Default
,

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);
}

6 Réponse

Default
,

Bonsoir,

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

41190
,

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 ?

Default
,

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 '

' . print_r($variable, true) . '
';
}
function str_random($length){
$alphabet = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
return substr(str_shuffle(str_repeat($alphabet, $length)), 0, $length);
}
Default
,

Si pourquoi ?

Default
,

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

Default
,

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