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

EDI, CMS, Outils, Scripts et API PHP Discussion :

l'authentification ne fonctionne plus [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #21
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Merci pour ton aide Jérôme. Par contre, je n'arrive pas à aller bien loin :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ( ! $auth ){
    	header( 'WWW-Authenticate: Basic realm="EIS SUPPORT WEBSITE"' );
    	header("HTTP/1.1 401 Unauthorized");
    	echo "Accès Restreint...<br/>";
    	echo "<a href=\"indexpage.php\">Authentification</a>";
    }
    else
    ...

    authenticate.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function authentification(){
    	// 1/ récupération des données
    	$entered_user = (isset($_SERVER["PHP_AUTH_USER"]))? $_SERVER["PHP_AUTH_USER"] : '';	
    	$entered_pass = (isset($_SERVER["PHP_AUTH_PW"]))? $_SERVER["PHP_AUTH_PW"] : '';
    	if(  !empty($entered_user) && !empty($entered_pass) ){
    		// 2/ vérification de la présence en BdD
    		$sql = "SELECT user FROM users WHERE user = :user;";
    		$qid = $bdd->prepare($sql);                       // ligne 23
    		$qid->bind_param( ':user', $entered_user);
    		$qid->execute();
    		$rowAll = $qid->fetchAll(PDO::FETCH_ASSOC); // on obtient un array()
    ...

    dans le fichier principal (indexpage.php) :
    global $bdd;

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    include dirname(__DIR__)."\pdo\connect_mysql.php";
    ...
    include dirname(__DIR__)."\pdo\authenticate.php";
    $auth=authentification();

    connect_mysql.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    include_once (dirname(__DIR__).'\pdo\new\MyPdo.php');
    header('Content-type: text/html; charset=UTF-8');
    //// connexion
    try{
    	$bdd = new MyPdo();
    }
    catch(PDOException $e){
    	echo "argggggggggggggg".$e->getMessage();
    	return(FALSE);
    }		
    ?>

    MyPdo.php :
    Code php : 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
    <?php
    error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE);
    ini_set('display_errors','1'); 
    // MyPDO
     // ls : la classe MyPdo hérite de la classe PDO (extends)
    class MyPdo extends PDO {
    	static public $DB_NAME = "su_dev_eis"; 
    	static public $HOST = "localhost";
    	static public $USER = $_SERVER["PHP_AUTH_USER"];
    	static public $PASS =$_SERVER["PHP_AUTH_PW"];
    	//static public $USER ="root";
    	//static public $PASS ="root";
    // ls : le constructeur de MyPdo appelle le constructeur de PDO en lui passant ses paramètres	
    	function __construct() {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;//important sur les configs récentes
    	$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;//pour le mode objet
    	$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";//pour l'utf-8
    	parent::__construct('mysql:host=' . MyPdo::$HOST . ';dbname=' . MyPdo::$DB_NAME, MyPdo::$USER,MyPdo::$PASS, $pdo_options);
    //MyPdo::$USER
    }
     
    }
    // fin MyPDO
    ?>
    affiche :
    Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\devjupiter_serveur291214\pdo\authenticate.php on line 23
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #22
    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 : 53
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Et à quel moment tu définis $bdd dans ta fonction ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #23
    Invité
    Invité(e)
    Par défaut
    Oups !
    Tellement de bla bla que j'en oublie le but du topic :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function authentification(){
    	// 0/ C'est JUSTEMENT ICI qu'on met :
    	global $bdd;
     
    	// 1/ récupération des données
    	.....
    Encore faut-il :
    • avoir défini $bdd au début du fichier principal (= inclure connect_mysql.php)
    • et que les fonction soient appelées après.

  4. #24
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Je viens seulement de voir vos réponses ; à mon avis, ce que j'ai fait respecte vos remarques :

    code principal (indexpage.php) :

    Code php : 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
    <?php
    session_start();
    error_reporting(E_ALL ^ (E_NOTICE|E_WARNING|E_DEPRECATED));
    // déclaration variable $bdd en global
    global $bdd;
    header('Content-type: text/html; charset=UTF-8');
     
    $id=$_GET['id'];
    include (dirname(__DIR__).'\pdo\config\config.php');
     
    //inclusion du fichier de connexion
    include dirname(__DIR__)."\pdo\connect_mysql.php";
     
     
    include dirname(__DIR__)."\pdo\authenticate.php";
    $auth=authentification();
    ...
    Le include de connect_mysql.php fait que la variable $bdd est bien définie avant l'appel à la fonction authentification() et celle-ci est bien déclarée en global dans indexpage.php et dans authenticate.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    include (dirname(__DIR__).'/pdo/config/config.php');
     
    function authentification()
    {
    global $bdd;
    ...
    return $auth;
    }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #25
    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
    global se met dans une fonction, sinon ça ne sert à rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #26
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    OK, déclarer $bdd global sans indexpage.php ne sert à rien mais n'explique pas que ça ne marche pas...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #27
    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
    Si tu es en seulement au constat "ne marche pas", ça signifie que tu n'as rien debugué.
    Donc il faut que tu debugues.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #28
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    C'est bien mon but ; et mon idée (pour demain!) est de faire une page qui fait uniquement une authentification, puis quand elle sera au point, de l'enrichir progressivement...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #29
    Invité
    Invité(e)
    Par défaut
    1/ As-tu remarqué que tu inclus 2 fois le fichier config.php ?

    2/ a quoi sert : $id=$_GET['id']; ??

  10. #30
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Merci de tes remarques : en fait, les 2 ne servent à rien mais les enlever ne change rien ; le config.php ne contient que des définitions de constante, et le id, je le récupère autrement :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    $page =(isset($_GET['page'])) ? $_GET['page']:"";
    puis
     $args = explode("--",$page,10);
     $page=$args[0];
     $id =(isset($args[1])) ? $args[1]:"";
     $lt =(isset($args[2])) ? $args[2]:"";
     $filtre =(isset($args[3])) ? $args[3]:"";
     $argsn4 =(isset($args[4])) ? $args[4]:"";
     ?>

    Pour réaliser une authentification basique, l'exemple de la doc convient...je continue.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #31
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    ...en fait, les 2 ne servent à rien mais les enlever ne change rien ;
    C'est à se demander pourquoi on perd encore notre temps à te répondre...
    "ça ne marche pas", "ça ne sert à rien", "ça ne change rien",...

    Tiens ! Je m'en vais pisser dans un violon !
    Ca aura peut-être plus d'effet ?

  12. #32
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Tiens ! Je m'en vais pisser dans un violon !
    Ca aura peut-être plus d'effet ?
    Ne crois pas ça, car même si je fais beaucoup d'erreurs d'inattention, j'ai aussi beaucoup profité de tes conseils (ainsi que d'autres) (donc, là, tu ne perdais pas ton temps).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #33
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    J'ai mis au point une page d'authentification, avec pour validation une lecture de la bdd ; comme j'ai du un peu modifier le code de jreaux62 pour que ça marche, voici le code :

    auth.php

    Code php : 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
    <?php session_start(); ?>
    <a href="annul_auth.php">Annuler authent</a><br/>
    <?php
    //inclusion du fichier de connexion
    include (dirname(__DIR__).'\pdo\connect_mysql.php');
    global $bdd;
     
    include (__DIR__)."\authenticate.php";
    $auth=authentification();
     
    if (!isset($_SERVER['PHP_AUTH_USER'])||$_SESSION["annul"]==1) {
        $_SESSION["annul"]=0;
        header('WWW-Authenticate: Basic realm="My Realm"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
        exit;
    } 
     
    ?>

    annul_auth.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    $_SESSION["annul"]=1;
    header('Location:auth.php');
    exit;
    ?>

    authenticate.php

    Code php : 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
    <?php
     
     
    function authentification()
    {
            global $bdd;
     
    	// 1/ récupération des données
    	$entered_user = (isset($_SERVER["PHP_AUTH_USER"]))? $_SERVER["PHP_AUTH_USER"] : '';	
    	$entered_pass = (isset($_SERVER["PHP_AUTH_PW"]))? $_SERVER["PHP_AUTH_PW"] : '';
     
    	$_SESSION['user'] = '';
    	$auth = false;
    	$msg="";
     
    	if(  !empty($entered_user) && !empty($entered_pass) )
    	{
    		// 2/ vérification de la présence en BdD
    		$sql = "SELECT user,password FROM users WHERE user = :user;";
    		$qid = $bdd->prepare($sql);
    		$qid->bindparam( ':user', $entered_user);
    		$qid->execute();
     
    		$rowAll = $qid->fetchAll(PDO::FETCH_OBJ); // on obtient un array()	
     
    		$nbre_result = count($rowAll[0]); // on compte le nombre de ligne
     
    		if( $nbre_result == 1 ) // on a bien un seul résultat
    		{
     
    			// 3/ vérification du mot de passe
    			if( $entered_pass == $rowAll[0]->password ) // c'est le bon mot de passe
    			{
    				 $auth = true;
    				 $msg="OK<br/>";
    				 $_SESSION['user'] = $entered_user;
    			}
    			else $msg= "pas OK<br/>";
    		}
    		else $msg= "utilisateur inconnu<br/>";
     
     
    	}
    	else $msg="un champ est vide<br/>";
     
    	echo $msg;
     
    	return $auth;
    }
     
    ?>

    La page annul_auth.php sert à effacer l'authentification pour avoir la possibilité de faire un nouvel essai.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #34
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,
    1/
    auth.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php session_start(); ?>
    <a href="annul_auth.php">Annuler authent</a><br/>
    <?php
    //inclusion du fichier de connexion
    include (dirname(__DIR__).'\pdo\connect_mysql.php');
    global $bdd;
    ...
    Comment peut-on te faire comprendre une bonne fois pour toutes que global $bdd; n'a rien à faire là ?

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function authentification()
    {
            global $bdd; // BRAVO ! C'est bien ICI qu'il faut le mettre !!
     
    ...
    }
    ?>
    BRAVO ! C'est bien ICI qu'il faut le mettre !!
    Dernière modification par Invité ; 29/03/2015 à 18h05.

  15. #35
    Invité
    Invité(e)
    Par défaut
    (N.B. je mets un message différent, pour t'éviter de tout confondre ou d'en oublier)

    1/
    auth.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    <a href="annul_auth.php">Annuler authent</a><br/>
    ...
     
    ...
        ...
        header('WWW-Authenticate: Basic realm="My Realm"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
        ...
    ...
    ?>
    Tu fais un affichage HTML (<a ...>...</a>), et ENSUITE des header(...) ???
    Que dit le manuel PHP à ce propos ??

    + Même remarque pour le echo ...; :
    Ca s'affiche ?
    La 1ère balise <html> n'a pas encore été écrite !

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function authentification()
    {
    ...
    	echo $msg;
     
    	return $auth;
    }
    ?>
    D'après toi, echo $msg; va afficher le message dans le code HTML généré ?
    N'y aurait-il pas là une erreur de conception ??

    Question subsidiaire :
    que faudrait-il faire/modifier pour que la fonction puisse RETOURNER $msg en même temps que $auth ?
    (indice : une fonction peut aussi retourner un array() ).

    AUTRE SOLUTION (plus simple et sans prise de tête) :
    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
    <?php
    function authentification()
    {
    	global $bdd;
     
    	// 1/ récupération des données
    	$entered_user = (isset($_SERVER["PHP_AUTH_USER"]))? $_SERVER["PHP_AUTH_USER"] : '';	
    	$entered_pass = (isset($_SERVER["PHP_AUTH_PW"]))? $_SERVER["PHP_AUTH_PW"] : '';
     
    	$_SESSION['user'] = '';
    	$auth = false;
     
    	if(  !empty($entered_user) && !empty($entered_pass) )
    	{
    		// 2/ vérification de la présence en BdD
    		$sql = "SELECT user,password FROM users WHERE user = :user;";
    		$qid = $bdd->prepare($sql);
    		$qid->bindparam( ':user', $entered_user);
    		$qid->execute();
     
    		$rowAll = $qid->fetchAll(PDO::FETCH_OBJ); // on obtient un array()	
    		$nbre_result = count($rowAll[0]); // on compte le nombre de ligne
     
    		if( $nbre_result == 1 ) // on a bien un seul résultat
    		{
    			// 3/ vérification du mot de passe
    			if( $entered_pass == $rowAll[0]->password ) // c'est le bon mot de passe
    			{
    				 $auth = true;
    				 $_SESSION['user'] = $entered_user;
    			}
    		} 
    	}
    	return $auth;
    }
    ?>
    Et dans le fichier principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $auth = authentification();
    $msg = ($auth)? 'authentification OK !' : 'authentification pas OK';
    Dernière modification par Invité ; 29/03/2015 à 18h20.

  16. #36
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    je te remercie pour tes 3 interventions plus constructives que de pisser dans un violon ; comme je me lève à 5h45 (heure d'été !), je ne prendrai le temps d'y regarder que demain.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #37
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 364
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    J'ai enfin jeté un oeil (y a déjà un moment, mais je ne sais pas comment ; j'ai perdu mon début de réponse ) :

    - mauvais emplacement de global $bdd : encore une erreur d'inattention

    - affichage avant les headers ; je savais qu'il ne faut pas mais encore une erreur d'inattention

    Citation Envoyé par jreaux62 Voir le message

    + Même remarque pour le echo ...; :
    Ca s'affiche ?
    La 1ère balise <html> n'a pas encore été écrite !
    que veux-tu dire ?

    Citation Envoyé par jreaux62 Voir le message
    N'y aurait-il pas là une erreur de conception ??
    ...

    AUTRE SOLUTION (plus simple et sans prise de tête) :
    oui, il y a bien une erreur que je n'avais pas vue car dans le petit exemple que j'avais fait, ça marchait bien mais pas si j'insère ça dans mon application complète (je vais chercher pourquoi) ; en tous cas, la solution non prise de tête est super !
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/03/2017, 07h18
  2. Réponses: 0
    Dernier message: 02/08/2007, 14h20
  3. [PHPMailer] Mails sans authentification ne fonctionnent plus
    Par matpal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/05/2006, 16h47
  4. mes requetes sous access ne fonctionnent plus
    Par trialrofr dans le forum ASP
    Réponses: 12
    Dernier message: 04/12/2004, 21h52
  5. [JSP][Tomcat]Changement de context -> JSP fonctionne plus
    Par mathieu dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/03/2004, 08h01

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