morgan.b

Inscris le 06/01/2010 à 09:30
  • Signature
    morgan
  • Nombre de sujets
    3
  • Nombre de messages
    6
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
morgan.b
Bonjour, j'ai créer un formulaire qui après validation me créer une page php. Le champ du formulaire sert a donner un titre a cette page.

Le problème, s'est que je voudrais que le contenu de cette page puisse être aussi modifier.

Je m'explique !!

Voici le code du formulaire, très simple il permet de choisir le titre de la page qui va être créer.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<TITLE></TITLE>
<link href="style.css" rel="stylesheet" type="text/css" media="screen">
</HEAD>
<BODY>

<div id="wrap">

<h2>Titre</h2>
<br />
<form action="post.php" method="post">

<table border="0">
<tr><td>Titre : </td><td><input type="text" size="30" name="titre"/></td></tr>
<tr><td></td><td>
</td></tr>

<tr><td style="text-align: center" colspan="2">
<br /><input type="submit" name="creer" value="Envoyer"></td></tr>
</form>
</table>

</div>

</BODY>
</HTML>


Maintenant la page post.php qui créer la page avec le contenu.

<?php
$fp = fopen("{$_POST["titre"]}.php", 'w') ;
fwrite($fp, '<!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" lang="fr">
<head>
<script type="text/javascript" src="zoombox/jquery.js"></script>
<script type="text/javascript" src="zoombox/zoombox.js"></script>
<link rel="stylesheet" type="text/css" href="theme/style.css" />
<link href="zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen" />
</head>

<body>
<?php
$dos = "image/{$_POST["titre"]}/min";
$dir = opendir($dos);
while($file = readdir($dir)){
$allow_ext = array("jpg","png","gif");
$ext = strtolower(substr($file,-3));
if(in_array($ext,$allow_ext)){
?>
<div class="min">
<a href="image/{$_POST["titre"]}<?php echo $file; ?>" rel="zoombox[galerie]">
<img src="image/{$_POST["titre"]}/min/<?php echo $file; ?>"/>
<h3><?php echo $file; ?></h3>
</a>
</div>
<?php
}
}
?>
</body>
</html>') ;
fclose($fp) ;
?>


Bon sa fonctionne, on entre dans le formulaire le titre de la page que l'on veut et go la page se créer avec le bon titre.

Là ou sa pose problene, c'est au niveau de la page post.php les lignes 16, 24 et 25.

L'Information ne se met pas jour, je devrais obtenir un chemin avec le titre que j'ai donner à la page, mais non sa ne bouge pas et le morceau {$_POST["titre"]} reste là.

Voilà un peu d'aide, s'il vous plait. Merci à tous.
morgan
morgan.b
J'ai amélioré le script pour permettre de poster avec la news 5 photos. S'est une moyenne des mes news, elles ont toujours plus ou moin 5 photos. Le probleme est que dans mon amélioration je suis obligé de charger les 5 photos. Je n'arrive pas à laisser des champs vide. De plus si aucune photo est charger le site affiche quand meme, un carré avec la croix rouge pour signaler que l'affichage n'est pas bon. Je n'arrive pas a appliquer a ce que j'ai fais la valeur si pas de photo charger, ne rien afficher .

Merci


Le fichier insert_news.php
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('news', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news']) || !isset($_POST['image']) || !isset($_POST['image2']) || !isset($_POST['image3']) || !isset($_POST['image4']) || !isset($_POST['image5'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news']) || empty($_POST['image']) || empty($_POST['image2']) || empty($_POST['image3']) || empty($_POST['image4']) || empty($_POST['image5'])) {
$erreur = '<u>Attention :</u> au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'", "'.mysql_escape_string($_POST['image']).'", "'.mysql_escape_string($_POST['image2']).'", "'.mysql_escape_string($_POST['image3']).'", "'.mysql_escape_string($_POST['image4']).'", "'.mysql_escape_string($_POST['image5']).'")';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location:index.php');
// on termine le script courant
exit();
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<TITLE>Titre de page</TITLE>

</HEAD>

<BODY>

<H2>Poster une news :</H2>
<!-- on fait pointer le formulaire vers la page traitant les données -->
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '',$erreur,'<br /><br />';
?>
<form action="insert_news.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="15" size="25" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="45" size="45" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="55" rows="15"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td>
<span class="gras"><u>Info :</u></span>
</td><td>
</td></tr><tr><td>
<span class="gras">Image n°1 :</span>
</td><td>
<input type="text" name="image" maxlength="50" size="50" value="<?php if (isset($_POST['image'])) echo htmlentities(trim($_POST['image'])); ?>">
</td></tr><tr><td>
<span class="gras">Image n°2 :</span>
</td><td>
<input type="text" name="image2" maxlength="50" size="50" value="<?php if (isset($_POST['image2'])) echo htmlentities(trim($_POST['image2'])); ?>">
</td></tr><tr><td>
<span class="gras">Image n°3 :</span>
</td><td>
<input type="text" name="image3" maxlength="50" size="50" value="<?php if (isset($_POST['image3'])) echo htmlentities(trim($_POST['image3'])); ?>">
</td></tr><tr><td>
<span class="gras">Image n°4 :</span>
</td><td>
<input type="text" name="image4" maxlength="50" size="50" value="<?php if (isset($_POST['image4'])) echo htmlentities(trim($_POST['image4'])); ?>">
</td></tr><tr><td>
<span class="gras">Image n°5 :</span>
</td><td>
<input type="text" name="image5" maxlength="50" size="50" value="<?php if (isset($_POST['image5'])) echo htmlentities(trim($_POST['image5'])); ?>">
</td></tr><tr><td>
<span class="gras"><u>Info :</u></span>
</td><td>
</td></tr><tr><td><td align="left">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>

</body>
</html>

Le fichier news.php
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('news', $base);

// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, texte_news, image, image2, image3, image4, image5 FROM news ORDER BY date DESC;';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);

if ($nb_news == 0) {
echo 'Aucune news enregistrée.';
}
else {
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req)) {

// on décompose la date
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);

