Bonjour j'ai un souci dans le tuto calendrier sur la partie 2

quand je clique sur le liens pour afficher les evenement j'ai cette erre

Fatal error: Cannot redeclare e404() (previously declared in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php:4) in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php on line 3

voici mon code :

<?php
require '../vendor/autoload.php';

function e404 () {
    require '../public/404.php';
    exit();
}

function dd(...$vars){

    foreach ($vars as $var) {
        echo '<pre>';
        print_r($var);
        echo '</pre>';
    }
}

function get_pdo (): PDO {
    return new  PDO('mysql:host=localhost;dbname=tutocalendrier','root','root', [
             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
        ]);
}

function h(?string $value): string{
    if ($value === null){
        return '';
    }
    return htmlentities($value);
}

4 réponses


voici ou j'ai appelé e404( );

<?php 
require '../src/bootstrap.php';
require '../src/Calendar/Events.php';

$pdo = get_pdo();
$events = new Calendar\Events($pdo);

if (!isset($_GET['id'])){
    header('Location: /404.php');
}

try {
  $event = $events->find($_GET['id']);
} catch (\Exception $e) {
  e404();
}
?>

<?php require '../views/header.php'; ?>

  <div class="container">

    <h1><?= h($event->getName()); ?></h1>
    <ul>
      <li>Date: <?= $event->getStart()->format('d/m/Y');?></li>
      <li>Heure de démarrage: <?= $event->getStart()->format('H:i'); ?></li>
      <li>Heure de fin: <?= $event->getEnd()->format('H:i');?></li>
      <li>
        Description: <br>
        <?= h($event->getDescription()); ?>
      </li>
    </ul>
  </div>

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

voici l'url : http://localhost:8000/event.php?id=1
voici le message d'erreur :
Fatal error: Cannot redeclare e404() (previously declared in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php:4) in C:\Users\lenovo PC\World\PRO_S1\src\bootstrap.php on line 3

Bonjour,

Extrait de la documentation : "PHP ne supporte pas la surcharge, la destruction et la redéfinition de fonctions déjà déclarées. "

https://www.php.net/manual/fr/functions.user-defined.php

Bonne journée,

merci bonne journée