Des sessions qui ne fonctionnent plus...

Falco Message lu Posté le 22 Juil 2008 à 13:24 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Hello !

Voila, depuis pas loin de 6 mois, mon site était hébergé chez Free. J'avais un forum phpBB 2, combiné avec des sessions sur mon site, et tout marchait nikel

voir ici : http://gamemaking.free.fr/rpgmakerabsolue/

Aujourd'hui, j'ai prit un nouvel hébergeur, afin d'avoir un site plus rapide.
J'ai tout déplacé mes fichiers sur ce nouvel hébergeur, cependant, depuis les sessions ne fonctionnent plus...

J'ai des ' . $userdata['username'] . ''?> par exemple.
Alors que normalement, je devrais avoir le pseudo du membre qui est connecté sur la page.
Voir ici : http://rpgmakerabsolu.e3b.org/

De quoi cela peut-il venir ?

J'ai pourtant mit le bon chemin relatif. J'ai mit le fameux code pour activer les sessions dans un fichier header menu, dans le dossion include.
Le forum se trouve avant le dossier include.
Code :
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
 include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.' .$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_SITE);
init_userprefs($userdata);
 //
// End session management
 //
?>


Donc techniquement, le chemin relatif est ../forum/
Cependant ça ne fonctionne pas...

De quoi cela peut-il venir ?

Merci par avance, :)
Mod Message lu Posté le 22 Juil 2008 à 14:01 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Ca déconne plutôt bien, dis donc... Surtout pour une erreur assez grossière ^^.

La balise ouvrante de php, c'est <?php, et non <? . Remplace tous tes <? par des <?php et ça fonctionnera. Remercions le Site du Zéro pour avoir introduit l'idée du <? parce que ça fonctionne à tort sur quelques serveurs ^^'.
Falco Message lu Posté le 22 Juil 2008 à 14:05 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Et ben dis donc, je savais vraiment pas oO
J'ai toujours utilisé <? pour une question de rapidité.

Je teste, et je te dit si ça fonctionne, en tout cas merci beaucoup :wink:
chaos Message lu Posté le 22 Juil 2008 à 14:22 Bulle
Avatar de chaos
Explorateur

Messages : 127
GCPoints : 11604
le <? a la place du <?php est une substitution classique basé sur le système de "larache" :embarassed: .

dans certain cas les <? ?> ne sont même pas interprété.

Pour les incultes : http://www.cafenware.org/la-rache/
Dernière édition le 22 Juil 2008 à 14:24
"c'est un fait, on obtient plus facilement en demandant poliment une arme a la main qu'en demandant juste poliment."
http://www.doujin-spirit.net/
Falco Message lu Posté le 22 Juil 2008 à 15:41 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Génial, ça marche ! =)
Merci beaucoup, j'ai passé tout hier après-midi à chercher une solution...

Sinon, je crois que j'ai un autre problème du jour, impossible de récupèrer des données contenu dans MySQL.
Pourtant j'ai les bons identifiants.

Voyez :
Spoiler - Cliquez pour afficher

Code :
<?php
include("includes/header_menu.php");
	
?> 
<div id="index">
 	<h2>Bienvenue sur Rpg Maker Absolu !</h2>
			
<p> Ici, vous trouverez tout le nécessaire pour débuter dans le Rpg Making, <br/>
tutoriels, ressources, entraides, etc... Pour les games, vous trouverez de nombreux jeux à télécharger. <br/></p>
<hr/>
<h4>Derniers tutoriels :</h4> 
	<?
mysql_connect("mysql", "rpgmakerabsolu", "*****");
mysql_select_db("rpgmakerabsolu_BDD");

$tutoriels = mysql_query('SELECT * FROM rpgmaker_tutoriels WHERE valide = 1 ORDER BY id DESC LIMIT 0, 3')or die (mysql_error());
   while ($tuto = mysql_fetch_array($tutoriels))
{  $tuto['titre']= stripslashes($tuto['titre'])?>
   <a href="tutoriels.php?id=<?php echo $tuto['id']?>&amp;page=voir"> <? echo $tuto['titre'];?></a></td> <br/>
   <?} ?>
     </div>
   <div>
<br/>

		</div>
       <!-- Le corps -->
 
       <? $nombreDeNewsParPage = 1; //Je choisit le nombre de news que je vais afficher par pag

$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM rpgmaker_news');
$donnees = mysql_fetch_array($retour); $totalDesNews = $donnees['nb_messages'];

