Maintenant que ma zone membre est mise en place, est il possible de savoir si je suis obligé de lancer une connection à la base de donnée a chaque visite? Et est-ce normal que la base sql.free.fr ait 2 de tension???
Mon code:
<?
$dossier= "rubriques.php";
require("conf.php3");
$db_link =
@mysql_connect($sql_serveur,$sql_user,$sql_passwd)
;
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
if($_SESSION[´validite´]==0)
{
include(´menus/menu_gauche_des_non_inscrits.php´);
include(´article.php´);
include(´menus/menu_droit.php´);
include(´menus/menu_bas.php´);
?>
</center>
</center>
</td>
</h2>
</td>
</tr>
</table></center>
</body>
</html>
<?
exit; }
mysql_close($db_link);
?>
Page pour les membres
En gros je mets: si l´user n´est pas enregistré on lui affiche une page, s´il l´est on lui en affiche une autre. Mais comment faire pour que seul l´user necciste une connexiopn sur la base de donnee???
ais comment faire pour que seul l´user necciste une connexiopn sur la base de donnee???
=> j´ai pas trop comprids cette phrase.
Sinon du mysql sur free, c´est pas le top, :S donc un peu normal si ça a deux de tens´.
Juste une question tu la trouver ou le code pour ta base de données parce que c´est relativement chaud a mon gout et il tu a creer toi meme la zone membre ou tu la trouver autre part, stp repond parce que moi je compte faire une zone membre et jvoudrais savoir si y´en a pas des deja toutes faite ![]()
staro je demandais
comment faire pour que seul l´utilisateur connu du site (autrement dits personnes enregistrees sur la base de donnee) neccesiste une connexion sur la base de donnee???
H3r0s
j´ai trouvé un truc tout fait auquel j´ai un peu adapté a ma sauce? Tu veux le lien?
Sinon quel est ton site H3r0s???
http://www.phpscripts-fr.net/scripts/top.php
Lien de Gestion d´un espace membre par Jean-François Gazet
H3r0s
Posté le 22 août 2005 à 17:40:33 Avertir un administrateur à propos de ce message !
Juste une question tu la trouver ou le code pour ta base de données parce que c´est relativement chaud a mon gout et il tu a creer toi meme la zone membre ou tu la trouver autre part, stp repond parce que moi je compte faire une zone membre et jvoudrais savoir si y´en a pas des deja toutes faite
Tu trouves son code compliqué là?
Tu dois sûrement être un débutant alors (C´est pas méchant hein, ne le prends pas mal
) parce que c´est super simple en fait. ![]()
D´ailleurs j´ai même l´impression qu´il s´est compliqué la vie parce qu´un or die(); après la requête suffit à la place du if(...
debutant en php surement je l´utilise tres rarement, ensuite jdoit pas le rpendre mal ? ta avertis un administrateur pff , sinon je n´ais pas encore de site, j´en avais creer deux mais a chaque fois les lois du reformatage les ont radié !! donc la je veux en refaire un mais question base de données je me posais la question si c´était vraiment possible d´y mettre sur la page d´accueil et c´est relativement chaud en rajout les gens qui veule s´enregistré ... ![]()
Mais c´est dingue ça quand même, j´avertis pas un administrateur, c´est juste à cause du copié/collé! ![]()
putain 999888 tu est génial, j´avais oublié ce truc
or die();
dans die tu mets une phrase d´erreur ou juste or die() qui signifie que il y a eu echec de l´operation???
H3Ros demande moi car ma zone membre marche nicke a part que ces c******* chez Free foire en ce moment et que j´ai plus acces a mon site. tu veux mon mail???
ouai snooper je veux bien ton msn car moi je viens de debuter en php et je commençe un site tout seul et je vais galérer
donc sa serais cool d´avoir une petite aide de temps en temps et puis c´est réciproque des deux cotés.
jlmk54@hotmail.com
Génial, heu si tu veux lol, tu peux mettre or die(mysql_error()); mais moi ce que je disais, c´est de mettre l´erreur de ton if à l´intérieur, comme ça quoi :
$db_link =
@mysql_connect($sql_serveur,$sql_user,$sql_passwd)
or die(´Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3´);
Heu bien sûr tu enlèves le @ devant sinon ça sert à rien...
Pour que seule les personnes enregistrées sur ta base de données demandent la connexion à la base de données, tu utilises des variables de session
c´est simple et efficace !
Tu mets sur toute tes pages, tout en haut
session_start();
puis, pour appeler la connexion à la base de données
if( isset ($_SESSION[´username´]) )
{
connexion
}
évidemment, il te faut une page où tu permets à tes membres de se connecter, et où tu initialises les variables de session
(note que ´username´ n´était qu´un exemple, tu peux mettre n´importe quelle variable de session initialisée lors de la connexion ;)
999888 pourquoi avoir mis un @ alors???
ce code
or die(´Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3´);
affichera juste impossible de se connecter sur le serveur???
-Dr_Thrawn-
le probleme c´est que je veux que l´on puisse se connecter sur mon index. Non mais avec ton truc c´est tout con. Si la variable de session n´a pas été defini, elle vaut 0 c´est bien ca? Sinon que signifie isset????
Donc dans ce cas je cree une variable de session valant 0 pour éviter de réquérir une connexion a la base de donnee par page visitee. Mais si mettons $session=0 et que le visiteur se connecte a sa zone membre, comment je fais? Si on redéfinit la variable de session, celle-ci change?
En gros avec le code ci-dessous
<?
$SESSION=0;
$SESSION=1;
echo $SESSION;
?>
Que s´affichera t-il comme nombre? 0 ou 1???
Pour le code de connexion :
@ sert à éviter qu´un message d´erreur s´affiche.
die() permet de tout arrêter et d´afficher le message d´erreur, c´est pour quoi le premier annule le second.
isset ça veut dire ´ a été défini ´ ( is set en anglais)
si la variable de session n´a pas été définie et que tu l´appelles, ça affichera un Warning.
on évite cela en utilisant la fonction isset, qui te permet de voir tout de suite s´il y a eu connexion ou non.
En gros, tu peux mettre une fonction sur toutes tes pages qui t´affiche un formulaire de connexion rapide si l´utilisateur n´est pas connecté, ou la page normale si l´utilisateur est connecté.
Une variable de session peut-être redéfinie à volonté, et elle conserve sa valeur sur toutes les pages, tant que la fonction session_start() est présente.
Note également que les variables de session fonctionnent comme un tableau associatif.
donc le nombre de variable que tu peux stocker est infini:
Donc par exemple, je vais te donner un code simple
<?php
session_start();
if( !i sset($_SESSION[´username´]) ) // si cette variable n´existe pas :
{
if( !i sset($_POST[´pseudo´]) )
//On affiche le formulaire de connexion s´il n´a pas été rempli
{
echo ´<h3>Connexion</h3>
<form method="POST" action="#">
<b>Pseudo : </b> <input type="text" name="pseudo" maxlength="25" />
<br />
<b>Mot de Passe : </b> <input type="password" name="mdp" maxlength="20" />
<input type="submit" value="Connexion" />
</form>´;
}
else
{
//Sinon on interroge la base de données pour vérifier le mot de passe et connecter le membre
$pseudo = $_POST[´pseudo´];
$mdp = $_POST[´mdp´];
mysql_connect($sql_serveur,$sql_user,$sql_passwd)
or die(´Connexion impossible à la base de données <b>´ . $sql_bdd . ´</b> sur le serveur <b>´ . $sql_server . ´</b><br>Vérifiez les paramètres du fichier conf.php3´);
mysql_select_db($sql_database) or die(´Selection de la base ´ . $sql_database . ´ impossible´);
//On a sélectionné la base de données dans laquelle se situent nos informations. Il reste à selectionner la table des utilisateurs, par exemple ´users´
$select_user = ´SELECT `mdp`
FROM `users`
WHERE `pseudo` = "´ . $pseudo . ´ "´;
$data_user = mysql_fetch_assoc(mysql_query($select_user));
if($data_user[´mdp´] == $mdp)
{
//Si les mdp sont les même, l´utilisateur est connecté, on initialise la variable de session
$_SESSION[´username´] = $pseudo;
echo ´ Vous etes connecté, redirection...´;
//tu rediriges vers la page précédente
}
else
{
//Sinon, l´utilisateur n´est pas connecté
echo ´Le mot de passe ne correspond pas au pseudonyme...´;
}
}
else
{
//Sinon, le membre est connecté, tu affiches ta page et par exemple:
echo ´Bonjour ´ . $_SESSION[´username´] . ´ ! ´;
}
Et tu as tout ce qu´il te faut
999888 pourquoi avoir mis un @ alors???
-_- Bah j´ai recopié ton code hein...
ce code
or die(´Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3´);
affichera juste impossible de se connecter sur le serveur???
Ca ça remplace ton if, c´est tout....