Vous n'êtes pas identifié(e).
Apres si c'est pour utiliser a la ligne suivante et pas autre part c'est totalement inutile
oui exact c'est pour la ligne juste en dessous, mais en faite c'est un script de news que je propose sur comscripts... donc je dois quand-même faire au plus simple pour l'utilisateur..
merci pour ta réponse
Salut a tous
// Ouvre une connexion persistante à un serveur MySQL
$link = mysql_pconnect('xxx', 'xxx', 'xxx');
if (!$link) {
die('Impossible de se connecter');
}
// Sélectionne une base de données MySQL
$db_selected = mysql_select_db('xxx', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données');
}
?>
Ma question :
Pour les variable en haut de ma page conf.php pour la connexion a mysql,
j'utilise plutôt la solution 1 2 ou 3 ?
il y a bien une des 3 methodes plus récente que les autres ou bien plus "standard" ?
merci
j'ai réglé mon probleme...
bonjour a tous
j'ai un probleme de connexion a mysql avec easyphp
aucun message d'erreur, rien, une page blanche...
voici ma page de connexion :
// configuration générale
define("MYSQL_HOTE", "localhost");
define("MYSQL_USER", "root");
define("MYSQL_PASSWORD", "");
define("MYSQL_BDD", "dynscripts");
define("NEWS_LIMIT", "5");
define("NEWS_TYPE", "AUTO"); // HTML or AUTO
// ne pas toucher
$connect = @mysql_pconnect(MYSQL_HOTE, MYSQL_USER, MYSQL_PASSWORD);
if (!$connect)
{
echo("Veuillez vérifier les identifiants de connexion à la base de données !");
exit();
}
if (!mysql_select_db(MYSQL_BDD, $connect))
{
echo("Impossible de se connecter à la base de données !");
exit();
}
?>
merci
oops, j'ai oublié de dire aussi que c'est trés trés lent... sinon ma page connexion fonctionne tres bien chez free.fr par exemple mais pas en local je sais pas pourquoi......
oui mais bizarrement.. je comprend mieu l'autre
il ma lair plus fuide, plus facile a lire d'un seul coup d'oeil toi t'en pense quoi niveau qualité du code je veux dire
le mien.. le code juste en dessus avec les 31 lignes ?
^^ je look a chaque fois mon code (meme t'es réponses je regarde bien) mais parfois je comprend pas trop les "termes" donc j'ai du mal mais sinon je suis pas du genre parresseu cher collaborateur je me donne du mal pour apprendre, je demande sur les forums, je cherche sur des sites a l'aide de google, etc...
mais sinon j'ai un script la sous la main, un espace membre avec biensur une page login.php j'ai regardé l'histoire du 0 dedans pour la connexion la etc... c'est pas la meme chose enfin c'est different non ? c'est plus propre non ? je prend lequel le mien ou celui la ? (je parle juste de cette portion) regarde :
if (isset($_POST["action"]) && $_POST["action"] == "send")
{
$login = postInput($_POST["login"]);
$password = postInput($_POST["password"]);
$r = mysql_query("select idmbr from membres where login='$login' and password='".md5($password)."' and etat=1;");
if (mysql_num_rows($r)==0)
{
$_GET["msg"] = "Veuillez vérifier vos informations";
}
else
{
$idmbr = mysql_result($r,0,"idmbr");
$_SESSION["membre"]["idmbr"] = $idmbr;
$_SESSION["membre"]["login"] = $login;
$_SESSION["membre"]["password"] = $password;
header("location: index.php");
exit();
}
}
else
{
$login = "";
$password = "";
}
?>
biensur je parle PAS du isset en haut ainsi que de l'erreur en GET j'ai pigé la leçon l'autre jour
"session_start() est à mettre en début de script et non au milieu. Sinon il va te générer des erreurs."
en haut de la page ? ok
"PS : ta première comparaison est à faire avec la valeur 1 et non 0."
? hein ou ?
ok mais je rajoute le { a la fin ? comme ceci :
ok j'ai remplacé la ligne 18 :
PAR :
c'est bon ?
sinon pour la 25/32 je cherche mais je réussi pas a comprendre comment faire.. tu pourrais me faire un exemple si sa te derange pas ?
ok merci j'ai modifié les 2 premiers points aussi celui de Kris sur la faille.. voici le nouveau code :
* Ligne 6-7 : tu ne gères pas les erreurs de connexion, si la connexion ne peut se faire le script sera tout de même chargé actuellement
jette un oeil pour me dire si c'est bon stp ou si il y a mieu a faire
sinon je comprend pas les points suivants :
* Ligne 11 : tu affiches la requête à tous les passants du coin en cas d'erreur !!!!! Certains pourraient se faire un malin plaisir à faire joujou avec ta page... Ne jamais donner d'informations sur le script aux visiteurs, c'est une règle d'or !
je retire quoi dans la ligne : $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
le $sql sans doute ? mais je pige pas car il y a des ' au debut/a la fin j'efface d'ou a ou ?
* Ligne 18 : si la requête ne renvoie aucun résultat ta variable ne sera pas initialisée à cet index, il manque donc un isset.
je comprend pas (dsl)
* Ligne 25 : idem
je comprend pas (dsl)
voici le nouveau code (attention le numéro des lignes ci-dessus car j'ai modifié donc plus les memes...)
$mabasededonnee="nombase";
$base = mysql_connect("localhost","root","motdepasse");
// test la connection
if ( ! $base )
die ("connection impossible");
// Connecte la base
mysql_select_db($mabasededonnee) or die ("pas de connection");
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value=""><br />
Mot de passe : <input type="password" name="pass" value=""><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
merci pour ta réponse.
sinon j'ai pas conpris : "mais pas propre de tester un !empty sur un false..." c'est a dire ? tu ma dit que je pouvais faire pareil.
ah ok donc comme ceci :
ou bien :
xTG : oui pas faux pour les étoiles ! je supprime je boss aussi sur t'es premiers conseils dans ton premier post ! merci.
"Laisse tomber xTG, quand il viendra pleurer ici parce que son site aura été victime d'attaques, il sera probablement plus réceptif à nos conseils."
pourquoi tu parle comme cela ??? c'est un forum d'entraide, tu post une seule ligne par post aprés tu veux qu'un debutant (comme moi) arrive a comprendre.. dsl si je comprend pas tout de suite d'un seul coup messieur.
comment le hacker obtient la meme source que le visiteur ? le visiteur chez lui bien tranquil !
ba oui.... enfin bref je comprend toujours pas Kris !
le visiteur tape le mot de passe dans le champ password du formulaire, ensuite il clic sur Connexion mais a un message d'erreur il clic-droit "Afficher la source" dans la source il y a le mot de passe en clair (donc le mauvais mot de passe ou meme pseudo qui la tape) et alors ??? s'il a pas les bons login/mot de passe il pourra rien faire donc ??? et alors !
c'est le mot de passe que tape le membre donc ? il verra le mot de passe qu'il tape c'est tout
mummm mais... de toute façon j'arrive toujours pas a comprendre "la faille" xTG.. puis toi non plus car tu pose la meme question que moi a Kris :
"Qu'est ce que cela peut générer comme faille de sécurité Kris ?
Hormis le mot de passe en clair dans le code html généré."
car meme avec le mot de passe en clair dans le code HTML, c'est le mot de passe que tapera le visiteur dans le formulaire de connexion donc je vois pas de faille... ?!
"De nombreux site le font, PhpBB compris dans le lot (bon sauf pour le mot de passe...)."
font quoi ?^^
"Qu'est ce que cela peut générer comme faille de sécurité Kris ?
Hormis le mot de passe en clair dans le code html généré."
en clair ?! a quel moment ?
kris : "Moi ce sont les lignes 46 et 47 qui me font froid dans le dos." ok mais pourquoi ?
salut a tous
mon code fonctionne parfaitement mais je souhaite savoir si il y a des améliorations a faire... ou bien des suggestions de votre part :
si oui : donnez moi un maximum d'explications SVP car je ne suis pas un expert du tout..
login.php (connexion a un espace membre)
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('nom_base', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
Merci
j'ai utilisé phped sur le pc d'un ami, c'est pas mal je trouve mais je voulais voir vos avis
bonjour
connaissez vous NuSphere PhpED ?
si oui : pouvez vous m'en dire plus ? c'est pas mal ?
merci
"Lis le lien qu'a posté Kris, tu devrais comprendre tout est expliqué dedans. ^^"
"-> j'ai pourtant lu la petite doc dessus dans ton lien" A premiere vu tu as pas lu entierement mon post oh pas biennnn^^
sinon pour le mysql_num_rows daccord mais c'est pas trés grave.. si ? enfin je veux dire c'est du propre aussi quoi non ?
xtg : j'ai regardé mais.. enfin je comprend pas trop! ni ta premiere remarque ni ta 2eme j'ai pourtant lu la petite doc dessus dans ton lien mais je comprend pas le rapport avec ta phrase "Tu peux rejoindre isSet et Empty dans un seul Empty"
j'ai demandé a un ami il comprend pas non plus... c'est pas trés claire pour un debutant. réexplique moi STP si sa te dérange pas biensur xtg ! (ou Maljuna Kris si ta conpris se qu'il voulais dire..)