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 :

un case qui ne prend pas les accents


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut un case qui ne prend pas les accents
    Bonjour,

    Pour une identification, j'utilise un formulaire qui renvoie ses données vers un code d'identification.
    Or, il y a un problème avec les accents.
    index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php session_start(); // On démarre la session AVANT toute chose ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>test3/index.php</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <link rel="stylesheet" type="text/css" href="styles/style.css" />
        </head>
        <body>
    		<?php include("includes/head.php");?>
    		<?php include("includes/form.php")?>
        </body>
    </html>
    form.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
    echo '<div id="corpsdiv" class="tb">
    	<form method="post" action="includes/identification.php" class="tb">
    		<div id="divleft">
    			<p>Identifiant : </p> 
    		</div>
    		<div id="divright">
    			<input type="text" name="pseudo" value="identifiant" /><br/><br/>
    			<input type="password" name="pass" /><br/><br/>
    			<input type="submit" value="Valider" />
    		</div>
    	</form>
    	</div>'
    ?>
    identification.php :
    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
    <?php
    session_start();
    if (isset($_POST['pseudo']) AND (isset($_POST["pass"]))){
    	switch ($_POST['pseudo']){
    		case "identifiant":
    			if ($_POST["pass"] = "mdp"){
    				$_SESSION['pseudo'] = $_POST['pseudo'];
    				header ('location:../acceuil.php');
    			exit();
    			};
    		case "valérie":
    			if ($_POST["pass"] = "pwd"){
    				$_SESSION['pseudo'] = $_POST['pseudo'];
    				header ('location:../acceuil.php');
    			exit();
    			};
    		default:
    			header ('location:../index.php');
    			exit();
    	}
    }
    ?>
    Donc c'est pour le case "valérie" que ça coince ou je ne sais pas !

    Merci de bien vouloir m'aider !!!

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Déjà pour ton form.php tu as oublié un ; à la fin du echo.
    Ensuite pour l'identification.php Opérateurs de comparaison!

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Déjà pour ton form.php tu as oublié un ; à la fin du echo.
    En revanche, ils sont en trop après les if !

    Passez à l'UTF-8 sans manquer une étape

    Sinon, pourquoi utiliser un doctype xhtml strict de nos jours ?
    Un doctype HTML5 est tellement plus pratique et adapté.
    De même, l'utilité d'une balise <p> dans une balise <div> me laisse perplexe.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour,

    Merci beaucoup pour vos conseils !!!

    En ce qui concerne les ';' oubliés, sachez que mon code fonctionne sans ces ponctuations ! je les ai ajoutées et le code fonctionne aussi ....

    En ce qui concerne la balise <p> dans un <div> :
    le <div> étant des blocks, il m'est plus facile pour les disposer à 50% à droite et 50% à gauche.
    le <p> étant une balise plutôt réservée au texte, je l'utilise dans un block qui me sert à canaliser mon texte.
    --> je me trompe peut-être (merci de me le faire remarquer dans ce cas) mais c'est une habitude que j'ai prise et qui me convient bien pour pas foutre le bordel avec les CSS ...

    En ce qui concerne le tuto ... j'y cours tout de sutie !

    Je rapporterai ma réponse à la suite

    Merci,

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour,

    Je viens de résoudre mon problème.

    En fait, le fichier identification.php est un fichier qui n'affiche rien et dans lequel je n'ai donc pas mis de doctype ou de balises html.
    Ainsi, les caractères en utf-8 n'étaient pas passés.

    J'ai donc précisé au serveur que je souhaitais des caractères en utf-8.

    J'ai rajouté cette ligne : 'header( 'content-type: text/html; charset=utf-8' );'
    ce qui donne ceci :
    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
    <?php
    session_start();
    header( 'content-type: text/html; charset=utf-8' );
     
    	if (isset($_POST['pseudo']) AND (isset($_POST["pass"])))
    	{
    		$str = strtolower($_POST['pseudo']);
    		switch ($str)
    		{
    		case "identifiant":
    			if ($_POST["pass"] = "mdp")
    			{
    				$_SESSION['pseudo'] = $_POST['pseudo'];
    				header ('location:../acceuil.php');
    				exit();
    			}
    		case "valérie":
    			if ($_POST["pass"] = "pwd")
    			{
    				$_SESSION['pseudo'] = $_POST['pseudo'];
    				header ('location:../acceuil.php');
    				exit();
    			}
    		default:
    			header ('location:../index.php');
    			exit();
    		}
    	}
    ?>
    Merci beaucoup pour vos aides

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'content-type: text/html; charset=utf-8' );


    En ce qui concerne les ';' oubliés, sachez que mon code fonctionne sans ces ponctuations !
    Oui, on peut l'omettre pour la dernière instruction, mais c'est très vivement déconseillé.

    le <div> étant des blocks, il m'est plus facile pour les disposer à 50% à droite et 50% à gauche.
    Oui, c'est pas faux, mais c'est loin d'être le seul élément de type block.
    le <p> étant une balise plutôt réservée au texte, je l'utilise dans un block qui me sert à canaliser mon texte.
    Le <p> est précisément une des autres balises de type block (un peu spécifique tout de même), dans le code que tu montres, elle devient donc redondante avec la div.

  7. #7
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Par contre tu n'as pas du bien lire le tutoriel...
    Tu utilise des opérateurs d'affectation au lieu d'opérateurs de comparaisons.

    Affectations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST["pass"] = "mdp")
    Comparaisons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST["pass"] == "mdp")

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

Discussions similaires

  1. [XL-2010] Somme qui ne prend pas les colonnes masqués
    Par RodKAZ dans le forum Excel
    Réponses: 1
    Dernier message: 05/03/2013, 15h27
  2. Réponses: 0
    Dernier message: 01/02/2011, 19h45
  3. innerHTML qui ne gère pas les accents (à, é,è..)
    Par beegees dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/04/2009, 22h21
  4. [MySQL] Champs photo qui ne prends pas les espaces
    Par bullrot dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 21/10/2008, 15h19
  5. [RegEx] ereg qui ne trouve pas les accents
    Par Sephiroth Lune dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2007, 18h05

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