Page 1 sur 2

[base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 17:37
par Guillaumedu73
Bonjour
je vous présente mon problème : j'ai crée un script de 2 pages permettant de créer des News(=billets) . Or quand je veux mettre par exemple intégrer une vidéo youtube :
<iframe width="560" height="315" src="*********************" frameborder="0" allowfullscreen></iframe>
Je n'y arrive pas , il y'a un carré blanc 'assez grand" avec comme fond la page d'erreur D'IE quand il trouve pas la vidéo.

Voici le code de la page d'ajout du billet:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Mon blog</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		
    </head>
        
    <body>
<?php
if(!isset($_POST['rajout']))
{
?>
<form method="post" action="billetducon.php">
<p>
<input type="text" name="titre" id="titre" value="titre"/>
<br/>
<textarea name="rajout" rows="10" cols="45">
Entrez votre texte
</textarea>
<input type="submit" value="valider"/>
<?php
}


else
{
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=;dbname=', '', '', $pdo_options);
//rajout connexiion
$req=$bdd->prepare('INSERT INTO ducon(titre,contenu,date_creation) VALUES (:titre,:contenu,NOW())');
$req->execute(array('titre'=>$_POST['titre'],'contenu'=>$_POST['rajout']));

$req->closeCursor();

}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
}
?>
</body>
</html>
La page d'affichage:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Poliboolold-groupe</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       <link rel="stylesheet" media="screen" type="text/css" title="poli2" href="style.css" />

          </head>
 
   <body>

       <div id="banniere">
       

       </div>
 
       <div id="barreprojet">        
             <a href="warning.php">Docteur Ducon</a>   <a href="warning.php">Polipeople</a>   <a href="warning.php">Polilogiciel</a>   <a href="warning.php">Politribale</a>    <a href="tchat/mini_chat.php">Tchat</a>    <a href="warning.php">Forum</a>    <a href="warning.php">Aide</a>    <a href="warning.php">Suggestions</a>    <a href="warning.php">livre d'or</a>    <a href="warning.php">newlester</a>        
       </div>
 
 
 


<div id=membre>
<?php
if(isset ($_SESSION['id']) AND isset ($_SESSION['pseudo']))
{
echo "Bonjour ";
echo $_SESSION['pseudo'];

?>
<br/>
<a href="warning.php">Aller sur votre espace membre</a>
<br/>
<a href="membres/deconnexion.php">Déconnectez-vous</a>

<?php
}
else
{
?>
<h2>Espace-membre</h2>
<p>Veuillez vous connecter <br/>
<form method="post" action="membres/connexion.php">
<p>
<label for="pseudo">Pseudo:</label>
<input type="text" name="pseudo" id="pseudo" value="Pseudo"/>
<br/>
<label for="Mot de passe">Mot de passe:</label>
<input type="password" name="Motdepasse" id="Motdepasse" value="Mot de passe"/>
<br/>
<input type="submit" value="Valider" />

</p>
</form>
<p>
<br/>
Pour vous inscrire , cliquez <a href="membres/membres_inscription.php">Ici</a>
</p>
<?php
}
?>
</div>
<div id="actu">

<?php
// Connexion à la base de données
try
{
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
	$bdd = new PDO('mysql:host=;dbname=', '', '',$pdo_options);
}
catch(Exception $e)
{
        echo '<p>Erreur PDO dans '.$e->getFile().' L.'.$e->getLine().' : <br/> '.$e->getMessage().'<br /></p>';
}

$compter= $bdd->query('SELECT COUNT(id) AS nombre FROM ducon');
$resultat= $compter->fetch();


$nombre_article=$resultat['nombre'];
$perpage=4;
$numpage= ceil($nombre_article/$perpage);


if(isset($_GET['p'])AND $_GET['p']>0 AND $_GET['p']<=$numpage)
{
$pagecourante=$_GET['p'];
}
else
{
$pagecourante=1;
}

$compter->closeCursor();



// On récupère les 5 derniers billets
$req = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM ducon ORDER BY date_creation DESC LIMIT '.(($pagecourante-1)*$perpage).','.$perpage.'') or die(print_r($bdd->errorInfo()));


while ($donnees = $req->fetch())
{
?>
<div class="news">
    <h3>
        <?php echo htmlspecialchars($donnees['titre']); ?>
        <em>le <?php echo $donnees['date_creation_fr']; ?></em>
    </h3>
    
    <p>
    <?php
    // On affiche le contenu du billet
    echo nl2br($donnees['contenu']);
    ?>
    <br />
    <em><a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em>
    </p>
</div>
<?php
} // Fin de la boucle des billets
$req->closeCursor();

for($i=1;$i<=$numpage;$i++)

{
if($i==$pagecourante)
{
echo "$i";
}
else
{         
echo "<a href=\"blog.php?p=$i\">$i</a>/";
}
}
?>
</div>



 
       <div id="pagebas">
       <p><a href="mailto:[email protected]">Contact</a>
              </p>

       </div>
 
   </body>
