fran6

Inscris le 08/07/2008 à 12:34

Ses derniers sujets sur les forums

fran6
le 23/02/2010 à 14:58
la deuxième page de mon affichage page par page est vide
Bonjour,
J'ai un niveau moyen en php. J'essaie de faire un petit dictionnaire sous php. Lorsque je tape la lettre "a" ou "b" ou "c" dans le formulaire, le script affiche par douze tous les mots commençant par un "a" ou "b" ou "c" dans le dictionnaire avec une barre de navigation en bas.

Tout marche très bien pour la première page mais la deuxième page et la suite reste vide. Est-ce que quelqu'un peut me dire pourquoi ???

Merci de votre réponse.

Le code se trouve ici:
http://www.lephpfacile.com/wall/wall-1853.php
fran6
le 17/04/2009 à 15:46
Problème avec BB-code et smileys
Bonjour,

Avec le livre d'or de lephpfacile, j'ai réussi à ajouter un système de BB-code et smileys.
Cependant lorsque je veux changer le BB-code et le code du smileys en images j'ai un problème.

La page affiche l'erreur suivante :
Fatal error: Cannot redeclare bbcode() (previously declared in C:\wamp\www\site_1\fr\livre_dor\index.php:438) in C:\wamp\www\site_1\fr\livre_dor\index.php on line 438

A signaler que j'ai déjà suivi le forum sur ce problème http://www.lephpfacile.com/forum/1-php-mysql/132-systeme-de-smileys-ds-news.

J'ai deux questions :
1/ Où faut-il mettre la fonction bbcode. Est-ce toujours à la 4e place comme le dit le forum:
1) preparation de la requete SQL ($sql = 'select ....')
2) execution de cette requette ($req = mysql_query($sql))
3) recuperation des donnees (while ($data = mysql_fetch_array($req)) {)
4) affichage des données (echo $news)

Alors pour afficher tes smiley, entre l'etape 3 et l'etape 4 il faut utiliser la fonction str_replace.

Si oui; càd j'ai mis le code au bon endroit.
Est-ce qu'il y a un problème avec la fonction bbcode ?? Lequel ??? Pouvez-vous m'aider s'il vous plaît ???
Voici le code du livre d'or:
<?php

// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', 'mypass');
mysql_select_db ('mybdd', $base);

// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = 'SELECT count(*) FROM livre_or';

// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);

// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
echo '<div class="message">';

// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$nb_affichage_par_page = 5;

// Préparation de la requête avec le LIMIT
$sql = 'SELECT * FROM livre_or ORDER BY id DESC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on affiches les résultats dans la <table>
echo '<div class="en-tete_message"><table border="1"><tr><td width="250"><p class="titre_message">Par : ' , htmlentities(trim($data['name'])) , '</p></td><td width="233"><p class="titre_message">Le : ' , htmlentities(trim($data['date'])) , '</p></td><td width="100"><p class="titre_message">Note : ' , htmlentities(trim($data['note'])) , '/10</p></td></tr></table></div>
<div class="corps_message"><table border="1" width="583"><tr><td><p class="texte_message">' , htmlentities(trim($data['message'])) , '</p></td></tr></table></div><br /><br />';
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
echo '</div><br /><br />';

// on affiche enfin notre barre
echo '<div class="nbr_pages">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</div>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
echo '</table><br />';
?>


Voici également le bb-code:
<?php

