Bonjour.
Je suis entrain de créer un espace membre mais le problème, c'est qu'il y a une erreur dans ce script
PHP:
<?
if((trim($login!=""))&&(trim($pass!=""))
{ $db = mysql_connect('localhost', 'root', ''); // A modifier !
mysql_select_db('mysql',$db);
$sql = "INSERT INTO membres_tbl(id,Login,Pass) VALUES('','$login','$pass')";
mysql_query($sql) or die('Erreur SQL !');
mysql_close();
print("<script>alert(\"Bienvenue $login :]\")</script>"); }
?>
Lorsque je valide un formulaire, il me dit qu'il y a une erreur dans cette ligne:
Code:
{ $db = mysql_connect('localhost', 'root', ''); // A modifier !
mais je ne la trouve pas.
Pourriez vous rechercher toutes les erreurs dans ce script svp et les corriger.
Merci d'avance.
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Dim 28 Mai 2006, 9:04 pm
Salut,
Et l'erreur, elle dit quoi au juste: utilises mysql_error pour avoir des informartions précises sur 'l'essence' de l'erreur !
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Dim 28 Mai 2006, 9:12 pm
Sinon, pour toi code, j'énonce tes erreurs:
- utilises les balises longues <?php plutôt que les balises courtes <? !
- la fonction trim s'exécute sur un variable: trim($login) et non trim($login!="") !
- utilises and plutôt que && !
- il faut enlever les simple quote autour des variables dans ta requête !
- Comme préciser dans mon précédent post, pour avoir plus d'unfos sur les éventuelles erreurs MySQL générées par le code utilise mysql_error dans ton or die('')...
- Et enfin, dans ton envoi de texte à la fin, concatène tes variables (en entre autre, ici, $login) !
Après toutes ces corrections cela devrait marcher...
Age
Inscrit le: 08 Avr 2006
Messages: 16
Posté le: Lun 29 Mai 2006, 7:44 pm
Je vais essayer et je te tiens au courrant.
Est ce que le script peut fonctionner si j'enlève cette partie:
Pour les "quot;", ce n'est pas moi qui l'ai tapé. A la base, s'était des guillemets comme celà " ". C'est en mettant le script entre les balises [php] et [/ph.] que les guillemets sont devenus "quot;"
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Lun 29 Mai 2006, 7:48 pm
Est ce que le script peut fonctionner si j'enlène cette partie:
PHP:
Il y a encore une erreur dans le script. J'ai faits exactement ce que tu m'a dis.
L'erreur provient de
Code:
if(trim($login)!='')) and (trim($pass)!='')
L'erreur pourrai provenir du formulaire si les valeurs ne sont pas les même mais j'ai vérifié et je n'ai pas trouvé d'erreur.
Voici le code de mon formulaire
Quoi comme erreur ?!! Penses à préciser car nous ne sommes pas des devins !
NB: Pour récupérer les valeurs d'un formulaire, c'est $_POST['nom du champ']...
Age
Inscrit le: 08 Avr 2006
Messages: 16
Posté le: Mar 30 Mai 2006, 8:43 pm
J'aurai bien voulu vous dire d'où viens l'erreur mais il me dit juste qu'il y a une erreur à la page "inscriptionadmin" et que l'erreur ce trouve a la ligne 3.
Voici ce qui y a d'écrit:
[code]
Parse error: parse error in c:\program files\easyphp1-8\www\verif.php on line 3
En fait, je voudrai qu'avec ce formulaire, le membre soit inscrit sur la base de donnée. Donc pourrai tu me modifier les lignes qu'il faut modifier en m'expliquant. Je c'est que je dois me débouiller tout seul pour y arriver et comprendre mais je ne trouve pas de tutos pour apprendre à enregistrer des variables sur une base de donnée.
Merci encore
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Mer 31 Mai 2006, 7:58 pm
C'est justement cela que je voulais comme précision pour l'erreur, dans ce cas essaie plutôt ce code:
Code:
<?php
if((trim($login)!='') and (trim($pass)!='') )
{
$db = mysql_connect('localhost', 'root', ''); // A modifier !
mysql_select_db('mysql',$db);
$sql = "INSERT INTO membres_tbl(id,Login,Pass) VALUES('', $login, $pass)";
mysql_query($sql) or die ('Erreur '.mysql_errno().' : ' . mysql_error());
mysql_close();
//on peut enregistrer dans la table
{
$db = mysql_connect('localhost', 'root', ''); // connexion à la base
mysql_select_db('admin',$db); // sélection de la base
// on regarde si l'url existe déjà
$sql = "SELECT id FROM admin_tbl WHERE login='$login'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) // le pseudo existe déjà, on affiche un message d'erreur
{
echo '<font color="red"><strong>Désolé, mais ce peudo existe déjà dans notre base.</strong></font>';
}
else {
echo '<font color="red"><strong>Votre pseudo est disponible</strong><font>';
}
// on regarde si l'url existe déjà
$sql = "SELECT id FROM admin_tbl WHERE email='$email'";
$mal = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$mail = mysql_num_rows($mal);
if($mail!=0) // le pseudo existe déjà, on affiche un message d'erreur
{
echo '<font color="red"><strong>Désolé, mais cette adresse e-mail existe déjà dans notre base.</strong></font>';
}
else {
echo '<font color="red"><strong>Votre adresse e-mail est disponible</strong><font>';
}
if(($mail!=0) and ($res!=0))
echo "<font color='red'><strong>Vous etes admin. Vous pouvez acceder à la partie d'administration. Bienvenue parmis les administrateurs du site.</strong></font>";
{
$sql = "INSERT INTO admin_tbl(id, login, pass, email) VALUES('', $login, $pass , $email)";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
mysql_close(); // on ferme la connexion
}
?>
Tout fonctionne sauf qu'il y a un truc qui est marrant: quand je créé le membre, une nouvelle ligne apparait dans la base de donnée, la case "id" est remplie mais le login et le mot de passe ('pass') n'apparraissent pas.
Pourrais-tu m'arranger ce problème stp
Je vais encore t'embetter mais est-ce que cette ligne peut fonctionner?
PHP:
<?php if(($mail!=0) and ($res!=0)) ?>
Parce qu'en fait, j'ai fais une vérification pour voir si le login et le pass n'existe pas déjà sur la base de donnée et j'aimerai que, si le login et le pass n'existe pas déjà, qu'y ait marqué: "Vous etes admin. Vous pouvez acceder à la partie d'administration. Bienvenue parmis les administrateurs du site." Est ce que la ligne que j'ai sité précedement fonctionne??
Merci encore. Au fait, tu tiens très bien ton rôle de modérateur
Age
Inscrit le: 08 Avr 2006
Messages: 16
Posté le: Ven 02 Juin 2006, 7:39 pm
UP svp.
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Sam 03 Juin 2006, 12:27 pm
Parce qu'en fait, j'ai fais une vérification pour voir si le login et le pass n'existe pas déjà sur la base de donnée et j'aimerai que, si le login et le pass n'existe pas déjà, qu'y ait marqué: "Vous etes admin. Vous pouvez acceder à la partie d'administration. Bienvenue parmis les administrateurs du site." Est ce que la ligne que j'ai sité précedement fonctionne??
Justement ici, il y a un problème car tu fais un echo avant l'accolade correspondant à cette condition ! Donc il faudrait plutôt mettre ta sortie de texte après l'accolade...
D'autre part pour plus d'optimisation de ton code, et pour éviter une suite de if et de else, il serait mieux que tu fasses tes vérifications suivant le schéma ci-dessous:
PHP:
<?php
if ($res != '0')
{
echo 'blablabla';
}
elseif($mail != '0')
{
echo 'blablabla';
}else{
echo 'Vous etes admin. Vous pouvez acceder à la partie d\'administration. Bienvenue parmis les administrateurs du site';
}
?>
Age
Inscrit le: 08 Avr 2006
Messages: 16
Posté le: Sam 03 Juin 2006, 12:44 pm
Je n'avais pas pensé à cette astuce. Je vais de ce pas changer mon script.
J'avais posté une autre question qui m'embette plus qu'au quel tu m'a répondu.
Voici le second problème:
Tout fonctionne sauf qu'il y a un truc qui est marrant: quand je créé le membre, une nouvelle ligne apparait dans la base de donnée, la case "id" est remplie mais le login et le mot de passe ('pass') n'apparraissent pas.
Pourrais-tu m'arranger ce problème stp
Encore un grand merci
Redox
Modérateurs
Inscrit le: 07 Sep 2004
Messages: 974
Posté le: Sam 03 Juin 2006, 2:43 pm
Vérifies que tes variables $login et $pass sont bien renseignées ! Et sinon quelle est la structure de ta table admin_tbl ?
Vous pouvez poster de nouveaux sujets dans ce forum Vous pouvez répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2