// Je calcule le nombre de pages que je vais créer
$nombreDePages  = ceil($totalDesNews / $nombreDeNewsParPage); 
 
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}


// On calcule le numéro de la première news qu'on prend pour le LIMIT de MySQL
$premiereNewsAafficher = ($page - 1) * $nombreDeNewsParPage;
 
$retour = mysql_query('SELECT * FROM rpgmaker_news ORDER BY id DESC LIMIT ' . $premiereNewsAafficher . ', ' . $nombreDeNewsParPage);
 
?>
 <div id="corps">
 <?
while ($donnees = mysql_fetch_array($retour))
{
?>
		<?php
    // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
	
    $texte = nl2br(stripslashes($donnees['contenu']));
	$texte = preg_replace('#[b](.+)[/b]#isU', '<strong>$1</strong>', $texte);
$texte = preg_replace('#[i](.+)[/i]#isU', '<em>$1</em>', $texte);
$texte = preg_replace('#[u](.+)[/u]#isU', '<div class=souligne>$1</div>', $texte);

$texte = preg_replace('`[url=(.+?)](.+?)[/url]`', '<a href="$1">$2</a>', $texte);
$texte = preg_replace('`[url](.+?)[/url]`', '<a href="$1">$1</a>', $texte);

$texte = preg_replace('`[email=(.+?)](.+?)[/email]`', '<a href="$1">$2</a>', $texte);
$texte = preg_replace('`[email](.+?)[/email]`', '<a href="$1">$1</a>', $texte);
$texte = preg_replace('`[img](.+)[/img]`isU', '<img src="$1"/>', $texte);

$texte = preg_replace('#[color=(red|green|blue|yellow|purple|olive)](.+)[/color]#isU', '<span style="color:$1">$2</span>', $texte);
 
$texte = preg_replace('#[align=right](.+)[/align]#isU', '<div class=droite>$1</div>', $texte);
$texte = preg_replace('#[align=center](.+)[/align]#isU', '<div class=centre>$1</div>', $texte);

$texte = preg_replace('#[size=titre1](.+)[/size]#isU', '<h1>$1</h1>', $texte);
$texte = preg_replace('#[size=titre2](.+)[/size]#isU', '<h2>$1</h2>', $texte);
$texte = preg_replace('#[size=titre3](.+)[/size]#isU', '<h3>$1</h3>', $texte);
$texte = preg_replace('#[size=titre4](.+)[/size]#isU', '<h4>$1</h4>', $texte);
$texte = preg_replace('#[size=titre5](.+)[/size]#isU', '<h5>$1</h5>', $texte);
$texte = preg_replace('#[size=titre5](.+)[/size]#isU', '<h6>$1</h6>', $texte);
$texte = preg_replace('`[quote](.+)[/quote]`isU', '<div id="quote">$1</div>', $texte);?>
<h3><?php echo $donnees['titre']; ?></h3><?
    echo $texte;
    ?>
	<h4>Par <?php echo $donnees['auteur']; ?>
        <em>le <?php echo date('d/m/Y à Hhi', $donnees['timestamp']); ?></em>
    </h4>
	<? $infos_com = mysql_query('SELECT COUNT(*) AS nb_com FROM rpgmaker_commentaires WHERE idnews=' . $donnees['id']);
$donnees_com = mysql_fetch_array($infos_com);
$totalDesCommentaires = $donnees_com['nb_com']; ?>
					<em><a href="commentaires.php?idnews=<?php echo $donnees['id']; ?>&amp;titrenews=<?php echo stripslashes($donnees['titre']); ?>" onclick="window.open(this.href,'popup','height=500 , scrollbars=yes, width=500 , location=no');return false;"> <? echo ' Poster un commentaire ( '. $totalDesCommentaires.' )' ?></a><em> <br /> <!-- Atttention ! Ici, $donnees est l'array des news ! -->
 <?
// Puis on fait une boucle pour écrire les liens vers chacune des pages
?><br/><?
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}
} // Fin de la boucle des news 
?>
</div>
	
	
		<?php
	include("includes/footer_bas.php");
?>
 


D'ailleurs, je me suis toujours posé la question, est-ce important de faire une déconnexion de MySQl ?
Je le fait jamais...

Dernière édition le 22 Juil 2008 à 15:42
chaos Message lu Posté le 22 Juil 2008 à 15:50 Bulle
Avatar de chaos
Explorateur

