Php/mysql

Fermé
jeanjean - 2 sept. 2008 à 16:37
 jeanjean - 2 sept. 2008 à 17:32
Bonjour,
Pour apprendre le php j'essaye d'écrire un petit forum.
Je m'intéresse donc surtout au mélange php/html/mysql + feuilles de styles css.
Bref, là n'est pas le sujet...
Tout fonctionne tres bien chez moi avec easy PHP mais j'ai déjà du adapter mon code
à l'interprétation de mon serveur dédié qui est beaucoup moins tolérant (sur les session en particulier)
et la je bloque sur un truc certainement tout con.

J'arrive à enregistrer une sesssion, mais la base de données n'est pas mise à jour à ce moment là.
J'arrive tres bien à créer des users chez moi mais pas quand j'execute le script sur ma box.

J'imagine que c'est surement à cause du 'root' qui ne doit pas trop aimer etre appelé par un 'user' externe (sans co ssh)

Bref, je suis loin d'être un specialiste et je suis un peu perdu...si vous pouvez me donner quelques pistes ça m'arrengerait bien !!

voici la partie de mon script incriminée :
<?php
session_start();

echo '<link rel="stylesheet" type="text/css" href="../style.css">';
echo '<div class="root">';
echo '<div class="menubarL">';
echo '	Welcome : ';
if(isset($_SESSION['login'])) {
	echo $_SESSION['login'];
}

echo '</div>';
echo '<div class="menubarR">';
echo '|<a href="./logout.php">logout</a>|';
echo '</div>';

$host = "localhost";
$user = "root";
$password = "";
$database = "pwney_club";
$conn = mysql_connect($host,$user,$password);

mysql_selectdb("$database");
$nickname = $_SESSION['login'];
$userGroup= $_SESSION['UserGroup'];
$forums = mysql_query('SELECT * FROM forums');
echo '<div class="forums">';
$forumID = $_GET["forumID"];
if ( $forumID == 0 ) {
	while ($forum = mysql_fetch_array($forums) ) { ;
		echo '<div class="forum" onclick="location.href=\'./regindex.php?forumID='.$forum['ID'].'&topicID=0\'" >';
		echo '<h1>'.$forum['ForumName'].'</h1>';
		echo '<h2>'.$forum['ForumDescription'].'</h2>';
		echo '</div>';
	}
} else {
	$topics = mysql_query('SELECT * FROM topics WHERE forumID ='.$forumID );
	echo '<div class="topic" onclick="location.href=\'./regindex.php?forumID=0&topicID=0\'" >';
	echo '<h1>Click here to see all Forums </h1>';
	echo '</div>';
	while ( $topic = mysql_fetch_array($topics) ) {
		$topicID = $topic['ID'];
		if ( $_GET["topicID"] == $topicID ) {
			echo '<div class="topic" onclick="location.href=\'./regindex.php?forumID='.$forumID.'&topicID=0\'" >';
		} else {
			echo '<div class="topic" onclick="location.href=\'./regindex.php?forumID='.$forumID.'&topicID='.$topicID.'\'" >';
		}
		echo '<h1>'.$topic['TopicName'].'</h1>';
		echo '<h3>'.$topic['TopicContent'].'</h3>';
		echo '</div>';
		if ( $_GET["topicID"] == $topicID ) {
			$posts = mysql_query('SELECT * FROM posts WHERE topicID ='.$topicID );
			while ( $post = mysql_fetch_array($posts) ) {
				echo '<div class="post" onclick="location.href=\'./regindex.php?forumID='.$forumID.'&topicID='.$topicID.'\'" >';
				echo '<h2>'.$post['PostName'].'</h2>';
				echo '<h3>'.$post['PostContent'].'</h3>';
				echo '</div>';
			}
		}
	}
}
echo '</div>';
echo '</div>';
?>


L'erreure que j'ai est là suivante :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/apache/htdocs/pwnyBB/template/regindex.php on line 30

Merci de votre aide !
A voir également:

6 réponses

Profil bloqué
2 sept. 2008 à 16:45
regarde à la ligne 30 :)

while ($forum = mysql_fetch_array($forums) ) { ;

ta dernière parenthèse est dans le mauvais sens ;)
1
Profil bloqué
2 sept. 2008 à 17:02
oups en effet désolé d'avoir répondu trop vite j'ai pas vraiment bien regardé ... cette parenthèse est bien dans le bon sens ... après si le serveur t'indique une erreur à cette ligne enlève le ; au cas ou et recommence voir si l'erreur se produit au même endroit ...

mes confuses :(
1
bonjour

contrairement à titans.fr, je ne vois pas de parenthèse à l'envers dans ta ligne 30. Juste un point virgule inutile (mais sans conséquences )
Par contre, si je comprends bien, tu es passé d'une config locale à un serveur dédié. As-tu bien mis les bonnes valeurs dans $user et $password , qui ne sont très probablement pas "root et "". Ton hébergeur a dû te donner un nom d'utilisateur et un mot de passe de connexion à mysql.
0
En fait 'root' sans mot de passe marche en accès 'local' via la ligne de commande ssh.

quand j'exécute manuellement dans la ligne 'mysql>' de ma commande ssh les requêtes insert, tout se passe bien.

J'ai l'impression qu'il refuse d'être appelé via le browser.

ça doit être une histoire de 'GRANT', d'utilisateur à créer ou je ne sais pas trop.
Je suis bien concient que d'avoir dans un fichier sous mon htdocs/www :
login=root
pass=blabal
peu être pris pour hérésie !

Bref, je crois que ce sont des connaissances SQL qui me manquent, si l'un de vous pouvez m'expliquer rapidement ou m'indiquer un lien concernant ce sujet je lui en serait des plus reconnaissant :)

Merci pour vos reponses.

ps : le ; a été corrigé, je suis venu à bou des erreurs dans ma page; parcontre je n'arrive toujours pas a enregistrer un user dans ma bdd ...
0

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

Posez votre question
Le PHP de ton easyPHP est-il bien configuré pour afficher toutes les erreurs (error_reporting = E_ALL dans php.ini) ?
Si ça n'est pas le cas, tu vas sans doute découvrir un problème vant la ligne 30...
0
Je n'ai plus d'erreur, tout se passe bien chez moi comme en ligne.
En ligne la session fonctionne après le register le temps de la session,
Si je ferme mon browser et que je reviens, je suis obligé de 're' register, la fonction INSERT n'ayant pas mis à jour ma bdd mon login ne marche pas...
Je vais quand même aller regarder mes .ini mais je n'ai pas l'impression que ça vienne d'une erreur de php.

Merci, je continue à chercher, je vous tiendrez au courant si je trouve la source de mon pbl :)
N'hesitez pas à me donner des pistes à suivre !
0