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 :

Line ne marche qu'a moitié


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut Line ne marche qu'a moitié
    Bonjour,

    Je dispose de code qui me permet, uploader des fichier dans des dossier, par la même occasion j'utilise une base mysql qui enregistre le chemin du fichier, et la description du fichier.

    Je dispose aussi d'un petit moteur de recherche qui tape dans la base mysql, qui affiche les résultats trouvés,normal .
    J'affiche les chemins des fichiers sous forme de lien. Mais, il y a un mais il fallait bien, quand je clic sur les liens rien ne se passe, si je fais clic droit enregistrer sous, je peux enregistrer le fichier voulu.

    Et voici les codes:

    -upload.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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
        <?php
        if( isset($_POST['upload']) ) // si formulaire soumis
        {
            $content_dir = $_POST['rep']; // dossier où sera déplacé le fichier
     
            $tmp_file = $_FILES['fichier']['tmp_name'];
     
            if( !is_uploaded_file($tmp_file) )
            {
                exit("Le fichier est introuvable");
            }
     
            // on vérifie l'extension
            $type_file = $_FILES['fichier']['type'];
     
        //si l'extension de fichier ne correspond pas aux critères de sauvegarder , affichage du message ci-dessous.
            if( !strstr($type_file, 'application/msword') && !strstr($type_file, 'application/pdf') && !strstr($type_file, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') && !strstr($type_file, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') && !strstr($type_file, 'application/vnd.ms-excel') && !strstr($type_file, 'application/vnd.ms-powerpoint')
             )
            {
                exit("Vous devez sauvegarger un fichier de type  : .doc, .docx, .pdf, .ppt, .pptx, .xls, .xlsx) ");
            }
     
            // on copie le fichier dans le dossier de destination
            $name_file = $_FILES['fichier']['name'];
            if( move_uploaded_file($tmp_file, $content_dir . $name_file) && isset($_POST['description']) ) //envoie le chemin du lien dans la base
            {
     
           $commentaire = $_POST['description']; 
            $chemin=($content_dir . $name_file);
     
     
                 $commentaire=addslashes($commentaire);      
                  $chemin=addslashes($chemin);
                        if ($chemin!=NULL && $commentaire!=NULL)
                        {         
                          mysql_connect("localhost","erdoganak","ea");
                                mysql_select_db("entreprise");
     
                          mysql_query("INSERT INTO pieces_jointes (description, chemin) VALUES('$commentaire' , '$chemin')") or die('l\'insertion du lien a échoué'.mysql_error());
                                mysql_close();
                        }
             }
           else
           {
               exit("Impossible de copier le fichier dans $content_dir");
           }
     
     
        }
        /*// 1) ENREGISTREMENT d'un commentaire
                if (isset($_POST['description']))
                {
                        $commentaire = $_POST['description'];
                       
                                   
                        $commentaire=addslashes($commentaire);
                        if ($commentaire!=NULL)
                        {
                                //mysql_connect("localhost","root");
                                //mysql_select_db("test");
                                mysql_connect("localhost","erdoganak","ea");
                                mysql_select_db("entreprise");
                               
                          //pour éviter les doublons
                                //$reponse=mysql_query("SELECT pseudo,commentaire FROM brasilia WHERE id_photo=$id_photo ORDER BY ID DESC limit 0,1") or die(mysql_error());
                                //$donnee=mysql_fetch_array($reponse);
                                                  echo "Insertion effectué " ;
                                mysql_query("INSERT INTO pieces_jointes (description) VALUES(',' '$commentaire')") or die('l\'insertion a échoué'.mysql_error());
                                mysql_close();
                        }
                        else
                        {
                                echo "veuillez remplir les champs svp ( pseudo, note et commentaire )";
                        }
                }
        */
        ?>
     
        <html>
        <form method="post" enctype="multipart/form-data" action="upload.php">
        <p>
        <input type="file" name="fichier" size="33"><br /><br />
        <textarea name="description" id="description"></textarea><br /><br />
        <input type="submit" name="upload" value="Envoyer"><br />
        </p>
     
        <p>
        <select name="rep">
        <option value="file:///c:/wamp/www/test1/"> test1 </option> <!--a remplacer par l'adresse des dossiers -->
        <option value="file:///c:/test2/"> test2 </option>
        <option value="file:///c:/test3/"> test3 </option>
        </select>
        </p>
     
        <p> <input type="button" value="Retour" name="retour1" onClick="window.location='index.php?do=login'"> </p>
     
        </form>
        </html>


    -search.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
    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
        <?php
        $hostname_logon = "localhost" ;   
        $username_logon = "erdoganak; 
        $password_logon = "ea";
        $database_logon = "entreprise" ; 
    
    
           
        //connexion base de donnée
        $connections = mysql_connect($hostname_logon, $username_logon, $password_logon) or die ( "Impossible de se connecter a la base de donnée" );
        //selection de la base de donnée
        mysql_select_db($database_logon) or die ( "Impossible de selectionner la base!" );
    
    
        //nombre de resultat par page
        $limit = 10;
    
        // variable de recherche obtenue par url
          $Mot = $_POST['Mot'] ;
        //trim whitespace from the stored variable
          $trimmed = trim($Mot );
        //separation des mots-clés
          $trimmed_array = explode(" ",$trimmed);
    
        // vérification, si vide affichage message
        if ($trimmed == "") {
          $resultmsg =  "<p>Search Error</p><p>Veuillez remplir le champ pour effectuer la recherche...</p>" ;
          }
    
        // verification pour la recherche
        if (!isset($Mot )){
          $resultmsg =  "<p>Search Error</p><p>Aucun paramètre! </p>" ;
          }
    
          // Build SQL Query for each keyword entered
        foreach ($trimmed_array as $trimm){
             
            // EDIT HERE and specify your table and field names for the SQL query
             $query = "SELECT * FROM pieces_jointes WHERE numero LIKE '%$trimm%' OR chemin like '%$trimm%' OR description like '%$trimm%' ORDER BY numero  DESC" ;
           
           // Execute the query to  get number of rows that contain search kewords
             $numresults=mysql_query ($query);
             $row_num_links_main =mysql_num_rows ($numresults);
    
             // voyons si 's' a bien été passé, si non 0 est utilisé.
             
            if (empty($s)) {
                 $s=0;
             }
    
              // now let's get results.
              $query .= " LIMIT $s,$limit" ;
              $numresults =mysql_query ($query) or die ( "Impossible d'executer la requête" );
              $row= mysql_fetch_array ($numresults);
    
              //Ajout d'un id à chaque élément qui contient le mot clé, et ainsi éviter d'afficher les résultats double
              do{
                  $adid_array[] = $row[ 'numero' ];
              }while( $row= mysql_fetch_array($numresults));
        }
        //end foreach
    
        if($row_num_links_main == 0 && $row_set_num == 0){
           $resultmsg = "<p>Résultat de la recherche pour : ". $trimmed."</p><p>Aucun résultat pour votre recherche</p>" ;
        }
           //delete duplicate record id's from the array. To do this we will use array_unique function
           $tmparr = array_unique($adid_array);
           $i=0;
           foreach ($tmparr as $v) {
               $newarr[$i] = $v;
               $i++;
           }
     
        // Vous pouvez maintenant afficher les résultats renvoyés. Mais d'abord, nous allons afficher le formulaire de recherche
        ?>
     
        <?php
     
     
        // affiche la recherche de la personne
        if( isset ($resultmsg)){
          echo $resultmsg;
          exit();
        }else{
          echo "Résultat de la recherche pour : " . $Mot ;
        }
     
        foreach($newarr as $value){
     
        // Renseignement de la table et du champ pour la requetes sql
        $query_value = "SELECT * FROM pieces_jointes WHERE numero = '$value'";
        $num_value=mysql_query ($query_value);
        $row_linkcat= mysql_fetch_array ($num_value);
        $row_num_links= mysql_num_rows ($num_value);
     
     
        //Nous allons mettre les mots retrouvés en gras pour cela nous utilisons la fonction preg_replace, Remplacement des champs
          $titlehigh = preg_replace ( "'($Mot )'si" , "<b> /*/</b>" , $row_linkcat[ 'numero' ] );
          $linkhigh =  preg_replace ( "'($Mot )'si" , "<b> /*/</b>" , $row_linkcat[ 'description' ] );
          $linkdesc =  preg_replace ( "'($Mot )'si" , "<b> /*/</b>" , $row_linkcat[ 'chemin' ] );
     
        foreach($trimmed_array as $trimm){
            if($trimm != 'b' )
           {
                $titlehigh = preg_replace( "'($trimm)'si" ,  "<b> /*/</b>" , $titlehigh);
                $linkhigh = preg_replace( "'($trimm)'si" , "<b> /*/</b>" , $linkhigh);
                $linkdesc = preg_replace( "'($trimm)'si" ,  "<b> /*/</b>" , $linkdesc);
     
     
           }
        //end highlight
     
        }
     
        ?>
        <p>
        <?php echo $row_linkcat[ 'numero' ]; ?></br>
        <?php echo $row_linkcat[ 'description' ]; ?></br>
        <?php echo '<a href="'.$row_linkcat['chemin'].'">'.$row_linkcat['chemin'].'</a>';?>
     
     
        </p>
     
        <?php
        }
           //fin de $trimmed_array
           if($row_num_links_main > $limit){
     
           // resultat dans une nouvelle page
              if ($s>=1) { // n'affiche rien si 's' vaut '0'
                $prevs=($s-$limit);
                 echo "<div align='left'><a href='$PHP_SELF?s=$prevs&q=$Mot &catid=$catid'>Previous " .$limit. "</a></div>";
              }
             // vérification de la page
             $slimit =$s+$limit;
               if (!($slimit >= $row_num_links_main) && $row_num_links_main!=1) {
             // not last page so display next link
                  $n=$s+$limit;
                   echo "<div align='right'><a href='$PHP_SELF?s=$n&q=$Mot &catid=$catid'>Next " .$limit. "</a></div>";
                }
            }
          //fin de $newarr  ?>
    Merci Bien,

  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
    C'est un problème a etudier en regardant le HTML obtenu.

    Le lien est-il bien ecris quand tu regardes la source dans ton navigateur ?
    Est-ce que ton lien est correctement ecris quand tu passes ta souris dessus ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Oui dans la source, les liens sont écris (les liens obtenues dans la page et les liens dans la source Html sont les mêmes)

    Désolé de ne pas avoir fait attention

  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
    Peux-u nous montrer a quoi ca ressemble ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Je te montre ça dés demain matin, je n'ai pas ça sur mon pc.

    Merci encore

  6. #6
    Membre averti
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Bonjour,

    Donc je poste la source de ce que j'obtiens, j'ai tous essayé pour les chemins de mes fichiers dans le but de faire fonctionner, mais ça ne donne rien.

    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
     
     
    Résultat de la recherche pour : a <p>
    18</br>
    gt</br>
    <a href="file:///c:/wamp/www/test1//owasp_top_10_2007.pdf">file:///c:/wamp/www/test1//owasp_top_10_2007.pdf</a>
     
    </p>
     
     <p>
    17</br>
    bndf</br>
    <a href="file:///c:/wamp/www/test1\\/owasp_top_10_2007.pdf">file:///c:/wamp/www/test1\\/owasp_top_10_2007.pdf</a>
     
    </p>
     
     <p>
    16</br>
    oak 
    </br>
    <a href="file:///c:/wamp/www/test1owasp_top_10_2007.pdf">file:///c:/wamp/www/test1owasp_top_10_2007.pdf</a>
     
    </p>
     
     <p>
    15</br>
    rrrarrrr</br>
    <a href="c:/wamp/www/test1/owasp_top_10_2007.pdf">c:/wamp/www/test1/owasp_top_10_2007.pdf</a>
     
    </p>
     
     <p>
    14</br>
    minlm</br>
    <a href="file://///c:/wamp/www/test1/owasp_top_10_2007.pdf">file://///c:/wamp/www/test1/owasp_top_10_2007.pdf</a>
     
    </p>
     
     <p>
    13</br>
    koooo</br>
    <a href="file://c:/test2OWASP_Top_10_2007.pdf">file://c:/test2OWASP_Top_10_2007.pdf</a>
     
    </p>
     
     <p>
    12</br>
    rerererererere</br>
    <a href="file:///c:/test3/Classeur1.xls">file:///c:/test3/Classeur1.xls</a>
     
    </p>
     
     <p>
    11</br>
    cececeececeece</br>
    <a href="file://///c:/test3/Classeur1.xls">file://///c:/test3/Classeur1.xls</a>
     
    </p>
     
     <p>
    10</br>
    lelellelele</br>
    <a href="file://///c:/wamp/www/test1/OWASP_Top_10_2007.pdf">file://///c:/wamp/www/test1/OWASP_Top_10_2007.pdf</a>
     
    </p>
     
     <p>
    9</br>
    BELEBELEBLEBE</br>
    <a href="file://///c:/wamp/www/test1qqqqqqqqaaaaaaqqqqqqq.ppt">file://///c:/wamp/www/test1qqqqqqqqaaaaaaqqqqqqq.ppt</a>
     
    </p>
    Rien ne ce passe lorsque je clique dessus...

  7. #7
    Membre averti
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Merci de t'intéresser a mon problème,

    J'affiche directement les liens des fichiers cherchés, quand je passe le curseur sur les résultats, la petite main apparait, mais quand je clique dessus il ne se passe rien, même pas une erreur .

  8. #8
    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
    tu n'as pas repondu : est-ce que dans la source HTML de ta page dans la navigateur tes liens sont correctement ecris ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Fonction radio avec js ne marche qu'a moitié
    Par Maxime50 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/09/2009, 15h56
  2. Problème pour charger des font dynamiquement et les utiliser (marche à moitié)
    Par rigolman dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 31/03/2009, 08h29
  3. SOS, l'algorithme des Marching lines
    Par dolcedonna dans le forum C++
    Réponses: 0
    Dernier message: 09/10/2007, 00h40
  4. [SmartPart] UserControl qui marche à moitié !
    Par tikris dans le forum SharePoint
    Réponses: 6
    Dernier message: 03/09/2007, 11h12

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