Messages : 127
GCPoints : 11604
La connexion au serveur MySQL se terminera au bout d'un certain timeout, cependant si tu a trop de connexion "zombie" tu peut faire planter ton serveur.

Sinon tu a testé tes requêtes dans phpmyadmin avant de les balancers dans le codes comme sa ?
"c'est un fait, on obtient plus facilement en demandant poliment une arme a la main qu'en demandant juste poliment."
http://www.doujin-spirit.net/
Mod Message lu Posté le 22 Juil 2008 à 17:22 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
@ chaos : Je ne connaissais pas du tout Larache... Et je pense que ça ne me manquait pas ^^.

@ falco : je vois bien une ouverture SQL... Mais pas de fermeture, tu peux déjà ajouter un mysql_close() quand tu as fini d'utiliser ta base de données, ça évitera au serveur de le faire après timeout.

Si ton die ne retourne aucun message, c'est soit que ta requête ne retourne rien (là on ne peut rien faire toi), soit qu'elle n'a rien et récupérer (et la même chose :p).

Sinon, je vois encore des <? dans le code... Ca peut jouer des tours.
Falco Message lu Posté le 22 Juil 2008 à 18:37 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Tient pour les "<?" j'avais pourtant tout modifié juste avant oO
M'enfin bref, le site remarche :)
Tout les problèmes venait de ses maudites <?, j'ai toujours pensé que c'était une petite astuce pour allez plus vite :rolleyes:

Merci beaucoup Mod :smile:
Mod Message lu Posté le 22 Juil 2008 à 21:42 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Comme quoi économiser trois lettres ça fait perdre plus de temps au final ^^.
Siegfried Message lu Posté le 23 Juil 2008 à 14:29 Bulle
Avatar de Siegfried
Membre Confirmé

Messages : 167
GCPoints : 10958
Les 3 lettres à économiser, surtout, c'est S, D et Z.
Ca a l'air gentil mais perso je n'ai jamais pu apprendre quoique ce soit là-bas...
Vive les sites qui listent les méthodes, les balises et hop...
Le racontage de vie et la prog ne sont pas fait pour vivre ensemble...
"Le making se fait sur RPGMaker et non sur les forums."
Mes sites et forums :
Image
Falco Message lu Posté le 24 Juil 2008 à 22:40 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Ah ?
Moi j'ai trouvé ça sympa, j'ai apprit le PHP, HTML, CSS, et la j'apprends le C, j'ai pas trouvé meilleur ailleurs en tout cas ^^

Sinon, j'ai un autre problème pour mon site, je vais pas recréer un topic.

Pour mon système de test (qui est programmé), j'aimerais afficher à l'accueil, les deux dernières news (une image qui contient le lien), un peu à la manière de jeuxvideo.com.

Voici mon code :

Code :
<?php //système d'affiche des deux derniers tests
$test = mysql_query('SELECT * FROM rpgmaker_test ORDER BY id DESC LIMIT 0, 2')or die (mysql_error());
   while ($test_affichage = mysql_fetch_array($test ))
   {?>
   <div id="test_accueil">
    <a href ="test.php?id=<?php echo $test_affichage['id']?>&amp;page=voir"><img src="<?php echo $test_affichage['image'] ?>"border=0></a></img>
   </div>
   <?php
   }?>


Le truc, c'est qu'avec ce code, les images se placent l'une en dessous de l'autre, et c'est assez moche.

Comment faire pour qu'elles se place sur la même ligne?
Mod Message lu Posté le 25 Juil 2008 à 09:07 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
La méthode la plus simple, c'est faire un tableau.
Quelque chose ce genre :

Code : php
<?php //système d'affiche des deux derniers tests
$test = mysql_query('SELECT * FROM rpgmaker_test ORDER BY id DESC LIMIT 0, 2')or die (mysql_error());
   echo '<table><tr>';
   while ($test_affichage = mysql_fetch_array($test ))
   {?>
   <td>
    <a href ="test.php?id=<?php echo $test_affichage['id']?>&amp;page=voir"><img src="<?php echo $test_affichage['image'] ?>"border="0" /></a>
   </td>
   <?php
   echo '</tr></table>';
   }?>


Autrement, tu peux aussi utiliser bloc à positionnement relatif puis image à positionnement absolu, ou encore des float. Mais la méthode du tableau est la plus simple.


