Problème en mySQL

Résolu
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   -  
 le père -
Salut !!!
J'explique le probleme : je fais un site, avec du html, du php et du mySQL...
Je voudrais faire une sorte de livre d'or sur mon site, et voilà ce qu'il se passe :

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /mnt/160/sdb/e/0/wolfstudio/livreor.php on line 50.

J'ai tout essayé, mais rien n'y fait...
Voilà mon code :

-----CODE-------

<?php
if (isset($_POST['pseudo']))
if (isset($_POST['message']))

if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)

mysql_connect("sql.free.fr", "wolfstudio", "xxxxxxxxxxxxx");
mysql_select_db("wolfstudio");

$pseudo = mysql_real_escape_string (htmlspecialchars ($_POST['pseudo']));
$message = mysql_real_escape_string (htmlspecialchars ($_POST['message']));

mysql_query("INSERT INTO livreor VALUES('', '$pseudo', '$message')");


mysql_close();

?>
<form action="livreor.html" method="post">
<p>PSEUDO :<input type="text" name="pseudo" /><br/>
MESSAGE :<input type="text" name="message" /><br/>
<input type="submit" value="Envoyer" />
</p>
</form>

<?php

mysql_connect("localhost", "wolfstudio", "xxxxxxxxxxxxxx");
mysql_select_db("wolfstudio");


$reponse = mysql_query("SELECT * FROM livreor ORDER BY ID DESC LIMIT 0,10");

mysql_close();
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<strong><?php echo $donnees['pseudo']; ?></strong> :<br/>
<?php echo $donnees['message']; ?>

<?php
}
?>


-----------------

Voilà...
Pouvez-vous m'aider ?
Merci !!

19 réponses

Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
Au fait, j'ai essayé le : or die(mysql_error());

Mais rien n'y fait...
0
le père
 
Bonjour

Le serveur, c'est localhost ...
mysql_connect("localhost", "wolfstudio", "xxxxxxxxxxxxx");
0
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
J'écris les connections à la base comme ça:

$toto = mysql_connect("sql.free.fr", "wolfstudio", "xxxxxxxxxxxxx");
mysql_select_db("wolfstudio", $toto);
0
le père
 
oh la la ! de plus, il te manque des accolades à tes if, et tes tests genre $_POST['pseudo'] != NULL ne veulent pas dire grand chose, il faudrait tester avec empty...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
J'ai essayé vos astuces, et vos trucs et ça a bien avance...
Cependant, un nouveau bug maintenant...

Au début ça marche mais dès que je clique sur le bouton enregistrer, ça me met une nouvelle page avec marqué erreur 405 puis :

The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource.

voila de nouveau le code...

----CODE----

<?php
if (isset($_POST['pseudo']))
if (isset($_POST['message']))

if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
{
$toto = mysql_connect("localhost", "wolfstudio", "xxxxxxxxx");
mysql_select_db("wolfstudio", $toto);

$pseudo = mysql_real_escape_string (htmlspecialchars ($_POST['pseudo']));
$message = mysql_real_escape_string (htmlspecialchars ($_POST['message']));

mysql_query("INSERT INTO livreor VALUES('', '$pseudo', '$message')");


mysql_close();
}
?>
<form action="livreor.html" method="post">
<p>PSEUDO :<input type="text" name="pseudo" /><br/>
MESSAGE :<input type="text" name="message" /><br/>
<input type="submit" value="Envoyer" />
</p>
</form>

<?php

$toto = mysql_connect("localhost", "wolfstudio", "xxxxxxxxxx");
mysql_select_db("wolfstudio", $toto);


$reponse = mysql_query("SELECT * FROM livreor ORDER BY ID DESC LIMIT 0,10");

mysql_close();
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<strong><?php echo $donnees['pseudo']; ?></strong> :<br/>
<?php echo $donnees['message']; ?>

<?php
}
?>

---------
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
Au fait :
1-Ou et comment mettre le "empty" ?
2- voilà la page :
http://wolfstudio.free.fr/livreor.php
0
le père
 
vos astuces, et vos trucs
Non, ce ne sont pas des astuces et des trucs. On n'écrit pas de programme avec des astuces et des trucs, mais en respectant les règles des langages.
Par exemple, tu as ajouté ,$toto dans mysql_select_db("wolfstudio", $toto); parce que Ozimandias te le suggérait, alors que c'est totalement inutile. Tu n'apprendras jamais rien si tu recopies ce qu'on te dit sans chercher à savoir d'où ça vient.

Pour répondre à ton problème, dans <form action="livreor.html" method="post"> tu t'es trompé dans l'url, c'est .php et pas .html
0
le père
 
Remarque: je n'ai pas dit qu'il fallait retirer le ,$toto. Mais regarde le manuel PHP et décide si toi tu désires l'utiliser ou pas. Ne le fais pas aveuglément.
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
Merci, le père.
Grâce a toi, c'est (presque) bon...
En fait, maintenant, on peut écrire, mais rien ne s'affiche...
0
le père
 
Avant de comprendre pourquoi ça s'affiche ou pas ... as-tu vérifié si les données entraient bien dans la base (avec phpmyadmin par exemple) ?
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
oui, elles y sont, j'ai déjà verifie.
Le probleme vient donc bien du code...
0
le père
 