function bbcode($text)
{
$text = nl2br($text);

$text = str_replace("[b]", "<strong>", $text);
$text = str_replace("[/b]", "</strong>", $text);

$text = str_replace("[u]", "<u>", $text);
$text = str_replace("[/u]", "</u>", $text);

$text = str_replace("[i]", "<em>", $text);
$text = str_replace("[/i]", "</em>", $text);

$text = str_replace("[center]", "<center>", $text);
$text = str_replace("[/center]", "</center>", $text);

$text = str_replace(" ", "&nbsp;&nbsp;", $text);

$text = str_replace('}()','<img src="images/smileys/smiley1ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace('8o','<img src="images/smileys/smiley2ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace(':D','<img src="images/smileys/smiley3ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace(':))','<img src="images/smileys/smiley4ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace('z|','<img src="images/smileys/smiley5ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace(':(','<img src="images/smileys/smiley6ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace(';)','<img src="images/smileys/smiley7ani.gif" alt="" style="border:0"/>',$text);
$text = str_replace('8|','<img src="images/smileys/smiley9ani.gif" alt="" style="border:0"/>',$text);
$patterns = array();
$replacements = array();

$patterns[] = "#\[img\](.*?)\[/img\]#si";
$replacements[] = "<img src=\"\\1\" border=\"0\" />";

$patterns[] = "#\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]#is";
$replacements[] = "<a href=\"\1\2\" target=\"_blank\" class=\"postlink\">\1\2</a>";

$patterns[] = "#\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]#si";
$replacements[] = "<a href=\"http://\\1\" target=\"_blank\" class=\"postlink\">\\1</a>";

$patterns[] = "#\[url=([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\](.*?)\[/url\]#si";
$replacements[] = "<a href=\"\\1\\2\">\\6</a>";

$patterns[] = "#\[url=(([\w\-]+\.)*?[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\](.*?)\[/url\]#si";
$replacements[] = "<a href=\"http://\\1\">\\5</a>";

$patterns[] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = "<a href=\"mailto:\\1\">\\1</A>";

return preg_replace($patterns, $replacements, $text);
}

echo bbcode($truc);
?>


J'attends votre aide.
fran6
le 09/04/2009 à 11:55
Faire un dictionnaire en ligne
Bonjour,

Je voudrais faire un dictionnaire bilingue (Français => Malgache) en ligne comme dans http://www.freelang.com/enligne/malgache.php?lg=fr.

J'ai déjà créé une table :
CREATE TABLE `dicofrmlg` (
`id` int(11) NOT NULL auto_increment,
`entrefrmlg` varchar(100) NOT NULL,
`catfrmlg` varchar(50) NOT NULL,
`deffrmlg` varchar(300) default NULL,
`etyfrmlg` varchar(500) default NULL,
`sensfrmlg` varchar(600) NOT NULL,
`figefrmlg` varchar(300) default NULL,
`voirfrmlg` varchar(200) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;


J'ai aussi créé un formulaire:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="dictionnaire">
<table class="dictionnaire"><tr><td width=100><img src="../../images/fr-flag.gif" class="dict_lang" alt="Français" title="Français" /></td><td width=220><div class="cadre"><input class="champ" type="text" name="entreefrmlg" maxlength="50" size="50" value="<?php if (isset($_POST['entreefrmlg'])) echo htmlentities(trim($_POST['entreefrmlg'])); ?>">
</div></td><td><input type="submit" name="submit" value="Ok"></td></tr></table>
</form>


Ma question est : Quel est le code php pour afficher le mot que l'internaute fait entrer dans le formulaire comme pour le dictionnaire freelang.

Merci de votre aide.
fran6
le 08/07/2008 à 12:50
Peux plus accéder à ma base de donnée mysql
Bjr, smiley J'ai téléchargé un captcha parce que j'en ai mare des spams dans mon livre d'or. Le captcha fonctionne bien sauf que je n'arrive plus à ajouter des données dans ma base de donnée à partir du formulaire. Il y a qlq chose qui ne marche plus dans mon code php. Quelqu'un est-il assez gentil pour me donner un PETIT coup de main smiley.

Voici le code du livre d'or:

<?php 
session_start();
if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {

// Insert you code for processing the form here, e.g emailing the submission, entering it into a database.

if (isset($_POST['go']) && $_POST['go']=='Signer') {

if ((isset($_POST['name'])) && (isset($_POST['email'])) && (isset($_POST['comment']))) {

// si les 3 variables ne sont pas vides, et si l'adresse E-mail est valide, alors, et seulement dans ce cas, on fera notre insertion dans la base
if ((!empty($_POST['name'])) && (!empty($_POST['email'])) && (!empty($_POST['comment']))) {

// on verifie le format de l'adresse E-mail saisie
$test_mail = eregi ('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$', $_POST['email']);
if ($test_mail) {


// on se connecte à notre base
$base = mysql_connect ('localhost', 'login', 'pswd');
mysql_select_db ('my_bdd', $base);


// on prepare notre requête d'insertion des données
$sql = 'INSERT INTO livre_or VALUES("", "'.mysql_escape_string($_POST['name']).'", "'.mysql_escape_string($_POST['email']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['comment']).'")';

// on lance la requête
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

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

// on redirige le visiteur vers l'accueil du livre d'or
header('location: index.php');

// on termine le script courant
exit();
}
else {
$erreur = 'Votre adresse E-mail est invalide.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
else {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
}
// on entre dans le cas où l'un des trois (au moins) champs n'a pas été rempli ou si l'adresse E-mail n'a pas été validée (en particulier, lorsque le visiteur charge pour la première fois cette page, vu que les 3 champs sont vides, le formulaire s'affichera). On remarque également que l'on met la valeur de chaque champs dans le value (c'est cela qui fait que si le visiteur ne remplit pas entièrement le formulaire et qu'il clique sur "Signer", et bien lorsqu'il sera redirigé vers le formulaire, ce qu'il aura déjà saisi sera conservé

unset($_SESSION['security_code']);
} else {
// Insert your code for showing an error message here
echo 'Erreurs internes';
}
?>
<html>
<head>
<title>My guestbook</title>
</head>
<body>
<form action="insert_signature.php" method="post">
<table>
<tr><td width="97">
<span class="gras">Name:</span>
</td><td colspan="2">
<input type="text" name="name" maxlength="30" size="50" value="<?php if (isset($_POST['name'])) echo htmlentities(trim($_POST['name'])); ?>">
</td></tr><tr><td>
<span class="gras">E-mail address:</span>
</td><td colspan="2">
<input type="text" name="email" maxlength="50" size="50" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>">
</td></tr><tr><td>
<span class="gras">Your comment:</span>
</td><td colspan="2">
<textarea name="comment" cols="50" rows="10"><?php if (isset($_POST['comment'])) echo htmlentities(trim($_POST['comment'])); ?></textarea>
</td></tr>
<tr>
<td><span class="gras">Security code :</span></td>
<td width="86"><label>
<input name="security_code" type="text" tabindex="4" size="5" maxlength="5">
</label></td>
<td width="231"><img src="CaptchaSecurityImages.php?width=100&height=40&characters=5" /></td>
</tr>
<tr><td><td colspan="2" align="right">
<input type="submit" name="submit" value="submit">
</td></tr></table>
</form>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
LoadingChargement en cours