Ses derniers messages sur les forums
Bonjour,
J'ai tyrouvé les erreurs dans le script, la seule chose qui me dérange c'est les : $result à la place des req.
Est-ce normal ?
<?PHP
$query = 'SELECT count(*) FROM users_membres WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$result = mysqli_query or die('Erreur SQL !'.$sql.''.mysql_error($link, $sql));
$result = mysqli_query($link, $query);
$data = mysqli_fetch_array($result);
?>
Jack Bocar
Nom script et mes erreurs :
<?php
/* ------------------------------------------ */
define('PATH_HTTP', 'http://localhost/membres/register');
define('PATH_INCLUDE', 'e:/www/membres/register');
/* ------------------------------------------ */
define('dbHost', 'localhost');
define('dbUsername', 'root');
define('dbPassword', 'password');
define('dbDatabase', 'membres');
/* ------------------------------------------ */
define('SITE_NOM', 'users-membres');
define('SITE_EMAIL', 'users-membres@yahoo.fr');
/* ------------------------------------------ */
?>
<?php
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$link = mysqli_connect(dbHost, dbUsername, dbPassword, dbDatabase);
if (mysqli_connect_errno()) {
printf("Connexion échouée : %sn", mysqli_connect_error());
exit();
}
$query = 'SELECT count(*) FROM users_membres WHERE login="'.addslashes($_POST['login']).'"';
// ci-dessous : ligne 37
$query = mysqli_query($sql) or die('Erreur SQL !'.$sql.''.mysqli_error());
$data = mysqli_fetch_array($query);
if ($data[0] == 0) {
$query = 'INSERT INTO users_membres VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';
$query = mysqli_query($sql) or die('Erreur SQL !'.$sql.''.mysqli_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: ../membres/page_1.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Inscription</title>
</head>
<body>
Inscription à l'espace membre :
<form action="register.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>">
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '',$erreur;
?>
</body>
</html>
Les erreurs :
Warning: mysqli_query() expects at least 2 parameters, 1 given in E:wwwmembresregisterregister.php on line 37
Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:wwwmembresregisterregister.php on line 37
Erreur SQL !
Bonjour,
Je te donne l'exemple que j'ai trouvé sur le net :
http://www.manuelphp.com/php/function.mysqli-fetch-row.php
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %sn", mysqli_connect_error());
exit();
}
$query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";
if ($result = $mysqli->query($query)) {
/* Récupération du tableau d'objet */
while ($row = $result->fetch_row()) {
printf ("%s (%s)n", $row[0], $row[1]);
}
/* Libération du jeu de résultats */
$result->close();
}
/* Fermeture de la connexion */
$mysqli->close();
?>
Et celui-ci :
<?php
// ICI : http://www.manuelphp.com/php/function.mysqli-fetch-row.php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %sn", mysqli_connect_error());
exit();
}
$query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";
if ($result = mysqli_query($link, $query)) {
/* Récupération du tableau associatif */
while ($row = mysqli_fetch_row($result)) {
printf ("%s (%s)n", $row[0], $row[1]);
}
/* Libération du jeu de résultats */
mysqli_free_result($result);
}
/* Fermeture de la connexion */
mysqli_close($link);
?>
Pour lire les données, il fonctionne parfaitement bien, pour enregistrer des données dans mon espace membres tout va bien.
Là où ça ne va plus, c'est que mes pages protégées ne le sont plus du tout, de plus je crois que le script qui doit vérifier les bons mots de passes et les bons logins, ne fonctionne pas non plus avec ce mysqli ?
Merci de te pencher sur ce problème
Je me demande si je n'ai pas fait des erreurs de frappes à la construction de mon script ?
Jack Bocar
Bonjour,
Je n'arrive pas à modifier le script du "comment faire" un espace membres de
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
En :
$query ='ELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
if( $result = $link->query($query) )
{
while ($row = mysqli_fetch_row($result)) {
printf ("XXXXXXXXXXXXXXXXXXXXn", $row[0], $row[1], $row[2], $row[3]);
}
}
}
else
echo mysqli_error();
$result->close();
$link->close();
Ne peut-on pas modifier ce script ?
Quelqu'un peut-il me dire comment faire ?
Quelqu'un peut-il me faire une ébauche avec les fonctions "mysqli" ?
Merci de votre aide
Jack Bocar
Bonjour,
Merci LA GLOBULE, je suis depuis quelques temps sur le "mysqli", pour comprendre le fonctionnement.
J'avoue que pour la simplicité du code, c'est vraiment de la simplicité, mais pour la mise en page, il faut une autre paire de manches…
>>> LupusMic, je ne connais pas !!
C'est quoi le : mysql_pdo ?
Ca fonctionne avec Mysql 5 et Php5 ?
Jack Bocar
Non, ce n'est pas que chez toi.
Je vois la même chose.
Jack Bocar
Bonjour
J'aimerai savoir si un jour les nouvelles fonctionnalités de Mysql avec php5 "$link = mysqli_connect", entreront en fonctions et si elles remplaceront définitivement les anciennes fonctionnalités "$link = mysql_connect".
Merci de vos réponses.
Jack Bocar
le 08/10/2006 à 17:42
Wall
Bonjour
Je viens de m'apercevoir qu'il n'était pas nécessaire d'est logué pour poster un Wall !
Pourquoi cette action ne requière t'elle pas d'être logué ?
Jack Bocar
Bonjour
Vas donc voir cette page du Wall :
http://www.lephpfacile.com/wall/wall.php?id=3112
http://jspfr63.info/
Jack Bocar