</html>
Merci d'avance

Re: [base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 19:25
par mathiro
Un problème d'encodage non?

Re: [base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 19:39
par Ryle
Si tu as un espace blanc qui t'ouvre une autre page html (même si c'est le message d'erreur de IE), c'est que l'iframe est bien interprétée... ton code est donc bon, le problème vient vraisemblablement de l'url que tu utilises ...

Re: [base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 21:06
par guillaumedu73
Je vais sur une vidéo youtube. Je clique sur partager puis sur intégrer.
Pour la version moderne d'intégration : c'est une page d'erreur IE (dans un cadre)
Pour l'anciene version d'intégration : c'est rien qui s'affiche :carrément!!!!

Re: [base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 22:31
par mathiro
Donne un exemple

Re: [base de données ]ajout de HTML dans un billet

Posté : 08 oct. 2011, 23:05
par Ryle
Contrôle le code source de la page qui est générée pour vérifier qu'il n'y a pas d'erreur... le nl2br() va rajouter des <br /> là où dans ton textarea tu as des retours à la ligne, ça peut peut-être poser problème s'il y a des retours à la ligne dans ta balise...

Re: [base de données ]ajout de HTML dans un billet

Posté : 09 oct. 2011, 13:49
par Guillaumedu73
It's a chinese language fur me :roll:

Donc concretement je dois changez quoi dans mon script?

Re: [base de données ]ajout de HTML dans un billet

Posté : 09 oct. 2011, 14:40
par Ryle
Dans ce cas on va peut être commencer par t'apprendre le chinois ;)

Ton code php sert à générer le code html qui est envoyé au navigateur pour être affiché. Quand dans ton navigateur tu fais afficher le code source de la page, c'est le code html généré qui va apparaître et s'il n'est pas bon, le navigateur ne pourra rien en faire.

Il faut donc commencer par regarder à quoi ressemble le code généré et voir si celui-ci est correct (repère l'endroit du code source où se trouve ton iframe, et vérifie s'il correspond bien au code que tu dois utiliser dans ta page).

S'il ne correspond pas, ben... montre le nous :) en fonction des choses en plus ou en moins ou en travers qu'il contiendra, il sera plus facile de savoir ce qui pose problème dans ton code php et qui empêche de faire apparaître la page attendue :)

Re: [base de données ]ajout de HTML dans un billet

Posté : 10 oct. 2011, 12:04
par Guillaumedu73
Euh attend la tu me raconte du code en abstrait(=francais) , je fais comment dans la pratique?

Re: [base de données ]ajout de HTML dans un billet

Posté : 10 oct. 2011, 12:19
par Mazarini
En gros, ce qui t'est demandé, c'est comment est prise en compte l'iframe dans la page qui s'affiche.
Tu as saisi :
<iframe width="560" height="315" src="*********************" frameborder="0" allowfullscreen></iframe>
et qu'est ce qui s'affiche en html dans ta page ?

Re: [base de données ]ajout de HTML dans un billet

Posté : 10 oct. 2011, 20:37
par Guillaume73
On m'affiche un cadre avec la page d'erreur du navigateur utilisé.

Re: [base de données ]ajout de HTML dans un billet

Posté : 10 oct. 2011, 21:41
par moogli
quelle erreur ? une 404 si oui c'est que le lien est pas bon !

@+

Re: [base de données ]ajout de HTML dans un billet

Posté : 12 oct. 2011, 12:10
par Guillaume73
Non un erreur du type: http://poliboolold.fr/ducon.php (le premier cadre)

Re: [base de données ]ajout de HTML dans un billet

Posté : 12 oct. 2011, 20:53
par Ryle
Si tu regardes le code source de la page que tu génères, celui-ci n'est pas correct :

Code : Tout sélectionner

<iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/l7ZF7GI5LDw\" frameborder=\"0\" allowfullscreen></iframe> <br />
Il ne devrait pas y avoir de " \ " devant tes guillemets...

Un peu plus loin, c'est encore pire :
<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"http://www.youtube.com/embed/mT7B8OcH-Dw\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>    <br />
Ta page ne peut donc pas s'afficher correctement.

Il te faut donc trouver à quel moment tu ajoutes ces \ dans ta chaine (est-ce à l'affichage, à la lecture des données en base, à l'enregistrement des données, à l'envoi du formulaire...) pour éviter de le faire. Ca devrait te donner un code propre ce qui devrait grandement t'aider à avoir un site qui fonctionne :)

Re: [base de données ]ajout de HTML dans un billet

Posté : 13 oct. 2011, 21:09
par Guillaumedu73
Désolé mais je comprend toujours rien. Je dois changez quoi comme chose , arreter de me sortir la meme chose que c'est moi qui doit trouvé: moi je suis débutant pas php bac +5.
Je dois changer quelque chose dans le code des mes pages (que je vous ai fourni je vous rapelle), ou dans le code d'envoie?

Merci d'avance