PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 30-05-2017 14:56:33

angeailes
Membre
Inscription : 30-05-2017
Messages : 1

Besoin d'aide

Bonjour à tous je début dans le PHP et mes deux balises ne sont pas prise en compte (BODY et HEAD)
je ne vois pas ou est mon erreur

merci d'avance

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="style.css" />
    <title>Bon, on dirait que c'est ok</title>
  </head>
  <body>
    <?php
      try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=leTest;charset=utf8', 'root', 'root');
        echo '<script type="text/javascript">'
        . 'alert("Connecté");'
        . '</script>';
      }
      catch (Exception $err)
      {
        echo '<script type="text/javascript">'
        . 'alert("Oups, on dirait que la connexion a échouée...");'
        . '</script>';
          die('Erreur : ' . $err->getMessage());    
      }
      $rep = $bdd->query('SELECT * FROM ARTICLE');
      $affichage = $rep->fetch();
    ?>
      <h1>
      <?php
      echo $affichage['titre'];
      ?>
      </h1>
      <p>
      <?php
      echo $affichage['contenu'];
      ?>

      </p>
    <form>
    <textarea name="title" rows="7" cols="38" onfocus="this.value=''">Titre</textarea>
    <input type="button" name="gras" value="G" OnClick="document.forms.portable.ecran.value='<strong></strong>'"/>
    <input type="button" name="B" value="b" OnClick="document.forms.portable.ecran.value='b'"/>
    <textarea name="comment" rows="7" cols="38" onfocus="this.value=''">Start typing</textarea>
    <br>
    <input type="reset" value="Effacer"></form>
   
    <php
    $_POST['comment']
    $_POST['title']
    if (isset ($_POST['title']) && (isset($_POST['comment'])
    {
      if ($_POST['title']!="") && ($_POST['comment']!="")
      {
        $sql = $ajout->prepare("INSERT INTO ARTICLE (contenu,titre) VALUES('".$_POST['contenu']."','".$_POST['titre']."')");
      }
    }
    $affichage->closeCursor();
    ?>
  </body>
</head>

Dernière modification par angeailes (30-05-2017 14:57:40)

Hors ligne

#2 31-05-2017 14:42:47

ViKKKing
Membre
Inscription : 29-03-2017
Messages : 12

Re : Besoin d'aide

Salut,

déjà, il faut laisser PHP te donner les messages d'erreurs : ça te permettra de savoir si/où ça plante.
donc, éviter les messages d'erreur "maison", qui plus est avec JS smile

au tout début de ta page, ajouter :

error_reporting(E_ALL); ini_set('display_errors', 1);

ensuite, laisser les réponses d'erreur aussi, donc, modifier:

$bdd = new PDO('mysql:host=localhost;dbname=leTest;charset=utf8', 'root', 'root');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // ajouter la gestion des erreurs
 

ensuite, il faut jeter un coup d'oeil aux "PPS" -> Parametrized Prepared Statements

$sql = $ajout->prepare("INSERT INTO ARTICLE (contenu,titre) VALUES('".$_POST['contenu']."','".$_POST['titre']."')");

ça, c'est la fête du slip pour les injections SQL...

NE JAMAIS UTILISER des variables venant d'un utilisateur quel qu'il soit !!! Il faut les tester, puis ensuite les passer à la moulinette des PPS

après ça, cherche la signification des messages d'erreur, et vérifie aussi la console du DEV tools de ton navigateur.
ensuite, on en saura plus (et toi aussi smile) et on pourra avancer...

PS: un bon tuto (en anglais) PDO tutorial

Dernière modification par ViKKKing (31-05-2017 14:44:25)


- Technical skill is mastery of complexity, while creativity is mastery of simplicity.
- Au fil des ans, je ne vieillis pas, je deviens vintage !

Hors ligne

#3 08-06-2017 09:42:34

celyne
Membre
Inscription : 08-06-2017
Messages : 3

Re : Besoin d'aide

Bonjour angeailes,

Tu as une faute sur ton head ! Je t'es écris dans ton code ce que j'ai vu qui n'allait pas.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="style.css" />
    <title>Bon, on dirait que c'est ok</title>
  </head> // Ici tu ferme ton head c'est bien !!!
  <body>
    <?php
      try
      {
        $bdd = new PDO('mysql:host=localhost;dbname=leTest;charset=utf8', 'root', 'root');
        echo '<script type="text/javascript">'
        . 'alert("Connecté");'
        . '</script>';
      }
      catch (Exception $err)
      {
        echo '<script type="text/javascript">'
        . 'alert("Oups, on dirait que la connexion a échouée...");'
        . '</script>';
          die('Erreur : ' . $err->getMessage());    
      }
      $rep = $bdd->query('SELECT * FROM ARTICLE');
      $affichage = $rep->fetch();
    ?>
      <h1>
      <?php
      echo $affichage['titre'];
      ?>
      </h1>
      <p>
      <?php
      echo $affichage['contenu'];
      ?>

      </p>
    <form>
    <textarea name="title" rows="7" cols="38" onfocus="this.value=''">Titre</textarea>
    <input type="button" name="gras" value="G" OnClick="document.forms.portable.ecran.value='<strong></strong>'"/>
    <input type="button" name="B" value="b" OnClick="document.forms.portable.ecran.value='b'"/>
    <textarea name="comment" rows="7" cols="38" onfocus="this.value=''">Start typing</textarea>
    <br>
    <input type="reset" value="Effacer"></form>
   
    <php
    $_POST['comment']
    $_POST['title']
    if (isset ($_POST['title']) && (isset($_POST['comment'])
    {
      if ($_POST['title']!="") && ($_POST['comment']!="")
      {
        $sql = $ajout->prepare("INSERT INTO ARTICLE (contenu,titre) VALUES('".$_POST['contenu']."','".$_POST['titre']."')");
      }
    }
    $affichage->closeCursor();
    ?>
  </body>
</head> // Pourquoi tu le referme une deuxième fois ici? tu dois pas l'avoir en bas ! Tu peux le retirer à cette endroit car il sert a rien et ta faute peu venir de ca.  

Hors ligne

Pied de page des forums