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

Langage PHP Discussion :

[Système] Demande de test de script


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Points : 240
    Points
    240
    Par défaut [Système] Demande de test de script
    Bonjour à tous;
    J'ai fait un petit système pour ajouter ou enlever des données d'une base mysql.
    L'utilisateur commence par entrer par la page accueil.htm puis choisit d'afficher ce qu'il y a dans la base puis de supprimer ou ajouter des données.
    Tous les scripts présentent 0 erreur dans le débuggeur de Zend.
    Mais seul le script d'affichage marche lors des tests.
    Les scripts d'ajout et de suppression renvoient vers des blank et lorsque je vérifie dans php myadmin si les données sont rajoutées ou supprimées, je vois que l'exécution des scripts n'a rien donné. J'ai eu ce même problème pour d'autres scripts postés dans ce forum (authentification).
    Par ailleurs je n'arrive pas à retourner à la page d'accueil avec le lien lorsque j'appuie dessus.
    J'utilise wamp 1.7.1 dont apache et mysql sont fonctionnels, j'utilise zend studio 5.5 en mode débugger interne et le navigateur de test est firefox 2.
    Le dossier qui contient les scripts est dans le répertoire www de wamp.
    Le but de ce message est de voir si qq1 peut faire un test du programme chez lui pour voir si cela marche et par conséquent vérifier que le problème ne provient pas de mon code mais d'ailleurs.
    Pour ceux qui peuvent faire le test, merci beaucoup d'avance.
    Voici les codes:

    D'abord la table table_dessin de la base base_dessin à copier coller dans phpmyadmin.
    Code SQL : 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
     
    -- phpMyAdmin SQL Dump
    -- version 2.10.1
    -- http://www.phpmyadmin.net
    -- 
    -- Serveur: localhost
    -- Généré le : Lun 11 Juin 2007 à 14:09
    -- Version du serveur: 5.0.37
    -- Version de PHP: 5.2.2
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    -- 
    -- Base de données: `base_dessin`
    -- 
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `table_dessin`
    -- 
     
    CREATE TABLE `table_dessin` (
      `id_dessin` int(11) unsigned NOT NULL auto_increment,
      `titre` varchar(100) NOT NULL,
      `auteur` varchar(100) NOT NULL,
      `editeur` varchar(100) NOT NULL,
      `collection` varchar(50) NOT NULL,
      PRIMARY KEY  (`id_dessin`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
     
    -- 
    -- Contenu de la table `table_dessin`
    -- 
     
    INSERT INTO `table_dessin` (`id_dessin`, `titre`, `auteur`, `editeur`, `collection`) VALUES 
    (1, 'pays_qa', 'van_hamme', 'lombard', 'thorgal');

    Index.htm
    Code HTML : 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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
     
    <body>
    <p align="center"><strong>Bienvenue dans votre espace de gestion des b.d.</strong></p>
    <p>&nbsp;</p>
    <div align="center">
      <table width="668" border="1">
        <tr>
          <td><div align="center"><strong>Vous voulez voir le contenu de la base? </strong></div></td>
          <td> <div align="center">
            <form id="form1" name="form1" method="post" action="afficher.php">
              <label>
                <input type="submit" name="afficher" value="Afficher" />
                </label>
            </form>
            </div></td>
        </tr>
        <tr>
          <td><div align="center"><strong>Vous voulez ajouter de nouvelles bandes dessinées?</strong></div></td>
          <td><div align="center">
            <form id="form2" name="form2" method="post" action="ajouter.php">
              <label>
                <input type="submit" name="ajouter" value="Ajouter" />
                </label>
            </form>
     
          </div></td>
        </tr>
        <tr>
          <td><div align="center"><strong>Vous voulez supprimer des bandes dessinées de votre base?</strong></div></td>
          <td><div align="center">
            <form id="form3" name="form3" method="post" action="supprimer.php">
              <label>
                <input type="submit" name="supprimer" value="Supprimer" />
                </label>
            </form>
            </div></td>
        </tr>
      </table>
    </div>
    <p align="center">&nbsp;</p>
    <p align="center">&nbsp;</p>
    </body>
    </html>

    Afficher.php

    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
    46
    47
    48
    49
    50
    51
     
    <html>
    <body>
    <?php
    // Définir paramètres
    $host="localhost"; // Nom de l'hôte
    $username="root"; // Utilisateur, ici root pour que vous puissiez faire des tests
    $password=""; // Mot de passe vide pour que vous puissiez faire des testes
    $db_name="base_dessin"; // Nom de base de donnée
    $tbl_name="table_dessin"; // Nom de table
     
    // Connecter au serveur
    $link = mysql_connect("$host", "$username", "$password");
    if (!$link) 
    {
        die("Connexion impossible : " . mysql_error());
    }
    mysql_select_db("$db_name")or die("Ne peut pas selectionner la base");
     
    // Selectionner
    $sql="SELECT * FROM $tbl_name ORDER BY titre";
    $result=mysql_query($sql);
    if(!$result)
    {
    	echo "Lecture impossible";
    }
    else
    {
    	$nbcol=mysql_num_fields($result);
    	$nbart=mysql_num_rows($result);
    	echo "<h3> Tous nos B.D par titre</h3>";
    	echo "<h4> Il y a $nbart B.D</h4>";
    	echo "<table border=\"1\">";
    	echo "<th>Id</th> <th>Titre</th> <th>auteur</th> <th>Editeur</th> <th>Collection</th>";
    	while($ligne=mysql_fetch_array($result,MYSQL_NUM))
    	{
        echo "<tr>";
        foreach($ligne as $valeur)
    	   {
               echo "<td> $valeur </td>";
    	   }
    		echo "</tr>";
    	}
    	echo "</table>";
    }
    // Fermer connexion
    mysql_close($link);
    ?>
    <p align="center"><a href="index.htm">Retour &agrave; la page d'accueil.</a></p>
    </body>
    </html>
    ajouter.php

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
    "http://www.w3.org/TR/REC-html40/strict.dtd">
    <html>
    <head>
    <title>Saisissez vos coordonnées</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <form action= "<?php echo $_SERVER['PHP_SELF'];?>" method="post"
    enctype="application/x-www-form-urlencoded">
    <fieldset>
    <legend><b>Saisir les coordonnées de la BD</b></legend>
    <table>
    <tr><td>Titre : </td><td><input type="text" name="titre" size="40" maxlength="30"/></td></tr>
    <tr><td>Auteur : </td><td><input type="text" name="auteur" size="40" maxlength="30"/></td></tr>
    <tr><td>Editeur : </td><td><input type="text" name="editeur" size="40" maxlength="30"/></td></tr>
    <tr><td>Collection : </td><td><input type="text" name="collection" size="40" maxlength="30"/></td></tr>
    <tr>
    <td><input type="reset" value=" Effacer "></td>
    <td><input type="submit" value=" Envoyer "></td>
    </tr>
    </table>
    </fieldset>
    </form>
    <?php
    // Définir paramètres
    $host="localhost"; // Nom de l'hôte
    $username="root"; // Utilisateur, ici root pour que vous puissiez faire des tests
    $password=""; // Mot de passe vide pour que vous puissiez faire des testes
    $db_name="base_dessin"; // Nom de base de donnée
    $tbl_name="table_dessin"; // Nom de table
     
    // Connecter au serveur
    $link = mysql_connect("$host", "$username", "$password");
    if (!$link) 
    {
        die("Connexion impossible : " . mysql_error());
    }
    mysql_select_db("$db_name")or die("Ne peut pas selectionner la base de donnees");
     
    if(!empty($_POST['titre'])&& !empty($_POST['auteur'])&& !empty($_POST['editeur'])&& !empty($_POST['collection']))
    {
      $id_dessin="\N"; /*La valeur "\N" représente la valeur NULL de la variable $id_dessin.
      Elle permet d'incrémenter de 1 l'id_dessin à chaque nouvelle insertion.*/
      $titre=mysql_escape_string($_POST['titre']);
      $auteur=mysql_escape_string($_POST['auteur']);
      $editeur=mysql_escape_string($_POST['editeur']);
      $collection=mysql_escape_string($_POST['collection']);
      //Requète SQL d'insertion de données dans la table dessin
      $requete="INSERT INTO $tbl_name
      VALUES('$id_dessin','$titre','$auteur','$editeur','$collection')";
      $result=mysql_query($requete);
     
      if(!$result)
      {
        echo mysql_errno();
        echo mysql_error();
        echo "<script type=\"text/javascript\">
    	alert('Erreur : ".mysql_error()."')</script>";
      }
      else
      {
        echo "<script type=\"text/javascript\">
    	alert('Cette BD est enregistrée Son numéro est : ". mysql_insert_id()."')</script>";
      }
    }
    else 
    {
        echo "<h3>Formulaire à compléter!</h3>";
    }
    // Fermer connexion
    mysql_close($link);
    ?>
    </p>
    <p align="center"><a href="index.htm">Retour &agrave; la page d'accueil.</a> </p>
    </body>
    </html>

    supprimer.php

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
    "http://www.w3.org/TR/REC-html40/strict.dtd">
    <html>
    <head>
    <title>Saisissez vos coordonnées</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <form action= "<?php echo $_SERVER['PHP_SELF'];?>" method="post"
    enctype="application/x-www-form-urlencoded">
    <fieldset>
    <legend><b>Saisir les coordonnées de la BD pour la supprimer</b></legend>
    <table>
    <tr><td>Id de la BD : </td><td><input type="text" name="id_dessin" size="20" maxlength="30"/></td></tr>
    <tr>
    <td><input type="reset" value=" Effacer "></td>
    <td><input type="submit" value=" Envoyer "></td>
    </tr>
    </table>
    </fieldset>
    </form>
    <?php
    // Définir paramètres
    $host="localhost"; // Nom de l'hôte
    $username="root"; // Utilisateur, ici root pour que vous puissiez faire des tests
    $password=""; // Mot de passe vide pour que vous puissiez faire des testes
    $db_name="base_dessin"; // Nom de base de donnée
    $tbl_name="table_dessin"; // Nom de table
     
    // Connecter au serveur
    $link = mysql_connect("$host", "$username", "$password");
    if (!$link) 
    {
        die("Connexion impossible : " . mysql_error());
    }
    mysql_select_db("$db_name")or die("Ne peut pas selectionner la base de donnees");
     
    if(!empty($_POST['id_dessin']))
    {
      $id_dessin=mysql_escape_string($_POST['id_dessin']);
      //Requète SQL d'insertion de données dans la table dessin
      $requete="DELETE FROM $tbl_name WHERE id_dessin ='$id_dessin'";
      $result=mysql_query($requete);
      if(!$result)
      {
        echo mysql_errno();
        echo mysql_error();
        echo "<script type=\"text/javascript\">
    	alert('Erreur : ".mysql_error()."')</script>";
      }
      else
      {
        echo "<script type=\"text/javascript\">
    	alert('Cette BD est supprimée Son numéro était : ". mysql_insert_id()."')</script>";
      }
    }
    else 
    {
        echo "<h3>Formulaire à compléter!</h3>";
    }
    // Fermer connexion
    mysql_close($link);
    ?>
    </p>
    <p align="center"><a href="index.htm">Retour &agrave; la page d'accueil.</a> </p>
    </body>
    </html>

  2. #2
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Points : 240
    Points
    240
    Par défaut
    P.S: Je pense que php_self ne marche pas en local. Lorsque je fais le test avec dreamweaver V9:
    --> afficher.php : un tableau diforme avec des lignes de code dedans alors que ce même script marche parfaitement lors des tests sur zend studio
    --> ajouter.php :
    Fichier introuvable:
    Firefox ne peut trouver le fichier à l'adresse /E:/Documents and Settings/sam/Mes documents/Unnamed Site 2/exo2_php_mysql/<?php echo $_SERVER['PHP_SELF']?>.
    Lorsque je teste à partir de wamp/www:
    Firefox ne peut trouver le fichier à l'adresse /E:/wamp/www/exo2_php_mysql/<?php echo $_SERVER['PHP_SELF']?>.
    --> supprimer.php :
    Fichier introuvable
    Firefox ne peut trouver le fichier à l'adresse /E:/Documents and Settings/sam/Mes documents/Unnamed Site 2/exo2_php_mysql/<?php echo $_SERVER['PHP_SELF']?>.
    Lorsque je teste à partir de wamp/www:
    Firefox ne peut trouver le fichier à l'adresse /E:/wamp/www/exo2_php_mysql/<?php echo $_SERVER['PHP_SELF']?>.
    Lorsque je teste à partir de wamp/www:
    Firefox ne peut trouver le fichier à l'adresse /E:/wamp/www/exo2_php_mysql/<?php echo $_SERVER['PHP_SELF']?>.
    --> les liens vers la page d'accueil et de la page d'accueil: marchent

  3. #3
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Il faut beaucoup plus se servir des fonctions, j'ai un peu amélioré ton code et attaché l'archive. Je te conseille de bien faire attention à la manière dont c'est fait car tu feras du bien meiłleur code si tu en tire des leçons.
    D'ailleurs cela fonctionne bien depuis que j'y ai touché, remarque qu'on y voie beaucoup plus clair.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Points : 240
    Points
    240
    Par défaut
    Salut Is_null;
    Merci pour ta réponse.
    Il faut faire plus de fonctions et d'include / require, c'est clair.
    Mais j'ai fait exprès de tout inclure dans le moins de fichiers possible pour faciliter les tests (moins de copier/coller à faire).
    Je suis sous wamp, je ne sais pas si ce que j'ai fait marche chez toi.
    Chez moi avec mon code les supprimer / ajouter ne se répercutent pas dans les tables lorsque je les teste. Selon le debugger de zend il n'y a pas bugs sur le code donc je me suis demandé si cela marchait ailleurs. Si c'est le cas j'ai un problème au niveau de wamp ou autre.

  5. #5
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Je ne sais pas ce qu'est le debugger de zend, mais si c'est une alternative a xdebug, c'est un moyen pour toi de reperer les bugs en suivant le code ligne par ligne, en posant des breaks ou en regardant le status d'une variable a un instant donnee. Ca ne debug pas un script automatiquement, malheureusement le debuggeur de zend n'est pas encore connectible avec un cerveau humain.

    Par contre, est-ce que tu a regarde le code que je t'ai envoye ?
    Je ne peux pas tester ton code car je n'ai pas l'extension mysql, mais seulement l'extension mysqli, c'est pourquoi j'ai inclus un petit set de fonctions qui permettent l'abstraction mysql/mysqli.

  6. #6
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Points : 240
    Points
    240
    Par défaut
    Salut Is_null;
    J'ai vu ton code, il permet une bonne réutilisation et une bonne lisibilté.
    Mais comme pour mon code, il donne le même résultat: la base reste inchangée que je fasse ajouter ou supprimer (testé avec zend studio et dreamweaver).
    Ce que je veux, c'est qu'une personne ayant ou wamp ou à défaut lamp puisse tester chez elle en local (localhost) mon code pour voir s'il affecte ou pas la base (ex: je fais ajouter des données, j'ouvre phpmyadmin pour voir la table et effectivement je vois que les données ont été ajoutées).
    Donc mon problème n'est pas le code, mais la détection de ce qui ne va pas ton mon ordi, qui empêche de faire les tests.
    La première étape est d'avoir la confirmation que lorsque le debuggeur de zend studio ne détecte rien comme bug, cela veuille dire que le code est ok.
    Je passe un examen dans quelques jour et ce sera sur mon pc portable.
    Donc je veux savoir, à défaut du test in vivo (je regarde dans phpmyadmin si la base a été modifiée, supprimée, renommée...) je veux savoir si je peux me fier à zend studio, pour pas aller complétement à l'aveuglette.

  7. #7
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    La première étape est d'avoir la confirmation que lorsque le debuggeur de zend studio ne détecte rien comme bug, cela veuille dire que le code est ok.
    Non, le debugger est un assistant pour identifier les bugs ! Tu es censé placer des breaks dans tes scripts pour les debuggers, et inspecter la valeur des variable, le debuggeur n'as pas ton cerveau et ne sait pas ce que doit faire le code.

    Je ne sais pas a quoi tu peux te fier, mais les scripts php que j'ai posté fonctionnent et agissent bel et bien sur la base de données.

    Ton problême n'est probablement pas dans le code...

  8. #8
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Points : 240
    Points
    240
    Par défaut
    J'ai installé mysql server avec le toolkit (mysql browser...) puis je l'ai désinstallé (car le mysql de wamp ne marchaît plus) pour remettre wamp.
    Wamp affiche apache et mysql actifs.
    Peut-être qu'il y a encore conflit entre la version mysql server et la version de mysql livrée avec wamp...

  9. #9
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    demarrer->executer->services.msc : verifier si c'est wampmysql ou mysql ou les deux qui tournent. Si un seul alors conflit peu probable.

Discussions similaires

  1. Demande de test du shell et du système de fichiers de mon OS
    Par bouazza92 dans le forum Programmation d'OS
    Réponses: 15
    Dernier message: 16/06/2008, 13h04
  2. [Système] temps d'éxécution de script
    Par clara2005 dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 12h03
  3. [SGBD] demande de conseil sur script util (FPDF et mysql_insert_id)
    Par mangafan dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/10/2005, 00h57
  4. [Demande de tests] SELRA Moteur d'affichage 3D
    Par Bob.Killer dans le forum OpenGL
    Réponses: 5
    Dernier message: 31/08/2005, 19h18
  5. tests de script et clefs étrangères en INSERT
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2005, 17h15

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