Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Pb php création d'un formulaire acces reservé

kacem25, le dimanche 18 novembre 2007 à 17:17:26
Bonjour,

Voilà depuis peu je me suis décidé de me mettre au php et mysql donc pour débuter je me suis acheter "PHP & MySQL pour les nuls"( livre critiquable sur bien des points), et je me suis lancé sur la réalisation d'un site web a accés réservé, et là je me suis heurté à un problème.
Mes formulaires créés, je les essais, je remplis les champs identifiant et mots de passe et valide en cliquant sur identifiez-vous j'ai le message d'erreur " Requête 1 en échec" et quand je remplis le formulaire et que je clique sur inscrivez-vous j'ai le message "Requête SELECT en échec case new" Je pense que je n'arrive pas à me connecter à la base de donner et j'ai essayé different truc que j'ai chopé dans les forum mais rien n'y fait. Mais pour être plus claire je vous poste le script. Si quelqu'un pouvait m'aider sa serait super sympa. Merci.

<?php
/* Programme :Login.php
* Description :Programme de login pour la section à accés réservé
* de l'animalerie. Il propose deux options :
* 1 - s'identifier par uin coupe de login/mot de passe
* 2 - créer un cnouveau compte
* Identificateurs et mots de passe sont conservés
* Dans une base de données MySQL.
*/
session_start();
include(chiens.inc);
switch (@$_POST['do'])
{
case "login";
$cxn = mysqli_connect($host, $user, $password, $memberdirectory)
or die("connexion impossible dans la case login");
$sql = "SELECT loginName FROM member WHERE loginName='$_POST[fusername]'";
$result = mysqli_query($cxn,$sql)
or die("Requête 1 en échec");
$num = mysqli_num_rows($result);
if($num > 0 ) // logiName non trouvé
{
$sql = "SELECT loginName FROM Member
WHERE loginName='$_POST[fusername]'
AND password=md5 ('$_POST[fpassword]')";
$result2 = mysqli_query($cxn, $sql)
or die ("Requête en échec 2.");
$num2 = mysqli_num_rows($result2);
if ($num2 > 0) // Mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname'] = $logname;
$today= date("Y-m-d h:i:s");
$sql= "INSERT INTO Login (loginName, loginTime)
VALUES ('$logname', '$today')";
$result = mysqli_query ($cxn, $sql)
or die ("INSERT en échec.");
header("Location: membre_page.php"); /***** *****/
}
else // mot de passe incorrect
{
$message="le nom de login '$_POST(fusername]'
existe mais le mot de passe
ne va pas ! Réessayez encore.<br>";
include("login_form.inc") ;
}

}
elseif ($num == 0 ) // Nom de logion introuvable
{
$message = "Le nom du login que vous avez saisi
n'existe pas ! Réessayez. <br>";
$include("login_form.inc");
}
break;

case "new":
/*Recherche de champs vide*/
foreach($_POST as $field => $value)
{
if ($field !="fax")
{
if ($value == "")
{
$blanks[] = $field;
}
}
}
if(isset($blanks))
{
$message_new = " Champs non saisis. Veuillez les
renseigner: ";

foreach($blanks as $value)
{
$message_new .= "$value, ";
}
extract($_POST);
include("login_form.inc");
exit();
}

/* Validation des données */
foreach($_POST as $field => $value)
{
if(!empty($value))
{
if(eregi("name",$field) and
!eregi("login",$field))
{
if (!ereg("^[A-Za-z' -]{1,50}$",$value))
{
$errors[]= "$value n'est pas un nom valide.";
}
}
if(eregi("street",$field) or
eregi("addr",$field) or eregi("city", $field))
{
if (!ereg("^[A-Za-z0-9.,' -]{1,50}$",$value))
{
$errors[]= "$value est incorrect.";
}
}
if(eregi("state",$field))
{
if (!ereg("[A-Za-z]{2}",$value))
{
$errors[]= "$value est refusé pour state.";
}
}
if(eregi("email",$field))
{
if (!ereg("^.+@.+\\..+$",$value))
{
$errors[]= "$value est refusé comme mail.";
}
}
/* if(eregi("zip",$field)
{
if (!ereg("^[0-9]{5,5}(\-[0-9){4-'))?$",$value))
{
$errors[]= "$value nest pas un code postal valide.";
}
}

if(eregi("phone",$field)
or eregi("fax",$field))
{
if (!ereg("^([0-9])(xX -]{7,20}$",$value))
{
$errors[]= "$value n'est pas un numéro de telephone";
}
}
*/
}// fin de if empty
} // fin de foreach
if(@is_array($errors))
{
$message_new = "";
foreach($errors as $value)
{
$message_new .= $value. " Réessayer<br/>";
}
extract($_POST);
include("login_form.inc");
exit();
}
/* nettoyage des données */
$cxn = mysqli_connect($host, $user, $password, $memberdirectory);

