Help forum

Résolu/Fermé
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 25 nov. 2011 à 10:02
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 25 nov. 2011 à 12:54
Bonjour,

Bonjour,

Bonjour,

je vous envois mes source

index.php :

<html>
<head>
<title>Index de notre forum</title>
</head>
<body>

<!-- on place un lien permettant d'accéder à la page contenant le formulaire d'insertion d'un nouveau sujet -->
<a href="./insert_sujet.php">Insérer un sujet</a>

<br /><br />

<?php
// on se connecte à notre base de données
$base = mysql_connect ('localhost', 'jeche294509@localhost ', 'mouchoufre');
mysql_select_db ('jeche294509 ', $base) ;

// préparation de la requete
$sql = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse 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 sujets du forum
$nb_sujets = mysql_num_rows ($req);

if ($nb_sujets == 0) {
echo 'Aucun sujet';
}
else {
?>
<table width="500" border="1"><tr>
<td>
Auteur
</td><td>
Titre du sujet
</td><td>
Date dernière réponse
</td></tr>
<?php
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on décompose la date
sscanf($data['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);

// on affiche les résultats
echo '<tr>';
echo '<td>';

// on affiche le nom de l'auteur de sujet
echo htmlentities(trim($data['auteur']));
echo '</td><td>';

// on affiche le titre du sujet, et sur ce sujet, on insère le lien qui nous permettra de lire les différentes réponses de ce sujet
echo '<a href="./lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , htmlentities(trim($data['titre'])) , '</a>';

echo '</td><td>';

// on affiche la date de la dernière réponse de ce sujet
echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
}
?>
</td></tr></table>
<?php
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données.
mysql_close ();Auteur

mon fichier lire_sujet.php :

<html>
<head>
<title>Lecture d'un sujet</title>
</head>
<body>

<?php
if (!isset($_GET['id_sujet_a_lire'])) {
echo 'Sujet non défini.';
}
else {
?>
<table width="500" border="1"><tr>
<td>
Auteur
</td><td>
Messages
</td></tr>
<?php
// on se connecte à notre base de données
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('nom_base', $base) ;

// on prépare notre requête
$sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';

// 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 va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

// on décompose la date
sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);

// on affiche les résultats
echo '<tr>';
echo '<td>';

// on affiche le nom de l'auteur de sujet ainsi que la date de la réponse
echo htmlentities(trim($data['auteur']));
echo '<br />';
echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;

echo '</td><td>';

// on affiche le message
echo nl2br(htmlentities(trim($data['message'])));
echo '</td></tr>';
}

// on libère l'espace mémoire alloué pour cette reqête
mysql_free_result ($req);
// on ferme la connection à la base de données.
mysql_close ();
?>

<!-- on ferme notre table html -->
</table>
<br /><br />
<!-- on insère un lien qui nous permettra de rajouter des réponses à ce sujet -->
<a href="./insert_reponse.php?numero_du_sujet=<?php echo $_GET['id_sujet_a_lire']; ?>">Répondre</a>
<?php
}
?>
<br /><br />
<!-- on insère un lien qui nous permettra de retourner à l'accueil du forum -->
<a href="./index.php">Retour à l'accueil</a>

</body>
</html>

mon fichier insert_repopnses.php :