// on affiche les résultats
echo '<br /><H2>' , htmlentities(trim($data['titre'])) , '</H2>';
echo '<H3>Posté par :&nbsp;&nbsp;' , htmlentities(trim($data['auteur']));
echo '&nbsp;&nbsp;le ' , $jour , '/' , $mois , '/' , $an , '</H3>';
echo '&nbsp;' , nl2br(htmlentities(trim($data['texte_news']))) , '<br />';
echo '<br /><a href="' , htmlentities(trim($data['image'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image'])) , '.png" border=0></a>&nbsp;&nbsp;&nbsp;';
echo '<a href="' , htmlentities(trim($data['image2'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image2'])) , '.png" border=0></a><br />';
echo '<br /><a href="' , htmlentities(trim($data['image3'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image3'])) , '.png" border=0></a>&nbsp;&nbsp;&nbsp;';
echo '<a href="' , htmlentities(trim($data['image4'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image4'])) , '.png" border=0></a><br />';
echo '<br /><a href="' , htmlentities(trim($data['image5'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image5'])) , '.png" border=0></a><br />';

}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();
?>

Le fichier index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<TITLE>Titre de page</TITLE>

</HEAD>


<!-- code HTML avant l'affiche des news (tout dépend comment est constitué votre site) -->
<?php
// on inclut l'affichage de nos news
include ('news.php');
?>
<!-- code HTML après l'affiche des news (tout dépend comment est constitué votre site) -->


</body>
</html>
morgan
morgan.b
Bonjour. Ma question est un peu à l'enver mais bon. Je voudrais utiliser le "comment faire un espace membre" pour créer un espace admin. Seul une petite poignée de gens auront leur login est passe. Une fois identifier il seront rediriger vers des pages, comme poster une news, envoyer un mail collectif, upload de photos .... Ma question est: est-ce que le script propose une bonne sécurité pour ce genre de chose ou est-ce que je cour un trop grand risque ? La page inscription sera immédiatement supp aprés avoir inscrit les admins, au moin personne ne pourra se créer un compte si il tombe par hazard sur la page, et les pages comme poster une news auront des nom différents.
morgan

Ses derniers messages sur les forums

forum
morgan.b
Bien en cherchant un peu j'ai trouver et grâce au conseil de LA GLOBULE, sa fonctionne déjà bien mieux.

Mais problème encore. Primo voici une partie de la solution encore presque fausse pour la page post.php :

<?php
$dos = \'galerie/'.$_POST["titre"].'/min\';
$dir = opendir($dos);
while($file = readdir($dir)){
$allow_ext = array("jpg","png","gif");
$ext = strtolower(substr($file,-3));
if(in_array($ext,$allow_ext)){
?>
<div class="min">
<a href="\'galerie/'.$_POST["titre"].'\'<?php echo $file; ?>" rel="zoombox[galerie]">
<img src="\'galerie/'.$_POST["titre"].'/min/\'<?php echo $file; ?>"/>
<h3><?php echo $file; ?></h3>
</a>
</div>
<?php
}
}
?>


Le soucis est le resultat :

<?php
$dos = 'galerie/Galerie A/min';
$dir = opendir($dos);
while($file = readdir($dir)){
$allow_ext = array("jpg","png","gif");
$ext = strtolower(substr($file,-3));
if(in_array($ext,$allow_ext)){
?>
<div class="min">
<a href="'galerie/Galerie A'<?php echo $file; ?>" rel="zoombox[galerie]">
<img src="'galerie/Galerie A/min/'<?php echo $file; ?>"/>
<h3><?php echo $file; ?></h3>
</a>
</div>
<?php
}
}
?>


Au niveau du lien a href et du img src= , il y a des guillemet en trop qui rende le lien invalide !!!!!!!!!!

HELP, et merci à tous ++++
morgan
morgan.b
Merci pour ton aide La globule, mais non sa ne fonctionne pas.

Si je remplace par :(ligne 15)

$dos = 'image/'.$_POST["titre"].'/min';

J'obtiens :

Parse error: syntax error, unexpected T_STRING in C:\Wamp\www\test\post.php on line 15


Si je remplace par :(ligne 15)

$dos = 'image/'.$_POST["titre"].'/min';

J'obtiens :

Parse error: syntax error, unexpected T_STRING in C:\Wamp\www\test\post.php on line 15
morgan
morgan.b
Bonjour, j'ai créer un formulaire qui après validation me créer une page php. Le champ du formulaire sert a donner un titre a cette page.

Le problème, s'est que je voudrais que le contenu de cette page puisse être aussi modifier.

Je m'explique !!

Voici le code du formulaire, très simple il permet de choisir le titre de la page qui va être créer.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<TITLE></TITLE>
<link href="style.css" rel="stylesheet" type="text/css" media="screen">
</HEAD>
<BODY>

<div id="wrap">

<h2>Titre</h2>
<br />
<form action="post.php" method="post">

<table border="0">
<tr><td>Titre : </td><td><input type="text" size="30" name="titre"/></td></tr>
<tr><td></td><td>
</td></tr>

<tr><td style="text-align: center" colspan="2">
<br /><input type="submit" name="creer" value="Envoyer"></td></tr>
</form>
</table>

</div>

</BODY>
</HTML>


Maintenant la page post.php qui créer la page avec le contenu.

<?php
$fp = fopen("{$_POST["titre"]}.php", 'w') ;
fwrite($fp, '<!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" lang="fr">
<head>
<script type="text/javascript" src="zoombox/jquery.js"></script>
<script type="text/javascript" src="zoombox/zoombox.js"></script>
<link rel="stylesheet" type="text/css" href="theme/style.css" />
<link href="zoombox/zoombox.css" rel="stylesheet" type="text/css" media="screen" />
</head>

<body>
<?php
$dos = "image/{$_POST["titre"]}/min";
$dir = opendir($dos);
while($file = readdir($dir)){
$allow_ext = array("jpg","png","gif");
$ext = strtolower(substr($file,-3));
if(in_array($ext,$allow_ext)){
?>
<div class="min">
<a href="image/{$_POST["titre"]}<?php echo $file; ?>" rel="zoombox[galerie]">
<img src="image/{$_POST["titre"]}/min/<?php echo $file; ?>"/>
<h3><?php echo $file; ?></h3>
</a>
</div>
<?php
}
}
?>
</body>
</html>') ;
fclose($fp) ;
?>


Bon sa fonctionne, on entre dans le formulaire le titre de la page que l'on veut et go la page se créer avec le bon titre.

Là ou sa pose problene, c'est au niveau de la page post.php les lignes 16, 24 et 25.

L'Information ne se met pas jour, je devrais obtenir un chemin avec le titre que j'ai donner à la page, mais non sa ne bouge pas et le morceau {$_POST["titre"]} reste là.

Voilà un peu d'aide, s'il vous plait. Merci à tous.
morgan

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours