[RESOLU] Souci avec formulaire news

Eléphanteau du PHP | 38 Messages

02 déc. 2013, 20:35

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 déc. 2013, 00:04

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 ;)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 38 Messages

03 déc. 2013, 10:49

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>

Eléphanteau du PHP | 38 Messages

03 déc. 2013, 12:30

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^^

:)