Page ne fonctionne pas

Résolu/Fermé
Kalen - Modifié le 22 juil. 2021 à 18:09
yg_be Messages postés 20717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2022 - 23 juil. 2021 à 11:12
Bonjour,
j'ai un problème avec un fichier php je ne sais pas d'où ça vient mais quand je vais sur mon site ça marque "Cette page ne fonctionne pas"

mon code :
<?php
header( 'content-type: text/html; charset=utf-8' );
//-----------------------------------------------//
// Affichage des erreurs PHP
//-----------------------------------------------//
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//-----------------------------------------------//
//connexion à la bdd
//-----------------------------------------------//
try{
  $bdd=new PDO("mysql:host=lesfonbamentom.mysql.db;dbname=lesfonbamentom;charset=utf8mb4","lesfonbamentom","motDePasse");
  // Activation des erreurs PDO
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}catch(PDOException $e) {
  die('Erreur : ' . $e->getMessage());
}

//-----------------------------------------------//
//traitement du formulaire
//-----------------------------------------------//
if(isset($_GET['id'])){
    $art=$bdd-> prepare("SELECT * FROM books WHERE id=:id");
    $art->execute(array(':id'=>$_GET['id']));
    $edit=$art->fetch();
}

if (isset($_POST['OK'])){
    $taille = getimagesize($_FILES['photo']['tmp_name']);
    $imageName=$_FILES['photo']['name'];
    $largeur = $taille[0];
    $hauteur = $taille[1];
    $largeur_miniature = 500;
    $hauteur_miniature = $hauteur / $largeur * 500;
    
    switch ($taille[2]) {
        case 1:
            $im = imagecreatefromgif($_FILES['photo']['tmp_name']);
            break;
        case 2:
            $im = imagecreatefromjpeg($_FILES['photo']['tmp_name']);
            break;
        case 3:
            $im = imagecreatefrompng($_FILES['photo']['tmp_name']);
            break;
        default:
        echo 'Erreur!';
            break;
    }
    $im_miniature = imagecreatetruecolor($largeur_miniature, $hauteur_miniature);
    imagecopyresampled($im_miniature, $im, 0, 0, 0, 0, $largeur_miniature, $hauteur_miniature, $largeur, $hauteur);
    imagejpeg($im_miniature, 'images/'.$imageName, 90);



    //récupération propre des variables AVANT de les utiliser
  $titre = !empty($_POST['titre']) ? $_POST['titre']: NULL;
  $contenu = !empty($_POST['contenu']) ? $_POST['contenu']: NULL;
  $article_array=explode(" ", htmlspecialchars($contenu));

            $preface='';
            for($i=0;$i<20;$i++){
               if($article_array[$i]=='<img1>' OR $article_array[$i]=='<img2>' OR $article_array[$i]=='<img3>' OR $article_array[$i]=='<img4>'){
                  $article_array[$i]='';
               }
                $preface=$preface.' '.$article_array[$i];
            }
  $article_array2=explode(" ", $contenu);
  $article='';
  for($i=0;$i<count($article_array2);$i++){
          if($article_array2[$i]=="<img1>"){
              $article=$article.' <img src="/images/'. $_FILES['photo']['name'].'" alt="L\'image ne fonctionne visiblement pas mais 
              c\'est rien c\'est la rue.
              Passez une bonne journée ;)">';
          }elseif($article_array2[$i]=="<img2>"){
              $article=$article.' <img src="/images/'. $_FILES['photo2']['name'].'" alt="L\'image ne fonctionne visiblement pas mais 
              c\'est rien c\'est la rue.
              Passez une bonne journée ;)">';
          }elseif($article_array2[$i]=="<img3>"){
              $article=$article.' <img src="/images/'. $_FILES['photo3']['name'].'" alt="L\'image ne fonctionne visiblement pas mais 
              c\'est rien c\'est la rue.
              Passez une bonne journée ;)">';
          }elseif($article_array2[$i]=="<img4>"){
              $article=$article.' <img src="/images/'. $_FILES['photo4']['name'].'" alt="L\'image ne fonctionne visiblement pas mais 
              c\'est rien c\'est la rue.
              Passez une bonne journée ;)">';
          }else{
          if($article!=''){
                          $article=$article.' '.$article_array2[$i];
          }else{
              $article=$article_array2[$i];
          }
      }
  
      }

  if (isset($_POST['titre']) AND isset($article)){
    $sqlUpdate="UPDATE books SET title=:titre,resume=:contenu,img=:img WHERE id=:id";
    $datasUpdate=array(':titre'=>$titre, ':contenu'=>$article':img'=>$imageName,':id'=>$_GET['id']);
    $sql = "INSERT INTO books (id,title, resume,img,preface) VALUES (:id,:titre, :contenu,:img,:preface)";
    $datas = array(':id'=>NULL,':titre'=>$titre, ':contenu'=>$article,':img'=>$imageName,':preface'=>$preface);
    try{ 
        if(isset($_GET['id'])){
            $requete = $bdd -> prepare($sqlUpdate);
            $requete->execute($datasUpdate);
            $message="<font color=green>l'article à bien été modifié!</font><br>";
        }else{
            $requete = $bdd -> prepare($sql);
            $requete->execute($datas);
            $message="<font color=green>l'article à bien été envoyé!</font><br>";
        }
    }catch(Exception $e){
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo '<br>';
      echo " Les datas : " ;
      print_r($datas);
    }
    
  }
}