$reponse = mysql_query("SELECT * FROM livreor ORDER BY ID DESC LIMIT 0,10") or die (mysql_error());

Il faudrait que tu mettes systématiquement un or die (mysql_error()) à chaque requête, tu gagnerais du temps en mise au point
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
Désolé, mais ça ne marche toujours pas...
Enfin, disons autrement, rien n'a changé...
En tout cas, visuellement !
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
C'EST BON !!!
ÇA MARCHE !!!
Regardez-ici :
http://wolfstudio.free.fr/livreor.php

Mettez vos appréciations...
0
le père
 
Bonjour

Il te reste le problème des magic quotes. Vérifie sur ton site ce qui se passe si tu mets des apostrophes, " ou \ dans ton message ...
C'est dû au fait qu'Apache ajoute automatiquement un \ avant certains caractères reçus de l'extérieur (GET,POST ou COOKIE)
Mais attention ! Il ne le fait pas toujours, cela dépend de la configuration. La fonction get_magic_quotes_gpc() te dit si cette option est active
Pour lire correctement les données reçues, il faut faire :
$donnees = get_magic_quotes_gpc() ? stripslashes($_POST['donnees']):$_POST['donnees'];

Ça devrait résoudre ton problème avec les accents.
0
le père
 
Et pour éviter de poster plusieurs fois le même message si on rafraîchit la page (F5), le plus simple est peut-être de vérifier si le login et le message sont déjà dans ta table. Un peu plus sérieux, tu peux ajouter un numéro unique en hidden dans le formulaire.
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
OK, merci, le père...
Mais j'ai encore une question...
Comment faire pour qu'un lien devienne "cliquable" quand on l'écrit ?
Pareil pour les smileys avec un code spécial...
0
Wolfylink Messages postés 192 Date d'inscription   Statut Membre Dernière intervention   25
 
Au fait : c'est ou qu'il faut mettre ca :
$donnees = get_magic_quotes_gpc() ? stripslashes($_POST['donnees']):$_POST['donnees'];

?
0
le père
 
Il faut que tu fasses
$pseudo = get_magic_quotes_gpc() ? stripslashes($_POST['pseudo']):$_POST['pseudo'];
$pseudo = mysql_real_escape_string (htmlspecialchars ($_POST['pseudo']));
$message = mysql_real_escape_string (htmlspecialchars ($pseudo))
et idem pour le mot de passe.
Pour le lien et le smiley, je ne crois pas que ce soit possible dans des champs input
0
angelika42100 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,
Je vois vos consil depuis quelques jours et je me permets de faire appel à vous car vu vos explications, vous savez de quoi vous parlez.
Je suis débutante en ce qui concerne la création des vitrines en ligne, ce soir j'ai essayé de mettre mon site en ligne et j'ai reçu un message d'erreur que je ne comprend absolument pas?
Pouve-vous me dire à quoi cela corespond?

ERREUR : la connexion FTP au serveur ftp.vigipresence.fr a échouée en retournant cette erreur :

Erreur de socket # 10054
Connexion réinitialisée par l'homologue (peer).

Merci par avance
0
le père > angelika42100 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

Je ne vais pas te reprocher de me faire des compliments , mais ta demande n'a pas sa place ici. Tu as déjà posé cette question ici : http://www.commentcamarche.net/forum/affich 12946631 message d erreur , je l'avais vue et si je n'y avais pas répondu, c'est que je savais pas quoi répondre. Car les gens "qui savent de quoi ils parlent" sont surtout des gens qui savent se taire quand ils n'ont rien à dire.
Tout ce que je peux dire, c'est qu'il y a eu un problème de communication avec le serveur ftp sur lequel tu essayais de transférer ton site, mais je ne sais pas dire si c'est un problème de nom d'utilisateur ou de mot de passe ou de transmission...

Je veux aussi te dire que ce n'est pas conforme aux usages du forum de s'imposer au milieu d'une discussion pour poser sa propre question. Tu aurais dû te contenter d'un petit 'up' dans la discussion que tu avais déjà créée.

Bon courage pour la suite, en espérant que quelqu'un saura t'aider mieux que moi.
0
le père
 
-> Wolfylink
Je reviens sur ce que j'ai dit, pour le lien et le smiley c'est évidemment pas dans l'input que tu veux les voir affichés, mais dans ta page
C'est donc possible mais laborieux : il faut d'abord détecter le lien ou le code de smiley, faire un htmlspecialchars() sur ton message, ensuite seulement insérer les balises <a href=... ou <img src=.... Il ne faut les insérer qu'après avoir fait le htmlspecialchars, sino tu vas transformer les balises et elles ne joueront plus leur rôle.
Détecter les codes de smileys est très facile, mais je n'ai jamais essayé pour les url, j'imagine qu'il faut détecter le http:// mais ensuite où s'arrête-t-on ? Pas forcément évident. En tous cas, ne recommence pas le bug qu'il y a sur CCC : le point final des phrases est incorporé dans l'url, c'est pour ça qu'on retrouve tant de messages qui disent "le lien que tu m'as donné ne marche pas".
0