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 :

Connexion SQL server à partir d'un formulaire php


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Connexion SQL server à partir d'un formulaire php
    Bonjour,

    Je suis novice en php. Je cherche à me connecter à une base de données sql server 2014 à partir d'un formulaire mais je n'arrive.

    Voici mon code:

    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
     
    <html>
        <head><title>Formulaire de connexion à LINA </title></head>
        <body>
            <h1>Renseigner les codes d'acces</h1>
            <h2>Entrez les donnees demandees :</h2>
            <form method="POST">
    			<fieldset><legend>Server : </legend><input type="text" name="server"/></fieldset>
    			<fieldset><legend>Login : </legend><input type="text" name="login"/></fieldset>
    			<fieldset><legend>Mot de passe : </legend><input type="password" name="password"/></fieldset>
    			<input type="submit" name="submit" value="Se connecter"/>
    		</form> 
    <?php
     
        $server = $_POST ['server'];
        $login = $_POST ['login'];
        $password = $_POST ['password'];
    	$server_def = "localhost\SQL2014";
        $login_def = "sa";
        $password_def = "Imap0910";
        $myDB = 'LINA';
    	$connection_info = array ($myDB, $login_def, $password_def);
    	if(isset($_POST ['submit'])) 
    	{
    		if(!empty($_POST['server']) && !empty($_POST['login']) && !empty($_POST['password']))
        	{
    			if (($server==$server_def) && ($login==$login_def) && ($password==$password_def)) 
        	    {
        	    $connect = sqlsrv_connect($server_def, $connection_info);
    				if ($connect)
    				{
    				echo "connexion réussie";  
    				}
     
    			} 
     
        	}  echo "Tous les champs sont obligatoire obligatoire";
     
     
     
    	} echo "renseigner les champs";
     
    ?>
    	</body>
    </html>


    Je ne sais où est l'erreur.

    Pouvez-vous m'aider à trouver l' ou les erreurs svp ?

  2. #2
    Invité
    Invité(e)
    Bonjour,

    Quand j'ai ouvert ton code dans FF, j'ai les messages d'erreurs suivants :

    ( ! ) Notice: Undefined index: server in C:\wamp\www\2.php on line 15
    Call Stack
    #	Time	Memory	Function	Location
    1	0.1008	391744	{main}( )	...\2.php:0
    
    ( ! ) Notice: Undefined index: login in C:\wamp\www\2.php on line 16
    Call Stack
    #	Time	Memory	Function	Location
    1	0.1008	391744	{main}( )	...\2.php:0
    
    ( ! ) Notice: Undefined index: password in C:\wamp\www\2.php on line 17
    Call Stack
    #	Time	Memory	Function	Location
    1	0.1008	391744	{main}( )	...\2.php:0
    De plus, je te conseille de placer ta partie PHP au début du code.

    Autre chose, dans tes variables ton $_POST doit être collé avec les crochets.

  3. #3
    Membre chevronné
    Bonjour,

    @kurosakiichigo, pour les notice c'est normal vu que le code essaye d'accéder à des variables $_POST qui n'existent pas au chargement de la page (elles existent seulement après soumission du formulaire).
    Et bien qu'il s'agisse d'un affiche d'erreur, celles-ci ne sont pas "bloquantes" et ne sont donc pas à l'origine du problème.
    Et non, il n'est pas obligatoire de coller les crochets dans les tableaux bien que ça soit conseillé pour des soucis de lisibilité.

    Pour en revenir au problème, le code n'est pas très propre mais la première chose à faire est de tester sans le formulaire.
    Ensuite, quand ça fonctionne, s'assurer qu'on envoie bel et bien les valeurs (qu'on a précédemment testés) pour la connexion.

    Enfin, je n'ai jamais utilisé la fonction sqlsrv_connect() mais d'après sa documentation, ce n'est pas comme ça qu'on écrit la variable $connectionInfo

    Citation Envoyé par PHP Manual
    $connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
    D'après la documentation, ta variable $connection_info doit comporter des clés afin que la fonction puisse utiliser les valeurs. Or dans ton code, tu ne fais qu'écrire des valeurs (leurs index étant donc numériques) :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    $connection_info = array($myDB, $login_def, $password_def); // Ce que tu as écrit
    $connection_info = array("Database" => $myDB, "UID" => $login_def, "PWD" => $password_def); // Ce qui semble plus correct d'après la doc

  4. #4
    Membre à l'essai
    En effet, je l'ai testé sans le formulaire. J'avais quelques erreurs mais je les ai rectifiée.

    @ darkstar123456: J'ai aussi corrigé $connectInfo selon ton commentaire et maintenant ça marche. Merci les gars