Ah, et c'est quoi donc cette horrible balise </img> ? C'est une balise seule img, pas une double ;). Au passage, si tu veux faire un site conforme XHTML 1.0 Strict, tu dois mettre tous les paramètres des balises HTML entre double quotes.
Dernière édition le 25 Juil 2008 à 09:11
Falco Message lu Posté le 25 Juil 2008 à 12:02 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Merci je teste ;)
Pour les images, j'ai du être au courant a mes débuts, mais j'ai oublié, merci d'avoir rapellé :)

Pour XHTML 1.0 Strict, j'ai fait un test, la plus parts des erreurs non conformes proviennent de ligne que j'ajoute pour le sessions de phpBB...

Edit : Ca marche ! Il fallait juste sortir le echo '</tr></table>'; de la boucle ;)
Sinon, pardonne moi mon ignorance, c'est quoi les doubles quotes ? :proud:
Dernière édition le 25 Juil 2008 à 12:17
Mod Message lu Posté le 25 Juil 2008 à 12:35 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Ah oui, j'ai mal visé, tiens :embarassed: .

Les doubles quotes, c'est ça : "

Apostrophe ou simple quote : '
Double quote ou guillemets anglais : "
Guillemets : « »

Falco Message lu Posté le 25 Juil 2008 à 13:16 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Okay, donc c'est ce que j'ai fait non ? :tongue:
<div id="test_accueil">
Par exemple.
Mod Message lu Posté le 25 Juil 2008 à 13:40 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Oui, mais :

<img src="<?php echo $test_affichage['image'] ?>"border=0>
Falco Message lu Posté le 25 Juil 2008 à 14:08 Bulle
Avatar de Falco
Explorateur

Messages : 135
GCPoints : 20545
Ah ok.
J'ai toujours pensé que ça marchait pas avec les chiffres =)

Bon, ben j'ai du boulot pour la version 2.0 alors ^^
Arcanis Message lu Posté le 31 Juil 2008 à 13:03 Bulle
Avatar de Arcanis
Membre Novice

Messages : 35
GCPoints : 14109
Code :
<div id="test_accueil">

Les ID sont fait pour être uniques. Dans ton premier code, tu l'avais mis dans une boucle, ce qui peut causer des erreurs d'interprétation aux navigateurs (sans parler de Javascript, qui ne sais plus à quoi tu veut faire référence).
Dans ces cas-là, il faut utiliser les classes.

Les short tags (<?) dépendent d'une configuration spéciale de PHP. Or cette option est désactivée par défaut, donc ... faut pas utiliser :proud:
Mais si cette option est activée, alors il est aussi possible d'utiliser <% %> (balises ASP) pour exécuter du PHP. Bref, c'est la merde :happy:

Il existe deux méthodes pour afficher les éléments HTML: Inline et Block. La première méthode affiche les éléments sur une seule ligne, la deuxième les affichent les uns sous les autres (pour résumer). DIV est une balise de type Block, son équivalent Inline est SPAN. Ca t'évitera d'utiliser un gros code avec plein de TR et de TD.
Par ailleurs, les balises IMG sont aussi Inlines de base. Normalement elle devraient s'afficher côte à côte. Ton problème venait, je pense, du DIV.

Les doubles quotes ont une importance en PHP: ce qu'elle contiennent sera interprété.
Code :
<?php
	$foo = "World";
	
	echo "Hello {$foo}!"; // Affichera "Hello World!"
	echo 'Hello {$foo}!'; // Affichera "Hello {$foo}!"
?>
Le PHP fait des jeux vidéos (enfin ... quand même pas de la 3D en temps réel ...).
Le PHP fait des sites internet.
Le PHP ne fait pas votre café.
Mod Message lu Posté le 31 Juil 2008 à 13:05 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823
Aaaah, oui, tiens, je n'avais pas du tout pensé à parler de l'inline. Honte sur moi, vu que j'en mange à toutes les sauces >_<.
Arcanis Message lu Posté le 31 Juil 2008 à 13:32 Bulle
Avatar de Arcanis
Membre Novice

Messages : 35
GCPoints : 14109
Ah ça, quand on fait un site, c'est clair qu'on est obligé de savoir à quoi ça sert...
Et encore, on pourrais aussi parler de table-cell et de ses consorts, si nos navigateurs étaient un peu plus corrects :proud:
Le PHP fait des jeux vidéos (enfin ... quand même pas de la 3D en temps réel ...).
Le PHP fait des sites internet.
Le PHP ne fait pas votre café.
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.1946 secondes