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

PHP & Base de données Discussion :

Connexion à ma messagerie interne [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Par défaut Connexion à ma messagerie interne
    Bonjour je n'arrive pas à compté le nombre de message dans ma messagerie interne et j'ai une erreur à la connexion.

    Fatal error: Call to a member function prepare() on a non-object in C:\Program Files\EasyPHP-5.3.8.1\bel1\messagerie.php on line 11
    script de connexion
    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
    <?php
    // Connection au serveur
    try {
      $dns = 'mysql:host=localhost;dbname=rec';
      $utilisateur = 'root';
      $motDePasse = '';
      // Options de connection
      $options = array(
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
    	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
      );
      $connection = new PDO( $dns, $utilisateur, $motDePasse, $options );
    } catch ( Exception $e ) {
      echo "Connection à MySQL impossible : ", $e->getMessage();
      die();
    }
    ?>
    Début du script du comptage de la messagerie.

    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
    <?php
    if(!isset($_SESSION)){
    session_start();
    } 
     
    require_once'sources/config1.php';
    require_once'sources/secuk.php';
     
    $messagesParPage=10;//Nous allons afficher 10 messages par page.
     
    //Une connexion SQL doit être ouverte avant cette ligne...
    $reponse = $connection->prepare('SELECT COUNT(*) AS total FROM messages ');
    $reponse->execute();
    $total_messages = $reponse->fetch(PDO::FETCH_OBJ);
    $total=$total_messages['total'];
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
         $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
    $pageActuelle=1; // La page actuelle est la n°1    
    } 
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
    ?>

  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
    Comment se fait le lien entre les deux scripts ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Par défaut
    Bonsoir,

    En sachant idm est la session de sécurité pour toutes les pages membres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="messagerie.php?idm=<?PHP  echo"".$_SESSION['idm'].""; ?>"><span>Messagerie</span></a></li>

  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
    Je parlais du script de connexion et de la page de comptage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Par défaut
    bonsoir sorry pour le mal attendu voici le script complet

    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
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    <?php
    if(!isset($_SESSION)){
    session_start();
    } 
    include'sources/config1.php';
    include'sources/secuk.php';
     
    $messagesParPage=10;//Nous allons afficher 10 messages par page.
     
    //Une connexion SQL doit être ouverte avant cette ligne...
    $reponse = $connection->prepare('SELECT COUNT(*) AS total FROM messages ');
    $reponse->execute();
    $total_messages = $reponse->fetch(PDO::FETCH_OBJ);
    $total=$total_messages['total'];
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
         $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
    $pageActuelle=1; // La page actuelle est la n°1    
    } 
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
    ?>
     
    <uls>
    <lis><a href="envoyermess1.php?idm=<?php echo''.$_SESSION['idm'].''; ?>" title="NOUVEAU MESSAGE">
    <img src="cssstyle/imdesign/message-edit.png" width="20" height="20" border="0" /><B>&nbsp;&nbsp;Nouveau</B></a></lis>
    <lis><a href="messagerie.php?idm=<?php echo''.$_SESSION['idm'].''; ?>" title="MESSAGE RE&Ccedil;U">
    <img src="cssstyle/imdesign/message-accept.png" width="20" height="20" border="0" /><B>&nbsp;&nbsp;Re&ccedil;u(s)</B></a></lis>
    <lis><a href="envmessagerie.php?idm=<?php echo''.$_SESSION['idm'].''; ?>" title="MESSAGE ENVOY&Eacute;S">
    <img src="cssstyle/imdesign/message-go.png" width="20" height="20" border="0" /><B>&nbsp;&nbsp;Envoy&eacute;(s)</B></a></lis>
    <lis><a href="contact.php?idm=<?php echo''.$_SESSION['idm'].''; ?>" title="MES CONTACTS">
    <img src="cssstyle/imdesign/user-male-information.png" width="20" height="20" border="0" /><B>&nbsp;&nbsp;Contacts</B></a></lis>
    <lis><a href="broullion.php?idm=<?php echo''.$_SESSION['idm'].''; ?>" title="MES BROULLIONS">
    <img src="cssstyle/imdesign/message-error.png" width="20" height="20" border="0" /><B>&nbsp;&nbsp;Broullions</B></a></lis>
    </uls>
    <br />
    <br />
    <table width="680" border="0" >
      <tr>
        <td>
          <table width="100%" border="0">
            <tr>
              <td  bgcolor="#000000">
                <div align="center" class="messagerie"><b>Messagerie
                   - Messages re&ccedil;us</b></div>
              </td>
            </tr>
          </table>   
    <?PHP
    if(isset($_POST['suppr'],$_POST['del'],$_POST['idmess'])){
    $suppr = $_POST['suppr'];
    $del = $_POST['del'];
    $idmess = $_POST['idmess'];
     
    if($suppr=="ok") {			
    			$nb=count($del);
    			for($i = 0; $i < $nb; $i++){				
    			$del_message  = $connection->prepare('DELETE FROM messages WHERE id=:id AND dest=:dest');
                $del_message->execute(array(':id'=> $del[$i],':dest'=> $_SESSION['xxxx']));
    			}
    		    }
                }
    //Recupere le nombre de messages au total
    $message  = $connection->prepare('SELECT * FROM messages WHERE dest=:dest ORDER by date DESC, heure DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
    $message->execute(array(':dest'=> $_SESSION['xxxx']));
     
    $requete_nombre_message = $connection->prepare('SELECT COUNT(*) idg FROM messages WHERE dest=:dest');
    if($requete_nombre_message->execute(array(':dest'=> $_SESSION['xxxx']))){
       $nbmessrec = $requete_nombre_message->fetchColumn();
     
    echo '<form method="post"  action="messagerie.php?suppr=ok" onSubmit="post.disabled=true;" name="del" id="myForm">
          <table width="100%" border="0"><tr><td>
          <div align=left\"><b>Messages re&ccedil;us :<font color=#FF0000>'.$nbmessrec.'</font></b><br />
          <a href="#" onclick="javascript:document.del.submit();">
    	  <img src="cssstyle/imdesign/poubelle.gif" width="25" height="25" title="SUPPRIMER" border="0"/></a></div>
          </td></tr></table><hr></hr>
    	  <p>
          <table width="100%" class="messagerie" bgcolor="#000000" border="0\"><tr>
          <td width="20%" align="left">
          <input type="checkbox" id="checkUncheck" ><b>supprimer</b></td>
          <td width="15%"><center><b>Date</b></center></td>
          <td width="15%"><center><b>Expediteur</b></center></td>
          <td width="40%"><center><b>Sujet</b></center></td>
          <td width="10%" align="right"><img src="cssstyle/imdesign/messa.png" width="25" height="25" title="MESSAGE LU OU NON LU"/></td>
          </tr></table></p>';
    }	  
    //Affichage des messages trier par l'affichage par page
    while($result = $message->fetch(PDO::FETCH_OBJ))
    $bg = ($bg =='' ? '#D4D4D4' : '');
    $idmess = $result->id;
    $envmess = $result->env;
    $openmess = $result->open;
    $titremess = $result->titre;
    $datemess = $result->date;
    //Date version dd mm yyyy
    list($y,$m,$d) = explode("-",$datemess);
    $tiret= "-";
    $datemess2 = $d.$tiret.$m.$tiret.$y;
    echo '<table width="100%" border="0" bgcolor="'.$bg.'"><tr>
          <td width="20%" align="left">
          <input type="checkbox" class="box" name="del[]" value="'.$idmess.'">
          </td>
          <td width="15%"><center><font color="#FF0000">'.$datemess2.'</font></center></td>
          <td width="15%"><center>'.$envmess.'</center></td>
          <td width="40%"><a href="message.php?aff='.$idmess.'"><center>'.$titremess.'</center></a></td>
          <td width="10%" align="right">';
    //message lu ou non lu
    if($openmess=="0"){
    		echo '<img src="cssstyle/imdesign/recu.png" width="25" height="25" title="NOUVEAU MESSAGE"/>';
    		}else{
    		echo '<img src="cssstyle/imdesign/open.png" width="25" height="25" title="MESSAGE LU"/>';
    		}
    echo '</td>
          </tr>
          </table>';	
     
    //Si il n'y a pas encore de message  recu
    if ($nbmessrec==""){
    echo '<table width="100%" border="0"><tr>
          <td align="center"><br /><i><b>Aucun message pour le moment</b></i><br />
          </td></tr>
          </table>';
    	  }
     
    echo '</td></tr>
          <tr>
          <td>';
     
    echo '<table width="100%" border="0" align="center"><tr><td width="30%" ';
    echo '<p align="center" class="pagination"><b>Page </b>: '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++){ //On fait notre boucle
     
         //On va faire notre condition
         if($i==$pageActuelle){ //Si il s'agit de la page actuelle...
            echo '<b>  '.$i.'  </b>'; 
         }else{ //Sinon...
            echo '<b><a href="messagerie.php?page='.$i.'">'.$i.'</a></b>';
         }
    }
    echo '</p>';	
    echo '</td></tr></table>';
    ?>
    </td>
        <tr>
        <td><hr></hr>
      </tr>
    </table>
     
    <p></p>
    <p>	<script>
    		document.addEventListener("DOMContentLoaded", init, false)
    		function init() {
    			var checkUncheck = document.getElementById("checkUncheck");
    			checkUncheck.addEventListener("click", function() {
    				var inputs = document.getElementsByTagName("input");
    				for (var i = 0; i < inputs.length ; i++) {
    						if (inputs[i].type == "checkbox") {
    						inputs[i].checked = checkUncheck.checked;
    					}
    				}
    			}, false);			
    document.getElementById("checkAllButton").addEventListener("click", function() {
    				var inputs = document.getElementsByTagName("input");
    				for (var i = 0; i < inputs.length ; i++) {
    					if (inputs[i].type == "checkbox") {
    						inputs[i].checked = true;
    					}
    				}
    			}, false);
    document.getElementById("uncheckAllButton").addEventListener("click", function() {
    				var inputs = document.getElementsByTagName("input");
    				for (var i = 0; i < inputs.length ; i++) {
    					if (inputs[i].type == "checkbox") {
    						inputs[i].checked = false;
    					}
    				}
    			}, false);
    			var boxs = document.getElementsByClassName("box");
    			for (var i = 0; i < boxs.length; i++) {
    				boxs[i].addEventListener("click", function() {
    					var checked = document.querySelectorAll(".box:checked");
    					document.getElementById("checkUncheck").checked = (boxs.length == checked.length)
    				}, false);
    			}			document.getElementById('myForm').addEventListener("submit", function(event) {
    				event.preventDefault();
    				var boxsChecked = document.querySelectorAll(".box:checked");
    				var names = "";
    				for(var i = 0; i < boxsChecked.length; i++) {
    					names += boxsChecked[i].parentNode.nextElementSibling.innerHTML + "\n";
    				} 
    				if (names.length > 0) alert(names);
    			}, false);
    		}
    	</script></p>
    <br />
    <?php
     
    $connection=null;
     
    ?>

  6. #6
    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
    Certes mais ton script de connexion que tu nous as montré plus haut il intervient quand dans ce script que tu viens de nous montrer ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [MySQL] Créer une messagerie interne
    Par yanng dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/05/2008, 10h34
  2. Erreur 633 en connexion via modem interne
    Par busy999 dans le forum Dépannage et Assistance
    Réponses: 7
    Dernier message: 28/07/2006, 23h40
  3. Petit éditeur pour messagerie interne
    Par Attilius dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 11/07/2006, 17h31
  4. messagerie interne
    Par Drudwyn dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 02/02/2006, 11h27
  5. Messagerie interne (SQL) + quotas
    Par hush dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 03/11/2005, 14h48

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