foreach($_POST as $field => $value)
{
if($field != "Button" and $field != "do")
{
if($field == "password")
{
$Password = strip_tags(trim($value));
}
else
{
$fields[]=$field;
$value = strip_tags(trim($value));
$values[] = mysqli_real_escape_string($cxn, $value);
$$field = $value;
}
}
}

/* Le nom de login existe-t-il déjà ? */
$sql = "SELECT loginName FROM Member WHERE loginName = '$loginName'";
$result = mysqli_query($cxn,$sql)
or die ("Requête SELECT en échec case new.");
$num = mysqli_num_rows($result);
if ($num > 0)
{
$message_new = "$loginName existe déjà. Choississez-en un autre.";
include("login_form.inc");
exit();
}
/*Ajout d'un nouveau membre */
else{
$today = date ("Y-m-d");
$field_str = implode(",",$fields);
$values_str = implode('","',$values);
$field_str .=",createDate";
$values_str .='"'.",".'"' .$today;
$fields_str .=",password";
$values_str .='"'.","."md5"."('".$password."')";
$sql = "INSERT INTO Member";
$sql .="(".$fields_str.")";
$sql .="VALUES ";
$sql .="(".'"'.$values_str.")";
$result = mysqli_query($cxn,$sql)
or die ("requête INSERT en échec.");
$_SESSION['auth']="yes";
$_SESSION['logname']="loginName";

/* Envoyer un email au nouveau mot de passe */
$emess = "Un nouveau compte membre vient d'être créer.";
$emess .= "votre identifiant et votre mot de passe sont : ";
$emess .= "\n\n\t$password\n\n";
$emess .= "Nous apprécions l'intérêt que vous portez à notre animalerie.\n\n";
$emess .= "Si vous avez des questions à poser, vous pouvez";
$emess .= "envoyer un e-mail à webmaster@animalerie.com";
$ehead .= "From: member-desk@animalerie.com\r\n";
$subj = "votre nouveau compte à l'animalerie";
$mailsnd =mail("$email", "$subj", "$emess", "$ehead");
header("Location: Nouveau_membre.php");
}
break;
default;
include("login_form.inc");
}
?>
Configuration: Windows XP
Internet Explorer 6.0
Répondre à kacem25  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le dimanche 18 novembre 2007 à 17:25:22
ne poste pas toutes les requetes!!!! si sa marque Requete 1 en echec , c'est pas pour rien

je te cite;

$sql = "SELECT loginName FROM member WHERE loginName='$_POST[fusername]'";
$result = mysqli_query($cxn,$sql)
or die("Requête 1 en échec");

essaye de remplacer '$_POST[fusername]''' par '$user[username]'

si sa marche pas remplace les 'blablabla' par "blablabla"
bye

PS; ton site aura plein de failles exploitables par les hackers
Répondre à ninjainpyjama

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacemel, le dimanche 18 novembre 2007 à 17:51:52
Merci ninjainpyjama pour ta réponse

En effectant les modification que tu m'as proposé j'ai cela en message d'erreur :

Warning: include(chiensinc) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\login.php on line 11

Warning: include() [function.include]: Failed opening 'chiensinc' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\login.php on line 11

Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\login.php on line 15
connexion impossible dans la case login

PS : J'ai bien du mal à faire un simple formulaire donc je pense bien qu'il y a plein de faille
Répondre à kacemel

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le dimanche 18 novembre 2007 à 17:56:55
ouais j'ai vu la faille union , la faille 'injection SQL", et la faille include, et peut etre la faille .htaccess et au fait met un maxlength pour tes logins et tes mot de passes sinon on peut faire crasher ton serveur :

