Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster -> FAQ BDD, Cours BDD et Sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/10/2009, 11h04   #1
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
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 :
    <?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 :
    <?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,
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 14h53   #2
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 10 090
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 ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 15h40   #3
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
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 .
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 16h20   #4
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 10 090
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 ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 17h05   #5
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
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
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 21h13   #6
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 10 090
Par défaut

Peux-u nous montrer a quoi ca ressemble ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2009, 23h10   #7
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
Par défaut

Je te montre ça dés demain matin, je n'ai pas ça sur mon pc.

Merci encore
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/10/2009, 09h15   #8
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
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 :
 
 
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...
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/10/2009, 18h03   #9
Modérateur
 
Avatar de sabotage
 
Date d'inscription: juillet 2005
Messages: 10 090
Par défaut

Est-ce normal que tes liens aient tous un format different ?

Pour mes tests avec Firefox 3.5.2, file://c:/...... fonctionne
sabotage est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/10/2009, 11h53   #10
Invité régulier
 
Date d'inscription: août 2009
Messages: 11
Par défaut

Dans le but de faire fonctionner, j'ai tout testé c'est pour cela que les formats des liens sont différents

Sinon comme dit sur le titre mes liens ne fonctionne qu'a moitié, (enregistrer sous possible avec un clic droit, mais clic gauche rien ...)
erdoganak est déconnecté   Envoyer un message privé Réponse avec citation
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 07h22.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.