Help forum

Résolu
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   712
 
Salut!
Erreur dans tes paramètres de connexion!
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
quel parametre de connection?
merci ;)
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
apparament c'est ton @localhost dans le nom de connexion
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
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 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
quel est le nom de ta base ?
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
localhost
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
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 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
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 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
Bonjour,

Edition faite. Merci :-)
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
comment on edit son message ? merci
0
Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
@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   Statut Membre Dernière intervention  
 
je vais supprimer le message alors car je ne sais plus l editer ?
0
neya01 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour vos réponses je vais tester ca si probleme je refait un nouveau poste ;)
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
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   Statut Membre Dernière intervention  
 
GRAND MERCI !!!
tout fonctionne parfaitement ;)
0