Merci, c´est bon ; ) C´est Blawk qui avait raison, erreur conne :p
mais maintenant...... Another Problem !
moins grave ; )
Tout marche, a part htmlentities...... ; (
le code est dans le prochain post...
Voilà, j´ai tout mis sur une seul page ( juste le formulaire et le " insert * form........")
cette page s´appelle truc.php et celle ou il y a les resultat est la page truc2.php
Pouvez vous m´expliquer que quand je met du code html dans un des deux champs ( nom($nom) et message($mes)), pkoi le html est pris en compte ? Alors que j´ai mis le htmlentities ?
merci bcp
@+ Colas
P.S.: Code sur le post qui suit ; )
< ?php
echo " <html><body>";
echo ´<form action="truc.php">´;
echo " <p>Nom :";
echo ´<input type="text" name="nom"></p><p>Message : ´;
echo ´<input name="mes" type="text"></p>´;
echo ´<br><input type="submit" value="Envoyer">´;
echo " </form>";
if ( !$nom || ! $mes)
{
echo " Un ou plusieurs champs sont vides.<br>";
exit;
}
if ( $_POST)
{
$nom = htmlentities($_POST[´nom´]);
$mes = htmlentities($_POST[´mes´]);
}
trim($nom);
trim($mes);
$nom = addslashes($nom);
$mes = addslashes($mes);
@ $db = mysql_connect("localhost", " root", " ****");
if ( !$db)
{
echo " Impossible de se connecter à la BDD.";
exit;
}
mysql_select_db("colas");
$query = " insert into colas ( nom, mes) values ( ´".$nom."´, ´".$mes."´)";
$result = mysql_query($query);
if ( $result)
{
echo " Le message est inséré dans la BDD.<br><br>";
echo ´<br><br><div align="center"><a href="truc2.php">Voir le message.</a></div>´;
}
echo " </body>";
echo " </html>";
? >
Les opérations que tu effectue ne sont pas dans l´ordre...
if ( !$nom || ! $mes)
A cet endroit du script, aucune de ces deux variabme n´est définie. Donc à tout les coup exit() est appelé.
if ( $_POST)
Il faut mettre tout le scripts entre les accolades des ce " if", car ici, même si rien n´est posté, tu te connecte quand même à la BdD...
Mets la permière série d´echo et les deux derniers en dehors de < ?php ? > ( et donc en dehors du IF).
trim($nom);
Il faut ecrire $nom = trim($nom);
si, $nom et $mes existe, regarde dans le formulaire html ; )
pour le reste, ok, je vais le faire, mais là je m´en vais et je reviens dans 3h ( ou moins).
merci j´essaierai
Et je te dis qu´elles n´existe pas...
Pas défaut, register_globals est OFF. C´est-à-dire que par exemple, tu ne peut pas ecrire $nom pour remplacé $_POST[´nom´].
Et réfléchi un peu. Tu regarde si les champs sont rempli avant même de verifier si quelque chose à été posté... Pas très logique tous ça...
Et aufait, dans ce cas là, le exit est pas conseillé car du coup, la page HTML ne sera pas terminé par < /body></html>
ok, attend j´essaye, je reviens après...
Ok, merci, tu m´a aider ; )
à 50% ; p
J´ai mis les accolade di if ( $_POST) apres la requete INSERT INTO....., mais j´ai aussi ajouter un truc qu tu aurait pu voir ; )
Dans mon formulaire, il fallait mettre method="POST"
et sans ca, tu peux pas faire ! ; )
Merci beaucoup quand même...
JE VOUS AIME ! !!
Colas ==> Tu es homo ? !
Colas ==> Non, pourquoi ?
Colas ==> Parce que la majorité des gens de ce forum sont des mâles !
Colas ==> Oui, mais il peut y avoir des femmes.
Colas ==> Très peu, et j´aimerais bien savoir si il y en a...
Colas ==> Demande, crétin !
Colas ==> Est-ce qu´il y a des femmes sur ce forum ?
Colas ==> Oui !
Colas ==> Arrête abruti ! Tu deviens lourd de faire des messages trop longs !
Colas ==> D´accord, mais je suis pas homo, et quand j´ai dit " je vous aime", c´était pour toutes les femmes qui sont sur ce forum.
Colas ==> Oui, mais il ne doit pas y en avoir beaucoup !
Colas ==> Bon, je vais dire " Merci les amis ! ".
Colas ==> Ca fait débile...
[... Et ils parlèrent longtemps jusqu´à la fin de leurs jours...]
Comment vous pouvez réflechir de ce temp là ! ?
C´est vrai, il fait trop chaud, mais l´eau de la mer à Lille n´est pas froide ? !?
En plus, je suis allé visiter une carrière de calcaire dans mon département ( Yonne), et à -50 metres sous terre, il fait froid, très froid ; )
Donc ca m´a rafraichit les idées ; p
Arras beach style...
Je me demande même comment vous faites pour reflechir tout court, je n´y arrive jamais moi ^^
Voilà encore une petite erreur ; )
Je veux faire un truc pour que si les gens insere ca ( exemple): [url]http://www.free.fr[url]
Ca mette le lien vers free.fr. j´ai fait une petite fonction comme celle ci :
function lien($mes)
{
$url1 = explode("[url]", $mes);
if(isset($url1)){
$url = explode("[url]", $url1[1]);
str_replace($url[0], ´<a href="´.$url[0].´">´.$url[0].´</a>´, $mes);
}
}
J´ai enlevé les htmlentities, mais ca ne marche pas... ; (
Pouvez vous m´aider ?
merci @+
Colas
function lien($msg){
eregi_replace(´[url](.+)[/url]´, ´<a href="\\1">\\1</a>´, $msg);
return $msg;
}
Tu peut améliorer la fonction en remplacant ´.+´ par l´expression régulière d´une URL.
Ok merci, mais je suis pas très fort en expression régulière moi ; ) Dans mon book PHP tout est expliqué dans les expressions réguliere, mais j´ai pas regarder en détail ; )
Meme si je sais que c´est assez important ; )
http://graphicolas.free.fr/
j´ai mis en ligne mon blog concu avec mes propres ( ou sales) petites mains ; ) ; p
Voilà, merci et je vais me mettre aux expressions régulières ; )
Blawk ==> Ta fonction ne marche pas ! ; )
Je l´ai mis en dehors et dans la fonction if ( $_POST), mais c´est pareil, et je l´ai appelé apres les trim();
< ?php
function lien($mes){
eregi_replace("[url](.+)[/url]", ´<a href="\\1">\\1</a>´, $mes);
return $mes;
}
if ( $_POST)
{
if ( !$nom || ! $mes || ! $mail)
{
echo " Un ou plusieurs champs sont vides.<br>";
exit;
}
trim($nom);
trim($mes);
trim($mail);
$mes = lien($mes);
[suite...]
mais ca ne marche pas... je comprend pas aussi le " \\1"... Ca veut dire reprendre la premiere chaine trouvée ? ??
Voilà, merci de m´aider, c´est sympa.
@+ Colas
A voir la fonction que je t´ai donné, j´ai pas dû beaucoup réfléchir...
Bon, voici la bonne avec un exemple d´utilisation TESTE et APPROUVE.
< ?php
function makeLink($txt) {
$txt = eregi_replace(´\[url\](.+)\[/url\]´, ´<a href="\\1">\\1</a>´, $txt);
return $txt;
}
$txt = ´ceci est un test [url]http://www.free.fr[/url]´;
$txt = makeLink($txt);
echo $txt;
? >
Le \\1 récupère la partie de la regex qui est entre parenthèse. Ici, c´est l´URL.
Aucune vérifiaction n´est faite pour voir si l´URL est valide. ( Si tu met [url]dqmj;!!:; 9876-*/^$*µ=)à[/url], ça va marché.)
ok, merci, ca marche vachement bien meme avec les htmlentities ! ; )
mais voilà, j´ai essayer de faire une expression réguliere pour l´url, ca donne ca :
function lien($mes) {
$mes =
eregi_replace(´\[url\]("^http://[a-zA-Z0-9\-\.\=\?
\_]+\.[a-zA-Z]+$")\[/url\]´, ´<a href="\\1">\\1</a>´, $mes);
return $mes;
}
ou plutot ca:
´\[url\]("^http://[a-zA-Z0-9\-\.\=\?
\_]+\.[a-zA-Z]+$")\[/url\]´, ´<a href="\\1">\\1</a>´
mais quand je met ca dans mon blog :
[url]http://www.free.fr[/url]
ca ne marche pas :´(
Merci de m´aider encore une fois ; ) mais j´aiderais les autres une fois que je serais faire bien du PHP, alors vous le faites pour moi mais aussi pour les autres ; )
Blawk ==> http://graphicolas.free.fr j´ai répondu ; p
@+ colas