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

Résolu/Fermé
Ahara Messages postés 7 Date d'inscription lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012 - 28 mai 2012 à 03:27
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 29 mai 2012 à 09:09
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 mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 340
28 mai 2012 à 12:04
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
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 lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 15:15
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 lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 15:30
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 lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 03:32
?!
ca changerai quelque chose ?^^

En tout cas, non.
0
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
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 lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 11:50
Un petit up ? :)
0
Ahara Messages postés 7 Date d'inscription lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 12:07
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 mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 340
29 mai 2012 à 09:09
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 lundi 28 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 16:25
Sujet clos.


Merci à A.Nonymous
0