IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire ne postant rien


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Formulaire ne postant rien
    Bonjour.
    J'ai un contrat urgent de site web et c'est là que j'ai un problème tout bête, mais dont je ne connais pas la solution...

    Alors je m'explique:
    J'ai crée un formulaire, que j'écris à l'aide d'un "echo" en PHP, sur ma page "connexion". Ce formulaire pointe sur "connexion_t". Lorsque je clique sur le bouton, on dirait que rien ne s'envoie car je n'arrive pas à traiter aucune information.

    Voici le code de "connexion" (ne fait pas attention aux balises </b></font></div>, elles sont ouvertes avant la condition):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if(isset($_SESSION['membre_id'])){ // Si le membre est connecté et qu'il tente d'accéder à la page...
    	echo 'Vous êtes déjà connecté sur le site. </b></font></div>'; // ... on lui refuse l'accès.
    } else{ // Sinon on lui affiche le formulaire
    	echo '
    		Veuillez remplir le formulaire suivant pour vous connecter sur le site. </b></font></div>
    		<div id="wb_Form1" style="position:absolute;left:303px;top:500px;width:344px;height:139px;z-index:20;" align="left">
    		<form name="frmConnexion" method="post" action="connexion_t.php" enctype="text/plain" id="Form1">
    		<input type="hidden" name="abc" value="abcdefghijklmnopqrstuvwxyz">
    		<input type="text" id="Editbox1" style="position:absolute;left:124px;top:15px;width:200px;font-family:Courier New;font-size:16px;z-index:0" name="Editbox1" value="" maxlength="20">
    		<div id="wb_Text5" style="position:absolute;left:31px;top:44px;width:83px;height:16px;z-index:1;" align="left">
    		<font style="font-size:13px" color="#000000" face="Arial">Mot de passe</font></div>
    		<input type="password" id="Editbox2" style="position:absolute;left:124px;top:44px;width:200px;font-family:Courier New;font-size:16px;z-index:2" name="Editbox2" value="" maxlength="20">
    		<div id="wb_Text4" style="position:absolute;left:13px;top:21px;width:101px;height:16px;z-index:3;" align="left">
    		<font style="font-size:13px" color="#000000" face="Arial">Nom d\'utilisateur</font></div>
    		<input type="submit" id="Button1" name="btnConnexion" value="Connexion" style="position:absolute;left:224px;top:88px;width:96px;height:25px;background-color:#7F7F7F;font-family:Arial;font-size:13px;z-index:4">
    		</form>
    		</div>
    	';
    }
    Et voici ma page "connexion_t":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    if(isset($_SESSION['membre_id'])){ // Si le membre est déjà connecté...
    	header('Location: index.php'); // ... on le renvoie à l'index.
    } elseif(isset($_POST['Editbox1']) AND isset($_POST['Editbox2'])){ // Sinon, si on a posté quelquechose...
    	login_bdd(); // Connexion à la BDD
     
    	// On traite les chaines pour plus de sureté
    	$mbr_pseudo = mysql_real_escape_string(htmlspecialchars($_POST['Editbox1']));
    	$mbr_mdp = mysql_real_escape_string(htmlspecialchars($_POST['Editbox2']));
     
    	$result = mysql_query("SELECT id, mdp FROM membres WHERE pseudo = '$mbr_pseudo'");
     
    	mysql_close($mysql); // Déconnexion de la BDD
     
    	if(md5($mbr_mdp) == $result['mdp']){ // Si le mot de passe est le bon on continue
    		$_SESSION['membre_id'] = $result['id']; // On enregistre l'id du membre dans la session
     
    		show_top_one(); // Affiche la partie principale de la page (1/2)
    		if(isset($_SESSION['membre_id'])){ // Si le membre est connecté...
    			show_buttons_on(); // ... on affiche le bouton "Déconnexion".
    		} else{ // Sinon...
    			show_buttons_off(); /// ... on affiche les boutons "S'enregistrer" et "Connexion".
    		}
    		show_top_two(); // Affiche la partie principale de la page (2/2)
     
    		if(isset($_GET['menu'])){ // Si un clic à été fait sur un bouton
    			if(is_numeric($_GET['menu'])){ // SÉCURITÉ - Vérifie si c'est vraiment un nombre
    				$x_menu = $_GET['menu'];
     
    				if(isset($_SESSION['membre_id'])){ // Si le membre est connecté...
    					show_menu_on($x_menu); // ... on affiche le menu avec la section membre.
    				} else{ // Sinon...
    					show_menu_off($x_menu); /// ... on affiche le menu sans la section membre.
    				}
    			} else{
    				header('Location: '.$page.'.php');
    			}
    		} else{ // Sinon, il n'y a donc pas de clic...
    			if(isset($_SESSION['membre_id'])){ // Si le membre est connecté...
    				show_menu_on(); // ... on affiche le menu avec la section membre.
    			} else{ // Sinon...
    				show_menu_off(); /// ... on affiche le menu sans la section membre.
    			}
    		}
     
    		// Affichage d'un message de réussite
    		show_title();
    		echo '
    			Vous êtes bien connecté. Vous serez bientôt redirigé vers la page d\'accueil du site.</b></font></div>
    		';
     
    		show_bottom(); // Fermeture des balises principales
     
    		sleep(4); // Attente
    		header('Location: index.php'); // Redirection vers l'index
    	}
    } else{ // Sinon...
    	header('Location: connexion.php'); // ... on renvoie à la page de connexion.
    }
    J'ai vraiment besoin de votre aide car là je sèche!

    Merci d'avance!
    Zaklinadlo.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et si tu enleves enctype="text/plain" ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    essaye déja un var_dump ou print_r de $_POST ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour.
    Alors j'ai tenté vos deux solutions, voici ce que ça donne.

    1) En enlevant enctype="text/plain" , j'arrive tout simplement sur une page blanche.

    2) En faisant var_dump($_POST); , j'obtiens ce résultat:
    array(0) { }
    Quelqu'un aurait une idée?
    Encore merci...

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Enleve le text/plain et fais pointer ton formulaire vers une page ou tu mets juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    print_r($_POST);
    ?>

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Je ne pense pas que le problème vient du fait que tu ne fermes pas les balises input mais corriges les.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="abc" value="abcdefghijklmnopqrstuvwxyz" />

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Re-bonjour...

    Le résultat du code de sabotage est:
    Array ( [abc] => abcdefghijklmnopqrstuvwxyz [Editbox1] => pseudo [Editbox2] => password [btnConnexion] => Connexion )
    En laissant le enctype le Array reste vide, mais en l'enlevant j'obtiens cela. Ceci dit, même en l'enlevant et en pointant sur ma page, j'arrive sur une page blanche.

    Effectivement, andry.aime , le problème ne venait pas de là, mais merci pour le conseil.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A toi de voir ce qui bloque dans ta page de reception du formulaire : tu peux placer des echo 'etape 1'; echo 'etape 2'; etc. pour suivre le deroulement de ton script.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour le conseil des echo''; !

    J'ai trouvé ce qui ne va pas: le mot de passe n'est jamais le bon (la condition est toujours fausse).

    Est-ce que ma requête est bonne?
    $result = mysql_query("SELECT id, mdp FROM membres WHERE pseudo = '$mbr_pseudo'");
    Merci (ça devrait être ma dernière question (enfin j'espère... ))!

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as oublié l'étape mysql_fetch

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    tu n'aurais pas un souci d'interpétation de variable dasnb ton string ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result = mysql_query("SELECT id, mdp FROM membres WHERE pseudo = '".$mbr_pseudo."'");

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour le mysql_fetch !
    J'avais lu quelque part qu'il n'était pas obligatoire lorsqu'on récupérait les données d'une seule entrée...

    Problème résolu!
    Merci à tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Formulaire (PHP-AJAX) rien ne s'envoie
    Par Guillaume 134679 dans le forum AJAX
    Réponses: 0
    Dernier message: 07/10/2014, 10h01
  2. [AC-2007] Afficher PDF dans formulaire, ok mais rien quand trop de pages ?
    Par nicburger dans le forum IHM
    Réponses: 2
    Dernier message: 04/01/2011, 17h43
  3. Formulaire n'envoi rien
    Par azhare dans le forum Langage
    Réponses: 13
    Dernier message: 26/11/2009, 20h19
  4. Réponses: 2
    Dernier message: 02/08/2009, 10h52
  5. Réponses: 7
    Dernier message: 20/06/2008, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo