Problème en mySQL

Résolu/Fermé
Wolfylink Messages postés 192 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 - 17 juin 2009 à 16:37
 le père - 19 juin 2009 à 17:06
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 16:38
Au fait, j'ai essayé le : or die(mysql_error());

Mais rien n'y fait...
0
Bonjour

Le serveur, c'est localhost ...
mysql_connect("localhost", "wolfstudio", "xxxxxxxxxxxxx");
0
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
17 juin 2009 à 16:41
J'écris les connections à la base comme ça:

$toto = mysql_connect("sql.free.fr", "wolfstudio", "xxxxxxxxxxxxx");
mysql_select_db("wolfstudio", $toto);
0
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 17:07
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 17:09
Au fait :
1-Ou et comment mettre le "empty" ?
2- voilà la page :
http://wolfstudio.free.fr/livreor.php
0
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
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 17:30
Merci, le père.
Grâce a toi, c'est (presque) bon...
En fait, maintenant, on peut écrire, mais rien ne s'affiche...
0
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 17:54
oui, elles y sont, j'ai déjà verifie.
Le probleme vient donc bien du code...
0
$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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 18:32
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
17 juin 2009 à 20:45
C'EST BON !!!
ÇA MARCHE !!!
Regardez-ici :
http://wolfstudio.free.fr/livreor.php

Mettez vos appréciations...
0
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
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
18 juin 2009 à 14:43
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 jeudi 11 juin 2009 Statut Membre Dernière intervention 14 novembre 2010 25
18 juin 2009 à 16:12
Au fait : c'est ou qu'il faut mettre ca :
$donnees = get_magic_quotes_gpc() ? stripslashes($_POST['donnees']):$_POST['donnees'];

?
0
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 mardi 16 juin 2009 Statut Membre Dernière intervention 18 juin 2009
18 juin 2009 à 23:58
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 mardi 16 juin 2009 Statut Membre Dernière intervention 18 juin 2009
19 juin 2009 à 16:58
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
-> 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