Page 1 sur 1

Souci avec formulaire news

Posté : 02 déc. 2013, 20:35
par tgv2000fr
Bonjours,

Je tente de mettre en place un formulaire pour mettre des news.

Je me suis inspiré d'un tuto auquel j'ai changer l’extension pour accéder mySQL passant de "mysql_" à PDO.

Mais j'ai des souci de syntaxe sur mes pages :

Ficher admin pour éditer les news :
<?php
try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
	}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
	}

if (isset($_GET['modifier_news'])) 
{
    $_GET['modifier_news'] = quote(htmlspecialchars($_GET['modifier_news']));
    $news_du_centre = $bdd->query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
    $data_news = $news_du_centre->fetch()
    
    $titre = stripslashes($data_news['titre']);
    $contenu = stripslashes($data_news['contenu']);
    $id_news = $data_news['id'];
}
else
{
    $titre = '';
    $contenu = '';
    $id_news = 0;
}
?>
<form action="list_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
    
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
Ficher admin qui liste les news :

<h2><a href="edit_news.php">Ajouter une news</a></h2>
<?php
try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
	}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
	}

if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    if ($_POST['id_news'] == 0)
    {
        $bdd->exec("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
        $_POST['id_news'] = addslashes($_POST['id_news']);
        $bdd->exec("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
    }
}

if (isset($_GET['supprimer_news'])) 

    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    $bdd->exec('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$news_du_centre = $bdd->query('SELECT * FROM news ORDER BY id DESC');
while ($data_news = $news_du_centre->fetch())
{
?>
<tr>
<td><?php echo '<a href="edit_news.php?modifier_news=' . $data_news['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="list_news.php?supprimer_news=' . $data_news['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($data_news['titre']); ?></td>
<td><?php echo date('d/m/Y', $data_news['timestamp']); ?></td>
</tr>
<?php
} 
?>
</table>
Ficher où les news sont affichées :

<p>Voici les dernières news :</p>
 
<?php

try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
	}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
	}

$news_du_centre = $bdd->query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($data_news = $news_du_centre->fetch())
{
?>
<div class="news">
    <h3>
        <?php echo $data_news['titre']; ?>
        <em>le <?php echo date('d/m/Y à H\hi', $data_news['timestamp']); ?></em>
    </h3>
    
    <p>
<?php
    $contenu_news = nl2br(stripslashes($data_news['contenu']));
    echo $contenu_news;
?>
    </p>
</div>
Pour le moment je n'est pas sécurisé tout ça mais je le ferait lorsque j'aurais résolu le souci que j'ai.

Avec vous des idées ?

merci

Re: Souci avec formulaire news

Posté : 03 déc. 2013, 00:04
par moogli
Salut,

Quel est ton probleme ?

Tu as trois fichiers et pas de ligne de code ça fait beaucoup à analyser pour toi.

S'il y a des erreurs de syntaxe un ide devrait, en plus des messages d'erreur de php, t'aider à résoudre ton problème.

Si tu limite au code impacté et quid tu nous donne plus d'info on pourras être plus efficace ;)


@+

Re: Souci avec formulaire news

Posté : 03 déc. 2013, 10:49
par tgv2000fr
Oui en effet tu as raison désolé :)

J'ai trouvé mes erreur dans deux des fichier (des ";" oubliés)

Mais j'ai enrcore une erreur :

J'ai ceci :

"Parse error: syntax error, unexpected end of file in /homez.706/blabla/www/news.php on line 81"

La ligne 81 étant la dernière du fichier juste après la balise "</html>"

Voici le fichier :
<body>

merci
<html>
<p>Voici les dernières news :</p>
 
<?php

try
{
$bdd = new PDO('mysql:host=SERVER;dbname=DB', 'LOGIN', 'PASS');
	}
catch(Exception $e)
{
	}

$news_du_centre = $bdd->query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($data_news = $news_du_centre->fetch())
{
?>
<div class="news">
    <h3>
        <?php echo $data_news['titre']; ?>
        <em>le <?php echo date('d/m/Y à H\hi', $data_news['timestamp']); ?></em>
    </h3>
    
    <p>
    <?php
    $contenu_news = nl2br(stripslashes($data_news['contenu']));
    echo $contenu_news;
    ?>
    </p>
</div>

</div>
<?php
 include 'overall_footer.txt';
 ?>
</body>
</html>

Re: Souci avec formulaire news

Posté : 03 déc. 2013, 12:30
par tgv2000fr
Bon j'ai trouvé, une "}" manquait, une fois de plus il suffisait de bien se relire ^^

Hier soir j'avais du mal mais après un bon dodo j'ai vu directement^^

:)