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

PHP & Base de données Discussion :

Variables serveur et login


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut Variables serveur et login
    Bonjour,

    Dans mon script ci-dessous qui fonctionne parfaitement, j'ai par curiosité fais des tests en modifiant volontairement la variable "$login" par un login erroné et à ma grande surprise mon script reste fonctionnel sans aucun problème pas de message d'erreur et ma requête DELETE a fait le job, idem si je modifie la variable "$serveur" ou mème le nom de ma table ici $bdd = new PDO('mysql:host=$serveur;dbname=visdom;charset=utf8', $login, $pass); ces 3 variables non aucun impact sur le script quelles soit erronées ou mème vide, pouvez-vous m'expliquer pourquoi ? svp.

    Mon script:
    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
    <?php
     
    	$serveur 	= "sql.free.fr";
    	$login 		= "mon_login";
    	$pass 		= "mon_mdp";
     
    	try
     
    	{
            $bdd = new PDO('mysql:host=$serveur;dbname=visdom;charset=utf8', $login, $pass);
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}
     
    	catch(Exception $e)
     
    	{
            die('Erreur : '.$e->getMessage());
    	}
     
    	$req = $bdd->prepare('DELETE FROM visdom WHERE nom_cl = :nom_cl AND prenom_cl = :prenom_cl');
     
            $req->bindValue('nom_cl',$_POST['nom_cl']);
            $req->bindValue('prenom_cl',$_POST['prenom_cl']);
     
     
     
    	if (!$req->execute()) 
     
    	{
    		echo 'Erreur';
    	} 
     
    	else 
     
    	{
    		echo "connexion_bdd=1";
    	}
     
    ?>

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Cortoh, une seule solution. Tu ne testes pas le script que tu crois tester lol... tu as regardé l'url ?

    Mets un echo 'toto'; en première ligne... si tu ne le vois pas... c'est que tu ne passes pas sur ce fichier...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut
    Salut Dendrite,

    Sur et certain tout est correct car si je modifie le mot de pass ça ne fonctionne plus donc j'utilise bien le bon php, alors vraiment incompréhensible !?

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    La miss Dendrite a raison, si même après avoir modifié la valeur de $serveur, le DELETE s'exécute c'est que tu n'exécutes pas le script que tu crois exécuter.
    Cherche tous les DELETE dans ton projet et regarde s'il n'y aurait pas un qui par hasard ferait le même boulot

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut
    Bonjour,

    Pour être sur je viens de refaire un essai avec un nouveau php comme test.

    1 - Je crée une dans ma base de données - nom et prénom -> Paul Martin
    2 - Je crée mon php avec le script ci-dessous que je dépose dans mon FTP
    3 - J'entre l'adresse de mon php dans mon navigateur et j'actualise ma page et j'obtiens bien mon message "Paul Martin a été supprimé de la base de données !"
    4 - Je jette un oeil dans ma base de données pour être sûr et effectivement Pau Martin à bien été supprimé

    Constat: pas besoin des variables $serveur et $login n'y du nom de la table dans new PDO(); il n'y a que le mot de pass qui est obligatoire car ça ne fonctionne pas si il est erroné ou absent, pouvez vous m'expliquer pourquoi ça fonctionne quand même sans ces variables qui apparemment semble indispensables, c'est déstabilisant quand on est débutant, merci à vous.

    Voici mon script:
    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
    <?php
     
    	$serveur = ""; 	// je laisse vide et ça fonctionne quand mème
    	$login = "";	// je laisse vide et ça fonctionne quand mème
    	$pass = "mdp"; // Mot de pass obligatoire sinon ça ne fonctionne pas 
     
    	try
     
    	{	
            $bdd = new PDO('mysql:host=$serveur;charset=utf8', $login, $pass); // ici j'ai supprimé "dbname=ma_bdd";et ça fonctionne quand mème.
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	}
     
    	catch(Exception $e)
     
    	{
            die('Erreur : '.$e->getMessage());
    	}
     
    	$req = $bdd->prepare('DELETE FROM visdom WHERE nom_cl = "Paul" AND prenom_cl = "Martin"');
     
     
    	if (!$req->execute()) 
     
    	{
    		echo 'Erreur';
    	} 
     
    	else 
     
    	{
    		echo "Paul Martin a été supprimé de la base de données !";
    	}
     
    ?>

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Il faut aller regarder du côté de la configuration du serveur chez ton hébergeur.

  7. #7
    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
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('mysql:host=$serveur;charset=utf8', $login, $pass);
    Les variables d'une chaîne limité de singles quote ' ne sont pas interprétées.
    Ensuite, il faut mettre ce genre de configuration dans un endroit unique, mais pas dans chaque script qui doit utiliser une connexion à la base.

    A+.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut
    Bonsoir andry.aime,

    Tout les tutos que j'ai regardés présentent la mème façon de faire, peut-tu me montrer un exemple pour mettre ce genre de configuration dans un endroit unique comme tu le suggère stp ?

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour centraliser la connexion à la base, tu peux regarder le mini-tuto : PDO une soupe et au lit ! .
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut
    Voilà c'est en place et c'est vraiment très pratique, une chose de plus apprise, merci à vous.

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

Discussions similaires

  1. character_set_results (variable serveur)
    Par Pigwi dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/03/2008, 15h59
  2. [Configuration] Configuration variables serveur / GET et POST
    Par christel1982 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/09/2007, 13h07
  3. Appel de classe en webform variables serveurs
    Par Richard MORRISSEY dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/06/2007, 22h53
  4. variables serveur et environnement
    Par Leonard Ledin dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2007, 10h13

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