Php et sqlsrv

Résolu/Fermé
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016 - Modifié par baladur13 le 27/12/2016 à 23:32
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016 - 30 déc. 2016 à 13:56
Bonsoir,

je suis debutante en php et sqlsrv j'utilise le serveur IIS je ne fais que mettre tout ce qui me passe par la tete pour pourvoir reussir. j'ai fait la connexion avec ma base mais je n'arrive pas a inserer jfais pas mal de recherche mais je ne trouve rien. au commencement ca me retournait des erreurs que je corrigeait mais la maintenant je ne sais pa quoi faire puisq'il ne retourne pas d'erreur mais une page blanche je ne sais pas quoi corrige. je vous prie g besoin de votre aide, je consulte google depuis 3 jours et rien.

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
<?php
$server= "Sandra-PC\SQLEXPRESS";
$options= array("UID" => "sa", "PWD" =>"sandrads12", "Database" => "G_materiels");
$conn= sqlsrv_connect($server, $options);
if ($conn ===false)
{
    echo"peux pas connecter";
   die( print_r(sqlsrv_errors(), true));

} 



if(isset($_POST['enregistrer'])){
    $nom= $_POST['nom'];
    $prenom= $_POST['prenom'];
    $username= $_POST['username'];
    $password= $_POST['password'];
    $type_admin= $_POST['type_admin'];




$sql= "INSERT INTO administrateur (nom, prenom, username, password, type_admin) VALUES (:nom, :prenom, :username, :password, :type_admin)";
$sql->sqlsrv_execute(array( 
 'nom' =>$nom, 
 'prenom' =>$prenom, 
 'username' =>$username, 
 'password' =>$password, 
 'type_admin' =>$type_admin
  ));

$stmt=sqlsrv_prepare($conn, $sql);
if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
}

?>

<table border="1" >

<tr>
         <td>Nom</td>
            <td><?php echo ($nom)  ?></td>

</tr>

<tr>
         <td>Prenom</td>
            <td><?php echo ($prenom)   ?></td>

</tr>

<tr>
         <td>Identifiant</td>
            <td><?php echo ($username)   ?></td>

</tr>

<tr>
         <td>Mot de passe</td>
            <td><?php echo ($password)   ?></td>

</tr>

<tr>
         <td>Type Administrateur</td>
            <td><?php echo ($type_admin)   ?></td>

</tr>

</table>

<?php }  //fin if?>


<a href="affichage.php" rel="nofollow noopener noreferrer" target="_blank"> Afficher les utilisateurs </a>


</body>
</html>

je ne sais pas quoi faire.
A voir également:

6 réponses

yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 550
27 déc. 2016 à 22:31
Je me demande où se termine
if(isset($_POST['enregistrer'])){
, où se trouve le
}
0
Après <\table>
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 550
27 déc. 2016 à 23:08
Peut-être ajouter
var_dump $_POST;
avant
if(isset($_POST['enregistrer'])){ 
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016
28 déc. 2016 à 02:01
erreur -> array(0){}
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
28 déc. 2016 à 09:07
Tu peux montrer le code de la page précédente, celle qui permet d'entrer les informations?
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016 > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
Modifié par baladur13 le 28/12/2016 à 10:16
<!DOCTYPE html>
<html>
<head>
 <title></title>
 <link rel="stylesheet" type="text/css" href="form.css">
</head>
<body>

<div id="header">
                <div id="tete">


</div>
        </div>



<form method="POST" action=" ajouter.php">
<a id="top">
  <fieldset>
<table>


<tr>

<td>Nom : </td>
<td><input type="text" name="nom"></td>

</tr>


<tr>

<td>Prenom : </td>
<td><input type="text" name="prenom"></td>

</tr>


<tr>

<td>Identifiant : </td>
<td><input type="text" name="username"></td>

</tr>


<tr>

<td>Mot de passe : </td>
<td><input type="password" name="password"></td>

</tr>


<tr>

<td>Type Administrateur: </td>
<td><input type="text" name="type_admin"></td>

</tr>


<tr>

<td> </td>
<td><input type="submit" value="Enregistrer"  name="enregistrer"></td>

</tr>

</table>

</a>
</fieldset>
</form>

</body>
</html>


voila
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
28 déc. 2016 à 12:09
plutôt
echo "<br>_post: ".var_dump ($_POST)."<br>";
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016
28 déc. 2016 à 17:17
encore la meme erreur.

quand j'entre des informations dans la premiere page, elle affiche ces lignes:

array(6) { ["nom"]=> string(4) "DC" ["prenom"]=> string(6) "Dod" ["username"]=> string(7) "jdod" ["password"]=> string(7) "jdod" ["type_admin"]=> string(6) "simple" ["enregistrer"]=> string(11) "Enregistrer" }
_post:

quand jfais un select dans la base g mes resultats tel kel.
mais l'insertion ne marche pas.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
28 déc. 2016 à 17:50
Je me demande si tu ne confonds pas execute et prepare: en général, on fait un prepare et puis un execute.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016
28 déc. 2016 à 18:01
c'est ce que jsuis en train de tester.
ouf ca me donne la grosse tete.
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016
29 déc. 2016 à 15:33
bonjour,
je ne sais plus quoi faire maintenant.

quand j'insere directement avec un script ca marche.
mais ca ne fonctionne pas avec le formulaire et je c pas pourquoi.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
29 déc. 2016 à 17:41
tu as regardé la documentation du
prepare 
et du
execute
?
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016 > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
Modifié par pilus25 le 29/12/2016 à 20:32
oui,
je faisais un test tout a l'heure avec;


if( isset($_POST['enregistrer']) && isset ($_POST['nom']) && isset ($_POST['prenom']) && isset ($_POST['username']) && isset ($_POST['Motd_passe']) && isset ($_POST['type_admin'])){
$nom= $_POST['nom'];
$prenom= $_POST['prenom'];
$username= $_POST['username'];
$Motd_passe= $_POST['Motd_passe'];
$type_admin= $_POST['type_admin'];


echo $_POST['nom'];
ca marchait mais quand j'ajoute la requete sql et autres bah ca ne marche plus je pense que c'est la mon prob mais c pas quoi faire.
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
29 déc. 2016 à 20:53
Peut-être ainsi?
$sql= "INSERT INTO administrateur (nom, prenom, username, password, type_admin) VALUES (?, ?, ?, ?, ?)";

$params = array($nom,$prenom, $username,$password,$type_admin);

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
0
pilus25 Messages postés 8 Date d'inscription mardi 27 décembre 2016 Statut Membre Dernière intervention 30 décembre 2016 > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
30 déc. 2016 à 13:56
Bonjour

OUF enfin ça fonctionne.
Avant y’avait un p’tit probe pendant que je faisais des tests pour l'insertion directe j'avais mis comme code:
$sql1="SET IDENTITY_INSERT dbo.administrateur ON";
$ss = sqlsrv_query( $conn, $sql1);

if( $ss== false ) {
die( print_r( sqlsrv_errors(), true));

Quand j'ai mis ton code y'avait un probe d'identité alors j'ai mis OFF a la place de ON et boum ça marche convenablement bon je l'ai enlevé de toute manière, mais l'ancien code ne fonctionne pas quoiqu'il en soit. Pourquoi?? D 'après vous.


je vous en remercie sincèrement pour votre patience .
0