?>
<!DOCTYPE html>
<html>
  <head>
     <title>Test</title>
     <meta charset="utf-8">
     <style>
        td:nth-child(1) {
    text-align: right;
}
     </style>
  </head>
  <body>
  <pre>
    <u>pour mettre en les titres 2:</u>
                                <h2></h2>
    <u>pour mettre en italique:</u>
                            <i></i>
    <u>si tu veut juste mettre en bleu (ou jaune pour thème sombre):</u>
    <span class="highlight"></span>

    <u>pour mettre la conclusion:</u>
                                <b></b>
    <u>pour mettre un lien:</u>
                            <a href="là tu mets l'adresse de la page"></a>
    <u>pour faire une liste</u>
                            <ul>
                                <li></li>
                                <li></li>
                                <li></li>
                            </ul>
    </pre>
    <p style="position:absolute;top:50px;right:50px;color:red;font-size:40px;">mettre un espace avant les points d\'exclamation !</p>
   <form method="POST" action="" enctype="multipart/form-data">
   <table>
      <tr>
         <td><label>Titre:</label></td>
         <td><input value="<?php if(isset($edit['titre'])){echo $edit['titre'];}?>" type='text' name="titre" placeholder='Titre...'/></td>
         
      </tr>
      <tr>
         <td><label>Résume:</label></td>
         <td><textarea name="contenu" placeholder='Résume...'><?php if(isset($edit['contenu'])){echo $edit['contenu'];}?></textarea></td>
      </tr>
      <tr>
         <td><label>Image:</label></td>
         <td><input type="file" name="photo"></td>
      </tr>
      
     
      <tr>
         <td><label>Description:</label></td>
         <td><textarea name='description' placeholder='Description...'><?php if(isset($edit['description'])){echo $edit['description'];}?></textarea> </td>
      </tr>
      <tr>
         <td></td>
         <td><input type='submit' value='Envoyer!' name="OK"/></td>
      </tr>
   </table>
   </form>
   <?php
   if(isset($message)){
       echo $message;
   }
   ?>
   <a href="/admin_livres.php">voir les livres</a>
  </body>
</html>

j'éspere que vous pourrez m'aider

merci d'avance


Configuration: Windows / Chrome 91.0.4472.124

4 réponses

jordane45 Messages postés 36573 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 novembre 2022 4 398
22 juil. 2021 à 18:45
Bonjour,

Mets en commentaire une partie de ton code PHP et regarde si la page s'affiche ...
Si oui.. c'est que le souci se trouve dans la partie en commentaire ...
Il suffit d'affiner la zone en mettant en commentaire des petites parties du code ... (attention à bien conserver les accolades de tes différents IF / ELSE .. FOR .. sinon tu vas créer d'autres erreurs..

0
J'ai fais ce que vous m'avez dis et j'ai trouvé que l'erreure est dans les quatre lignes là :

$sqlUpdate="UPDATE books SET title=:titre,resume=:contenu,img=:img WHERE id=:id";
    $datasUpdate=array(':titre'=>$titre, ':contenu'=>$article':img'=>$imageName,':id'=>$_GET['id']);
    $sql = "INSERT INTO books (id,title, resume,img,preface) VALUES (:id,:titre, :contenu,:img,:preface)";
    $datas = array(':id'=>NULL,':titre'=>$titre, ':contenu'=>$article,':img'=>$imageName,':preface'=>$preface);


je ne trouve toujours pas qu'est-ce qui pose problème
0
C'est bon merci beaucoup il manquait juste une virgule à la deuxième ligne
0
yg_be Messages postés 20717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2022 1 260
23 juil. 2021 à 11:12
bonjour,
d'autres pages fonctionnent?
0