alexandryne

Inscris le 11/09/2009 à 18:41
  • Nombre de sujets
    10
  • Nombre de messages
    26
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

alexandryne
le 12/10/2009 à 13:54
erreur sql
Je ne vois pas du tout où il y a une erreur d'accolade. De toute façon, si j'en rajoute une, j'ai une erreur. Et ce que je ne comprends pas, c'est qu'avant que je rajoute l'email dans le code, je n'avais pas d'erreur du tout et j'avais deux "}" après "au moins un des champs est vide", mais depuis, je n'ai pas de message d'erreur quand j'ai une seule accolade, j'ai le formulaire, mais avec le message "au moins un des champs est vide", et si j'en rajoute une, là, j'ai "parse error : unexpected "}". La Globule me dit que l'accolade est dans l'autre sens. Le code PHP est fini après "au moins un des champs est vide". Il faut donc bien fermer les accolades ? Non ? Merci.
alexandryne
le 12/10/2009 à 11:51
erreur sql
J'avais justement rajouté un "}" à la ligne 35 parce que je pensais que c'était ça, mais ça me donne un message d'erreur et plus de formulaire :


Parse error: syntax error, unexpected '}' in /home/bonsplan/public_html/accueil/inscription.php on line 36. J'ai essayé de réfléchir avant de demander, mais comme je ne trouvais pas... Voilà le bout de code qui me donne cette erreur :


}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
alexandryne
le 12/10/2009 à 11:37
centrer "inscription" et le formulaire
Bonjour,

Je voudrais savoir comment je peux centrer le formulaire et "inscription" par rapport au formulaire, car tout est totalement à gauche. Merci. Voici le code :

</head>

<body>
Inscription &agrave; l'espace membre :<br />
<form action="inscription.php" method="post">
<table>
<tr>
<tr>
<td align="right">Login</td>
<td>
<td align="left"><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Mot de Passe</td>
<td><td align="left"><input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td>
</tr>
<tr>
<td align="right">Confirmation du mot de passe</td>
<td><td align="left"><input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Adresse Email</td>
<td><td align="left"><input type="text" name="email" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['email'])); ?>"></td>
</tr>
<tr>
<tr>
<td colspan="2"><input type="submit" name="inscription" value="Inscription">
</table>
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>
alexandryne
le 12/10/2009 à 11:18
espace entre Bienvenue et le prénom
Bonjour,

Je n'ai pas d'espace entre Bienvenue et le prénom quand ça s'affiche dans l'espace membres.Merci de me dire comment faire pour avoir un espace. Voici le code :
<?php <?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<head>
<title>Espace membre</title>
</head>

<body>
Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">D&eacute;connexion</a>
</body>
</html>



php ?>
alexandryne
le 12/10/2009 à 11:08
erreur sql
Bonjour,

Merci, Laura. Ca fonctionne avec ton bout de code. Avant ça fonctionnait avec l'autre, mais c'est avant que je rajoute l'email.

Par contre, j'ai l'erreur "au moins un des champs est vide " qui se met en-dessous du formulaire. Ca ne l'empêche pas de fonctionner, mais il ne devrait avoir rien d'écrit. Comment faire pour que ça ne s'affiche pas. Merci.
alexandryne
le 11/10/2009 à 20:11
erreur sql
Bonjour,

Quand j'envoie mon formulaire d'inscription, j'ai une erreur sql : Erreur SQL !INSERT INTO membre VALUES("", "alexandryne", "80fce8d1a73529f0bac163fc289eeae2")
Column count doesn't match value count at row 1.

Dans la base de données, j'ai : id, login, pass_md5 et email.

Voilà le code du formulaire d'inscription. Merci de m'aider. J'ai aussi "au moins un des champs est vide qui s'inscrit quand j'ai le formulaire qui apparaît.

<?php   // on teste si le visiteur a soumis le formulaire  
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste &eacute;galement si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email'])))
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont diff&eacute;rents.';
}
else {
$base = mysql_connect ('localhost', '*****', '******');
mysql_select_db ('*****', $base);

// on recherche si ce login est d&eacute;j&agrave; utilis&eacute; par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass']).'", "'.mysql_escape_string($_POST['email'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre poss&egrave;de d&eacute;j&agrave; ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}

?>
<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription &agrave; l'espace membre :<br />
<form action="inscription.php" method="post">
<table>
<tr>
<tr>
<td align="right">Login</td>
<td>
<td align="left"><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Mot de Passe</td>
<td><td align="left"><input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td>
</tr>
<tr>
<td align="right">Confirmation du mot de passe</td>
<td><td align="left"><input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Adresse Email</td>
<td><td align="left"><input type="text" name="email" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['email'])); ?>"></td>
</tr>
<tr>
<tr>
<td colspan="2"><input type="submit" name="inscription" value="Inscription">
</table>
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>

php ?>
alexandryne
le 11/10/2009 à 17:00
erreur lors de la connexion à l'espace membre
<?php   // on teste si une entr&eacute;e de la base contient ce couple login / pass 
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_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();
php ?>



Pour la table de la base de données, j'ai "id", "login", motdepasse". Merci.
alexandryne
le 11/10/2009 à 13:36
erreur lors de la connexion à l'espace membre
Bonjour,

J'ai donc fait l'espace membres qui se trouve dans "les comment faire". Pour l'inscription, pas de souci, le login et mot de passe sont dans la base de données. Mais pour la connexion, j'ai ce message d'erreur après avoir rempli le formulaire :

Erreur SQL !
SELECT count(*) FROM membre WHERE login="alexandryne" AND pass_md5="5adc31fe02c1f147aff963de8865d2f7"
Unknown column 'pass_md5' in 'where clause'.

Pourriez-vous me dire ce que je dois faire. Merci.
alexandryne
le 14/09/2009 à 16:21
page blanche après envoi de formulaire
Pour ce qui est de l'affichage, effectivement, il ne fallait pas de chiffres du tout dans le fichier php. Donc, ça m'affiche pom et dans l'inscription, (puisque j'avais mis la fonction "echo"), ça m'affiche le login, mot de passe, et confirmez votre mot de passe sur la page blanche.

Dans "inscription.php", je n'ai rien mis pour le champ vide, car avec l'index.html, ça met "login requis" ou "mot de passe requis" si le champ est vide. Par contre, pour les mots de passe différents, aucun message ne s'affiche et aucun enregistrement dans la base de données. Donc, ça coince encore, même s'il y a une amélioration. Je pense que je dois faire ce que tu m'as dit plus haut pour les messages d'erreur. Je ne sais pas du tout comment faire. Je te mets le code pour voir si c'est juste :
<?php    <?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

// on teste les deux mots de passe
if ($_POST['motdepasse'] != $_POST['confirmezvotremotdepasse']) {
$erreur = 'Les 2 mots de passe sont diff&eacute;rents.';
}
else {
$base = mysql_connect ('localhost', 'user', 'motdepasse');
mysql_select_db ('*_form', $base);

// on recherche si ce login est d&eacute;j&agrave; utilis&eacute; par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.(mysql_escape_string($_POST['motdepasse'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre poss&&egrave;de d&eacute;j&agrave; ce login.';
}
?>
<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
<?php if (isset($_POST['motdepasse'])) echo htmlentities(trim($_POST['motdepasse'])); ?>"><br />
<?php if (isset($_POST['confirmezvotremotdepasse'])) echo htmlentities(trim($_POST['confirmezvotremotdepasse'])); ?>"><br />
<?php
if (isset($erreur)) echo '<br />',$erreur;
?> ?>
LoadingChargement en cours