bon sa peut se regler plus tard

Passons au code: waou!!!c'est pas facile. Attends je cherche. des que j'ai du nouveau je te le dit
Répondre à ninjainpyjama

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacem25, le dimanche 18 novembre 2007 à 18:10:13
Bonjour,
excuse moi, en faisant différentes manipulations j'avais enlever les guillemets dans include("chiens.inc") et j'ai oublié de les remettres avec ta modification le problémes reste le même toujours Requête 1 en échec.
Répondre à kacem25

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le dimanche 18 novembre 2007 à 18:14:04
excuse j'avais pas vu ton erreur bon plu ka repartir chercher
Répondre à ninjainpyjama

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le dimanche 18 novembre 2007 à 18:18:38
Nooooon!! j'ai regarde de plus pres ton code=>toutes tes requetes sont en echec
Répondre à ninjainpyjama

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacem25, le dimanche 18 novembre 2007 à 18:23:26
Bonjour,
Alors c'est grave docteur, je t'aurais bien envoyé les pages du bouquin mais je ne sait pas si c'est autorisé dans le forum.
Répondre à kacem25

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacemel, le dimanche 18 novembre 2007 à 20:39:19
Re

J'ai retapé tout le code en enlevant le i dans mysqli_xxx et apporté d'autre modif (je crois que je suis passé de php5 à php4) en m'aidant d'internet cela a résolu mon probléme mais à ouvert la porte à d'autre problème. Maintenant quand je remplis le formulaire j'ai le message suivant 452 : Cannot add or update a child row: a foreign key constraint fails (`membresseuls/membre`, CONSTRAINT `membre_ibfk_1` FOREIGN KEY (`nomLogin`) REFERENCES `login` (`nomLogin`))
Répondre à kacemel

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le lundi 19 novembre 2007 à 11:11:33
ouais je voulais te dire que le "i" mysqli etait bizarre : j'ai jamais fait de requete SQL avec un i ; si c'est ton bouquin qui dit sa , c'est un peu de la merde : j'ai pas pu, j'étais ds un bon film et je me suis endormi dc j'ai pas pu t'aider

Ps;Kacemel= Kacem25 ou pas???

Edit : chui au lycée dc j'ai pas forcément le tps de toujours réflechir a ta question
@+
Répondre à ninjainpyjama

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le lundi 19 novembre 2007 à 11:18:28
c'est simple :si tu passe de php5 a php4 faut que tu fasses tout en php4 car php4 est different de php5

"Cannot add or update etc...." veut dire que tu as encore ce bout de code en php5 et non pas en php4

Bye j'espere que j'ai pu t'aider
Répondre à ninjainpyjama

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacemel, le lundi 19 novembre 2007 à 15:21:37
Salut,

kacemel=kacem25

En faite i dans mysqli c'est pour php 5, je m'etais dis si je devais apprendre le php autant que cela soit le 5 soit le dernier.
Répondre à kacemel

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le lundi 19 novembre 2007 à 19:01:52
Helloo!
les plus nouveaux sont souvent les plus compliques et pas toujours les plus efficaces

Bienvenue sur comment ca marche!!!

Finalement, t'arrive a coder ou t'y arrive pas

Bye
Répondre à ninjainpyjama

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacemel, le lundi 19 novembre 2007 à 19:32:14
Salut,

Je te remercie de ta fidélité, je pense que mon script est bon mais la fonction mail ne fonctionne pas. Je teste ma page sur un serveur local et j'ai lu sur un site que pour la fonction email il fallait modifier : <<SMTP = localhost>> par le veritable smtp qui pour mon cas donnerais
<<SMTP= smpt.orange.fr>> mais sa ne marche pas j'ai du oublier quelque chose.
Répondre à kacemel

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le lundi 19 novembre 2007 à 19:51:27
sur un serveur local ;mmmhh.. essaye de laisser localhost
Répondre à ninjainpyjama

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kacemel, le lundi 19 novembre 2007 à 19:57:37
Dans un premier temps j'avais laisser localhost mais sa me mettait : Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Login.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Login.php:215) in C:\wamp\www\Login.php on line 216

