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 :

Votre avis nous intérresse


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut Votre avis nous intérresse
    Bonjour


    J'ai fait ce ... heu .. cette chose qui fonctionne ( grâce à tous vos conseils). Dans le but de m'améliorer et de voir ce qui cloche ( svp dite moi pas : tout !!) merci de poster les commentaires qui vous passent par la tête, bons ou négatifs.

    Je vous remercie par avance

    ps : je sais que les relations dans ma base de données ont pourris, donc les commentaires de ce genre ne sont pas admis

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    <?php include('templates/hautdepage.php')?>
    <?php 
    //démarrage session
    session_start();
    ?>
     
     
    <p class="titre_cadre_droit">Suppression de rencontre</p>
     
    <?php
    if ( isset ($_POST['delete']) && isset($_SESSION['num']) && !empty ($_SESSION['num']) )
     
    {
    include('fonctionnement/plan.php');
     
    //3ème arrivée
     
    // On supprime la rencontre
    $sql = 'DELETE FROM rencontres  where num_rencontre = "'.mysql_real_escape_string($_SESSION['num']).'"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
    echo " La rencontre n° ".mysql_real_escape_string($_SESSION['num'])." a bien été sucrée <br /> ";
     
    //On supprime éventuellement l'équipe locale de la table équipe
    $sql = 'SELECT *  FROM rencontres where rencontres.num_locaux_rencontre like "'.mysql_real_escape_string($_SESSION['numlocaux']).'" or num_visiteurs_rencontre like "'.mysql_real_escape_string($_SESSION['numvisiteurs']).'"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    if ( mysql_num_rows($req) == 0) 
    	{$sqldel = 'delete from equipes where equipes.num_equipe like "'.mysql_real_escape_string($_SESSION['numlocaux']).'"';
    	$reqdel = mysql_query($sqldel) or die('Erreur SQL !<br />'.$sqldel.'<br />'.mysql_error()); 
    	echo "L'équipe n° ".mysql_real_escape_string($_SESSION['numlocaux'])." a été sucrée <br /> ";}
    else {echo "L'équipe n° ".mysql_real_escape_string($_SESSION['numlocaux'])." n'a pas été sucrée <br /> ";}
     
    //On supprime éventuellement l'équipe visiteur de la table équipe
    $sql = 'SELECT *  FROM rencontres where rencontres.num_visiteurs_rencontre like "'.mysql_real_escape_string($_SESSION['numvisiteurs']).'" or num_visiteurs_rencontre like "'.mysql_real_escape_string($_SESSION['numvisiteurs']).'"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    if ( mysql_num_rows($req) == 0) 
    	{$sqldel = 'delete from equipes where equipes.num_equipe like "'.mysql_real_escape_string($_SESSION['numvisiteurs']).'"';
    	$reqdel = mysql_query($sqldel) or die('Erreur SQL !<br />'.$sqldel.'<br />'.mysql_error()); 
    	echo "L'équipe n° ".mysql_real_escape_string($_SESSION['numvisiteurs'])." a été sucrée <br /> ";}
    else {echo "L'équipe n° ".mysql_real_escape_string($_SESSION['numvisiteurs'])." n'a pas été sucrée <br /> ";}
     
     
    //et boum les sessions
    	$_SESSION = array();
    	session_destroy();
     
    include('templates/basdepage.php');
     
    exit(); die();
    }
     
     
    ?>
     
     
    <?php
     
    if ( empty ($_POST['num']) || !isset ($_POST['num']) || empty ($_POST['consulter']) || !isset ($_POST['consulter']) )
     {
     	 if (isset ($_SESSION['pb'])) { echo ''.$_SESSION['pb'].''; }
     
     //1ère arrivée
      echo '<form action="suppressionrencontres.php" method="post">
     Numéro de le rencontre :  <input name="num" type="text" /> <br />
    <input name="consulter" type="submit" value="consulter" />  
      </form>';
      }
     
     else {
     //2ème arrivée
     include('fonctionnement/plan.php');
     
    	//On vérifie que la numéro de rencontre est bien de 8 caractères et est bien un chiffre.
    	if(strlen(mysql_real_escape_string($_POST['num'])) != 8  )
    		{$_SESSION['pb'] = "Longueur du numéro de la rencontre incorrect";header('Location: /football/suppressionrencontres.php');exit();}
     
    	if (preg_match('`[a-z]`i',mysql_real_escape_string($_POST['num'])))
    		 {$_SESSION['pb'] = "Numéro de la rencontre incorrect";header('Location: /football/suppressionrencontres.php');exit();}
     
     //On vérifie l'existance du numéro de la rencontre
    	$sqlnummatch = 'SELECT num_rencontre FROM rencontres WHERE num_rencontre = "'.mysql_real_escape_string($_POST['num']).'";';
    	$reqnummatch = mysql_query($sqlnummatch) or die('Erreur SQL : <br />'.$sqlnummatch);
    	$datanummatch = mysql_fetch_assoc($reqnummatch);
     
    	if ( mysql_num_rows($reqnummatch) == 0) 
    	{$_SESSION['pb'] = "<font color=\"red\">Numéro de la rencontre inexistant</font>";header('Location: /football/suppressionrencontres.php');exit();}
     
    //on l'affiche pour vérification
     
    $sql = 'SELECT num_rencontre,lieu_rencontre,nom_locaux_rencontre,num_locaux_rencontre,nom_visiteurs_rencontre,num_visiteurs_rencontre,niveau_rencontre,tour_rencontre ,date_format(date_rencontre,\'%d/%m/%Y\') as date_renontre,fonction_rencontre,lien_rapport,categorie_rencontre FROM rencontres 
    where num_rencontre = "'.mysql_real_escape_string($_POST['num']).'"';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
     
     
    if (mysql_num_rows($req) > 1){ echo "<font size=\"80\" color=\"red\">Problème général</font>";exit();}
    else {
     
    while($data = mysql_fetch_assoc($req)) 
        {  
     
    $_SESSION['numlocaux'] = $data['num_locaux_rencontre'];
    $_SESSION['numvisiteurs'] = $data['num_visiteurs_rencontre'];
     
    echo '<table align="center" class="titre_col_tableaux" width="100%">
    <tr align="center">
    <td align="center" width="8%">Date</td>
    <td align="center" width="14%">Lieu</td>
    <td align="center" width="15%">Equipe locale</td>
    <td align="center" width="15%">Equipe visiteuse</td>
    <td align="center" width="8%">Cat&eacute;consulterrie</td>
    <td align="center" width="13%">Niveau</td>
    <td align="center" width="9%">Tour / journée</td>
    <td align="center" width="8%">Fonction</td>
    <td align="center" width="10%">Commentaires</td>
    </tr></table>';
     
    echo '<table align="center" width="100%">
    <tr>	<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="8%">'.$data['date_renontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="14%">'.$data['lieu_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="15%">'.$data['nom_locaux_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="15%">'.$data['nom_visiteurs_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="8%">'.$data['categorie_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="13%">'.$data['niveau_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="9%">'.$data['tour_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="8%">'.$data['fonction_rencontre'].'</td>
    		<td class="ligne'.($couleurs_lignes_tableau % 2).'" width="10%">'.$data['lien_rapport'].'</td>
    </tr>
    </table>';
    $couleurs_lignes_tableau++;
    echo '<br /><br /><form action="suppressionrencontres.php" method="post"><input name="delete" type="submit" value="Suppression" /></form>';
    $_SESSION['num'] = $_POST['num'];
    	}
    	}
     
    //fin de l'affichage
     
    //On repart au début du code
     
     
     }
     
    ?>
     
    <?php include('templates/basdepage.php') ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je n'ai pas regarder l'enchainement logique de ton code mais :

    - entre la premiere et la deuxieme ligne il n'y a pas lieu de fermer php.

    - tu te sers de mysql_real_escape_string() pour l'affichage. même si ça fonctionne, ce n'est pas le but de cette fonction. un problème immédiat c'est qu'elle est dépendante d'une connexion mysql.
    utilise plutot htmlentities().

    - exit et die sont la meme fonction.

    - il faut faire le test !isset avant le test empty : si la valeur n'est pas défini et que tu tentes un empty dessus, PHP ne va pas être content.
    Prends l'habitude de code en affichant toutes les erreurs, tu verras tout de suite ces incoherences.

    - ca ne sert a rien de mettre deux apostrophes devant tes echo
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Merci sabotage pour tous ces précieux conseils.

    Citation Envoyé par sabotage Voir le message
    - tu te sers de mysql_real_escape_string() pour l'affichage. même si ça fonctionne, ce n'est pas le but de cette fonction. un problème immédiat c'est qu'elle est dépendante d'une connexion mysql.
    utilise plutot htmlentities().
    oui, ta raison, je l'avais lu et je ne l'ai même pas appliqué. mysql_real_escape_string pour l'enregistrement et la recherche et htmlentities pour l'affichage, c'est bien ça?


    Citation Envoyé par sabotage Voir le message
    Prends l'habitude de code en affichant toutes les erreurs, tu verras tout de suite ces incoherences.
    Comment on fais pour afficher ces erreurs?

    Si d'autres avis se manifestent, ils seront les bienvenus

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans ton php.ini :
    error_reporting = E_ALL
    Tu risques d'avoir plein d'erreur de types NOTICE pour des problèmes de ce genre.
    Mais ca permet de mettre en évidence des problèmes que tu n'avais pas imaginé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    autre chose à savoir sur mon bout de code?

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Il est important d'appliquer des normes claires de mise en page.

    Par exemple, il est beaucoup plus lisible d'écrire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($foo == $bar) {
        $une_ligne_de_code;
        $une_autre;
    }
    Plutôt que ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($foo == $bar)
        {$une_ligne_de_code;
        $une_autre;}
    Ce n'est pas flagrant sur cet exemple, mais dans votre code cela ne facilite pas la lecture.

  7. #7
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    merci s.n.a.f.u

    Quelqu'un a eu le courage d'analyser le code?

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Pas vraiment mais du peu que j'en ai vu, un conseil : Essaye d'organiser ton code et séparer plus HTML et PHP.

    Par exemple je suis tombé par hasard sur une requete DELETE au milieu d'un pavé HTML, perdu dans ton code. Tant que ça fonctionne, c'est pas grave, mais un casse bonbecs dans mon genre te dira que ça a rien à faire là.
    Si tu te repenches sur ton code dans 2 ou 3 semaines, tu risques d'avoir du mal pour retrouver ce qui fait quoi à quel moment et dans quel cas.

    Donc si tu veux un conseil, réfléchis bien à l'organisation de ton code en te disant le type qui va le relire doit pouvoir s'y retrouver facilement. Même si ce type, c'est toi. Ça t'évitera une consommation accrue d'aspirines

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 64
    Par défaut
    Déjà il faut que tu fasses des fonctions (voir des classes)

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sqlnummatch = 'SELECT num_rencontre FROM rencontres WHERE num_rencontre = "'.mysql_real_escape_string($_POST['num']).'";';
    	$reqnummatch = mysql_query($sqlnummatch) or die('Erreur SQL : <br />'.$sqlnummatch);
    	$datanummatch = mysql_fetch_assoc($reqnummatch);
     
    	if ( mysql_num_rows($reqnummatch) == 0)
    { 
    // [...]
    }
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function isNumRencontreExists($num)
    {
    	$sqlnummatch = 'SELECT num_rencontre FROM rencontres WHERE num_rencontre = "'.mysql_real_escape_string($num).'";';
    	$reqnummatch = mysql_query($sqlnummatch) or die('Erreur SQL : <br />'.$sqlnummatch);
    	$datanummatch = mysql_fetch_assoc($reqnummatch);
    	return ( mysql_num_rows($reqnummatch) == 0);
    }
     
    // L'appel
    if(isNumRencontreExists($_POST['num']))
    { 
    	// [...]
    }

  10. #10
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    --> O-Zone

    oui, j'ai vu le principe et j'y travaille actuellement parce que j'utilise cette requête dans plusieurs pages. Mais pour le cas,que je donne en exemple, pourquoi ne pas mettre directement un include?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 64
    Par défaut
    Les fonctions et classes permettent de déterminer les fonctionnalités de ton application.
    Une fois que tu as bâti un ensemble de fonction dans un même fichier (exemple : fonction.rencontre.php tu peux inclure le fichier dans tous tes scripts -- même si tu ne les utilises pas toutes -- pour avoir les fonctions tjs accessibles)

  12. #12
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    oki je me suis mis aux fonctions

    merci beaucoup à tous pour votre participation.

    Je laisse ouvert pour la journée et après je mettrai résolu

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

Discussions similaires

  1. [Blog perso] Bso-studio, votre avis nous interesse
    Par wibi76 dans le forum Mon site
    Réponses: 0
    Dernier message: 13/05/2012, 09h47
  2. Réponses: 13
    Dernier message: 01/02/2008, 23h55
  3. Réponses: 8
    Dernier message: 15/09/2007, 12h32
  4. [ONE$DB]votre avis nous interresse !
    Par wdionysos dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 22/11/2005, 23h31

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