Php et sqlsrv

Résolu
pilus25 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
pilus25 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
Je me demande où se termine
if(isset($_POST['enregistrer'])){
, où se trouve le
}
0
Pilus25
 
Après <\table>
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
Peut-être ajouter
var_dump $_POST;
avant
if(isset($_POST['enregistrer'])){ 
0
pilus25 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
erreur -> array(0){}
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
<!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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
plutôt
echo "<br>_post: ".var_dump ($_POST)."<br>";
0
pilus25 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu as regardé la documentation du
prepare 
et du
execute
?
0
pilus25 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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