et en changeant le smtp dans le dossier php et appache deWAMP5 sa me fait la meme chose. As tu une idée ?
Répondre à kacemel

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le lundi 19 novembre 2007 à 22:30:49
verifie ton port SMTP; <<SMTP=smtp.orange.fr>> et <<smtp_port=quelquchose>>

le qqch serait peut-etre le port 80 (port http); je sais pas du tout si sa va marcher mais bon essaye les ports 21 et 80


EDIT; peut-etre que ta valeur "$value" est pas la bonne
Répondre à ninjainpyjama

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le mardi 20 novembre 2007 à 09:33:24
je te dis sa paske le port des mails est le port 25
si sa marche pas ce qui est en haut, essaye <<smtp_port = 25>> mais tu change la $value

et puis met <<SMTP = smtp.orange.fr>>
Répondre à ninjainpyjama

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ninjainpyjama, le mardi 20 novembre 2007 à 12:27:10
bah alors ,tu dors? lol
Répondre à ninjainpyjama

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 kacemel, le mardi 20 novembre 2007 à 19:51:55
Salut,

Hé oui, je suis démasqué le soir je dort lol.

Je ne trouve pas le smtp_port le fichier php.ini et quand je fais la recherche le seule smtp qu'il me trouve c'est celle que j'ai déja modifier.
Répondre à kacemel

Résultats pour pb php création d'un formulaire acces reservé

Liste déroulante dans un formulaire Access (Résolu) Bonjour, je voudrais créer une zone de liste modifiable dans un formulaire Access telle que lorsqu'on entre une valeur n'appartenant pas à la table associée, celle-ci s'y ajoute automatiquement après avoir demandé de renseigner les... www.commentcamarche.net/forum/affich-794838-liste-deroulante-dans-un-formulaire-access
Affichage multiple sous formulaire ACCESS (Résolu) Bonjour, J'ai réussi à afficher les résultats que je voulais dans une requête (donc en format feuille de données), et pour pouvoir avoir un affichage agréable sur mon formulaire principal, j'ai décidé de créer formulaire ayant comme source... www.commentcamarche.net/forum/affich-6859205-affichage-multiple-sous-formulaire-access
Formulaire access (Résolu) Bonjour, je n'arrive pas à filtrer mes années et mes semaines sur un formulaire access. Mon problème du coup c'est que dans mes listes déroulantes je vois par exemple Mr dupond année 2003 2004 2005 2006 semaine 1, 2,3,4,5,6,7...52 je... www.commentcamarche.net/forum/affich-8335723-formulaire-access

Résultats pour pb php création d'un formulaire acces reservé

ACCESS + Ouverture de formulaire (Résolu)Bonjour, j'ai crée sous Access un formulaire qui présente tout ce qu'on peut faire sur ma base de données. Je voudrais vous poser une question? existerait il un code ou une procédure permettant d'afficher en grand (plein écran) mon... www.commentcamarche.net/forum/affich-1678485-access-ouverture-de-formulaire
[Access] Définir zone d'impression formulaire (Résolu)Bonjour, Je voulais savoir s'il était possible de définir une zone d'impression dans un formulaire access, ou à défaut, si l'on pouvait exclure de l'impression certains éléments (combobox, liste, etc.) Merci d'avance. Cdlt Sheraf www.commentcamarche.net/forum/affich-1793748-access-definir-zone-d-impression-formulaire
Php formulaires (Résolu)Bonjour, je suis entrain de lire un cours de php (les formulaires) et je me demande: pour une liste déroulante dans cet exemple Choix 1 Choix 2 il se crée... www.commentcamarche.net/forum/affich-7771358-php-formulaires

Résultats pour pb php création d'un formulaire acces reservé

[DADVSI] Une réserve numérique pour les LL*EUCD.INFO annonce la création d'une réserve numérique accueillant tous les Logiciels Libres menacés par le DADVSI. Un accès libre et gratuit à cette réserve est proposé à tous les citoyens français qui peuvent ainsi utiliser ces logiciels, les... www.commentcamarche.net/actualites/dadvsi-une-reserve-numerique-pour-les-ll-2166632-actualite.php3

Résultats pour pb php création d'un formulaire acces reservé

PHP - Créer un moteur de rechercheIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de... www.commentcamarche.net/contents/php/phpmoteur.php3