<?php
// on teste si le formulaire a été soumis
if (isset ($_POST['go']) && $_POST['go']=='Poster') {
// on teste le contenu de la variable $auteur
if (!isset($_POST['auteur']) || !isset($_POST['message']) || !isset($_GET['numero_du_sujet'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['message']) || empty($_GET['numero_du_sujet'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// on se connecte à notre base de données
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('nom_base', $base) ;

// on recupere la date de l'instant présent
$date = date("Y-m-d H:i:s");

// préparation de la requête d'insertion (table forum_reponses)
$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$_GET['numero_du_sujet'].'")';

// 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());

// préparation de la requête de modification de la date de la dernière réponse postée (dans la table forum_sujets)
$sql = 'UPDATE forum_sujets SET date_derniere_reponse="'.$date.'" WHERE id="'.$_GET['numero_du_sujet'].'"';

// 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 de lecture du sujet en cours
header('Location: lire_sujet.php?id_sujet_a_lire='.$_GET['numero_du_sujet']);

// on termine le script courant
exit;
}
}
}
?>

<html>
<head>
<title>Insertion d'une nouvelle réponse</title>
</head>

<body>

<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_reponse.php?numero_du_sujet=<?php echo $_GET['numero_du_sujet']; ?>" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Message :</span>
</td><td>
<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo htmlentities(trim($_POST['message'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster">
</td></tr></table>
</form>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>


et mon fichier insert_sujet.php :

<?php
// on teste si le formulaire a été soumis
if (isset ($_POST['go']) && $_POST['go']=='Poster') {
// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
// on teste si les variables ne sont pas vides
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message'])) {
$erreur = 'Au moins un des champs est vide.';
}

// si tout est bon, on peut commencer l'insertion dans la base
else {
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('nom_base', $base) ;

// on calcule la date actuelle
$date = date("Y-m-d H:i:s");

// préparation de la requête d'insertion (pour la table forum_sujets)
$sql = 'INSERT INTO forum_sujets VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.$date.'")';

// 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 recupère l'id qui vient de s'insérer dans la table forum_sujets
$id_sujet = mysql_insert_id();

// lancement de la requête d'insertion (pour la table forum_reponses
$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$id_sujet.'")';

// 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
header('Location: index.php');

// on termine le script courant
exit;
}
}
}
?>
<html>
<head>
<title>Insertion d'un nouveau sujet</title>
</head>

<body>

<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_sujet.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" 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="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">Message :</span>
</td><td>
<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo htmlentities(trim($_POST['message'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>


mes 2 table cree et mise ds mon serveur mysql :

table forum_sujets :

CREATE TABLE forum_sujets (
id int(6) NOT NULL auto_increment,
auteur VARCHAR(30) NOT NULL,
titre text NOT NULL,
date_derniere_reponse datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM;

table forum_reponses :

CREATE TABLE forum_reponses (
id int(6) NOT NULL auto_increment,
auteur VARCHAR(30) NOT NULL,
message text NOT NULL,
date_reponse datetime NOT NULL default '0000-00-00 00:00:00',
correspondance_sujet int(6) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;


VOILA et pourtant qud je lance index.php il me marque ca en erreur :


Insérer un sujet


Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'jeche294509@loca'@'localhost' (using password: YES) in /var/www/jecherchejetrouve.be/htdocs/index.php on line 14

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /var/www/jecherchejetrouve.be/htdocs/index.php on line 15

Warning: mysql_query() [function.mysql-query]: Access denied for user 'jeche294509'@'localhost' (using password: NO) in /var/www/jecherchejetrouve.be/htdocs/index.php on line 21

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/jecherchejetrouve.be/htdocs/index.php on line 21
Erreur SQL !
SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC
Access denied for user 'jeche294509'@'localhost' (using password: NO)

MErci de votre aide.





10 réponses

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
25 nov. 2011 à 10:14
Salut!
Erreur dans tes paramètres de connexion!
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 10:24
quel parametre de connection?
merci ;)
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
25 nov. 2011 à 10:28
apparament c'est ton @localhost dans le nom de connexion
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 10:30
j ai cree les 2 tables ds mon hebergeur mais je dois changer qlq chose d'autre?
pour vous dire j ai telecharger se script sur un site web et l'ai mis en pratique mais voila ;)
0

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

Posez votre question
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
25 nov. 2011 à 10:32
quel est le nom de ta base ?
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 10:33
localhost
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
Modifié par Chris 94 le 25/11/2011 à 11:21
le nom de la base :


Adresse du serveur: xxx.xxx.xxx.xxx
Nom de la base Mysql: j....2xxxxx9
Nom utilisateur : j....2xxxxx9
Taille de la base: 0 Mo / 10 Mo
Quota update: 01/01/1970 00:00
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
Modifié par vordano le 25/11/2011 à 10:40
a la ligne $base = mysql_connect ('localhost', 'jeche294509@localhost ', '***tonMdp***');
remplace localhost par l'adresse ip de ton serveur
remplace jeche294509@localhost par jeche294509

et édite ton message pour enlever l'adresse ip, ca évitera que quelqu'un aille faire un tour a ta place dans ta bdd (il ne faut jamais donner les logins de connexion sur internet, j'ai pus entrer dans ta bdd sans problème...)
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
25 nov. 2011 à 11:22
Bonjour,

Edition faite. Merci :-)
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 12:08
comment on edit son message ? merci
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
25 nov. 2011 à 12:12
@neya01

On n'édite pas son message dès lors qu'il y a eu une réponse et, quand il n'y en a pas eu, on dispose de quelques minutes pour corriger une erreur éventuelle.
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 12:13
je vais supprimer le message alors car je ne sais plus l editer ?
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 12:16
merci pour vos réponses je vais tester ca si probleme je refait un nouveau poste ;)
0
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
Modifié par vordano le 25/11/2011 à 12:46
tu as fait une erreur lors de l'écriture du nom de ta base, tu as mis un espace en trop a la fin alors qu'il n'y en as pas :)

de plus si je peux me permettre, ton champ "date_derniere_reponse" n'est pas utile puisque tu peux retrouver cette date avec une jointure entre les sujets et les réponses
0
neya01 Messages postés 28 Date d'inscription mercredi 23 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
25 nov. 2011 à 12:54
GRAND MERCI !!!
tout fonctionne parfaitement ;)
0