Un débutant bloqué en php/mysql / formulaire.

Résolu
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
ou bonsoir vu l'heure..

Je débute en création de sites web, et je suis dace un n-ième probleme .. mais celui ci me pose de gros problèmes, puisqu'en 3h de recherche..je n'ai toujours pas avancé..

Voila ce que je souhaite:
Que lorsqu'un utilisateur remplis les deux champs : nom / mot de passe de mon formulaire,
la base de donnée renvoie, si correspondance de ces deux contraintes avec une ligne de ma table, les données personnelles de la personne.

Voici mon essai de code ( j'ai pompé un peu partout des idées.. ca peut vous paraitre des mal codé :s)

                <article>
				<center>
					<form method="post" action ="page7.php">

					<FONT size="7"> Connexion </FONT>


					<p></br></br></br></br></br>
						<label for="Nom"> Votre nom:</label>
						<input type="text" name="nom_compte" id="Nom" placeholder="Ex: Durand"/><br/>
						</br></br>
						<label for="Mot_de_passe"> Votre mot de passe:</label>
						<input type="text" name="mdp_compte" id="Mot_de_passe" placeholder="Ex: ******"/><br/>
						</br></br>
						<input type="submit" name="Envoyer" value="Envoyer"/>
					</p>
					</form>
					
					<?php
					$base = mysql_connect('localhost','root','');
					mysql_select_db("site",$base);
     				
					$login = $_POST['nom_compte'];
					$pass = $_POST['mdp_compte'];					
					
					if (isset($_POST['Valider'])) 
					{ 

					$sql = 'SELECT * FROM compte_client WHERE (nom_compte = "'.$_POST['nom_compte'].'" AND mdp_compte = "'.$_POST['mdp_compte'].'")'; 
 
      
					$req = mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error()); 
 

					$data = mysql_fetch_array($req); 
 
      
					mysql_free_result ($req); 
					mysql_close (); 
      

					echo .$data['id_compte'];  
					}  
				</center>
                </article>


Pour aider un peu vu le manque de commentaire.
ma bdd = site
ma table : client_compte


la j'ai essaye de commencer par au moins afficher 1 truc..soit l'attribut : id_compte

Mais lorsque je fais "envoyer" sur ma page, rien ne change, elle reagit simplement comme si elle s'actualiser..


Je suis vraiment a mes débuts.. 1semaine de code pour le moment..

J'espere que vous pourrez m'aider :)

Merci

A voir également:

7 réponses

mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonjour,

l'élément <article> c'est du HTML5. Et en HTML5 on n'utilise plus <CENTER>. Correction:

<article style='width: 100%; text-align-center;'>

Ensuite, pour vous simplifier la vie, faites deux scripts distincts:
- un pour la page d'identification
- un pour la page de test d'identification

Eviter d'appeler vos scripts page7 ou n'importe quoi d'autre peu parlant.

Un script porte un nom explicite: testIdentification.php c'est mieux que page7.php
1
A.Nonymous
 
echo .$data['id_compte'];

=> Que fait ce "." ici ?
=> $data contient-il les infos attendues ? ( var_dump( $data ); )
-------------------
$login = $_POST['nom_compte'];
$pass = $_POST['mdp_compte'];

if (isset($_POST['Valider']))
{

$sql = 'SELECT * FROM compte_client WHERE (nom_compte = "'.$_POST['nom_compte'].'" AND mdp_compte = "'.$_POST['mdp_compte'].'")';

=> Suggestion : les variables $login et $pass ont été créées, autant les utiliser
=> $sql = 'SELECT * FROM compte_client WHERE (nom_compte = "'.$login.'" AND mdp_compte = "'.$pass.'")';
1
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
le "." vient du fait que nous sommes deux a travailler la dessus et que mon partenaire de projet est sous coda.

Vous avez raison, la fonction data est bel est bien vide.

Maintenant, j'ai mis :

				<?php
					$base = mysql_connect('localhost','root','');
					mysql_select_db("site",$base);
					

					
					$login = $_POST['nom_compte'];
					$pass = $_POST['mdp_compte'];

					if (isset($_POST['Envoyer']))
					{
					$sql = 'SELECT * FROM compte_client WHERE (nom_compte = "'.$_POST['nom_compte'].'" AND mdp_compte = "'.$_POST['mdp_compte'].'")'; 
					echo $sql['id_compte'];
					}  
					else
					{
						echo 'probleme';
					}

				?>


la j'ai en retour : "S" .. je dois donc avoir un probleme de variable .. malgré que j'ai un retour, enfin !! +10 pour votre réponse :)
0
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
je pense avoir trouvé :)
					$base = mysql_connect('localhost','root','');
					mysql_select_db("site",$base);
					

					
					$login = $_POST['nom_compte'];
					$pass = $_POST['mdp_compte'];
	
					
					if (isset($_POST['Envoyer']))
					{
					$sql = 'SELECT * FROM compte_client WHERE (nom_compte = "'.$_POST['nom_compte'].'" AND mdp_compte = "'.$_POST['mdp_compte'].'")'; 
					$requete = mysql_query($sql);
					$result = mysql_fetch_array( $requete );
					echo $result['nom_compte'];
					}  


bien sur entre balise php.

J'ai l'affichage souhaité !!

Merci A.Nonymous !
0
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
?!
ca changerai quelque chose ?^^

En tout cas, non.
0
A.Nonymous
 
Le test suivant ne peut réussir :
if (isset($_POST['Valider']))

Pour s'en convaincre :
if(!empty($_POST))
{
var_dump( $_POST );
}

Ne serait-ce pas
if (isset($_POST['Envoyer']))
?
0
Ahara
 
Hum.. En effet c'est bien possible.
Si seulement je savais exactement quoi mettre dans ces '..'
Je vais essayer des que possible, car j'ai besoin d'un peu de sommeil.
Merci A.Nonymous ( sympa le pseudo :))

J'ai déjà modifié le fait que dans form, ça envoyait sur la page7.php..
Qui est en fait cette même page.
J'ai créé une page formulaire.php et j'envoie vers celle ci lors du click que valider(ou envoyer).

Seulement je suis toujours en quête du code php me liant à ma base en fonction des valeurs des variables :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Un petit up ? :)
0
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord, merci des conseils :)

Mais , center fonctionne quand meme, alors pourquoi faire plus long?

le probleme est justement , quel code dois je mettre dans ma page de test d'identification, pour que les variables saisies par l'utilisateur, soit comparée a celles de la db ..
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
bonjour,

CENTER est obsolète, de même que FONT

Les règles en matière de HTML5 c'est de ne plus utiliser des éléments qui agissent directement sur la mise en forme du contenu. Vous devez privilégier la présentation en css.

Par exemple, si votre site évolue et que vous deviez y intégrer jQuery, il est préférable de récupérer des éléments via le CSS associé aux éléments. Utiliser CENTER par exemple, c'est contraindre votre code HTML à conserver cette mise en forme qui ne pourra pas être modifiée par jQUERY.

A+
0
Ahara Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Sujet clos.


Merci à A.Nonymous
0