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 :

Compteur sur 2 serveurs


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut Compteur sur 2 serveurs
    Bonjour à tous

    j'ai créer un compteur de téléchargement qui fonctionne à 50%.

    Tous fonctionne a 100% en local mais a 50% en hébergeur.

    j'ai mon site sur un serveur et mon logiciel a télécharger sur un autre.

    le souci viens du début.

    Code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $folder_stat    = 'logiciel/stat/' ; // répertoire dans lequel seront stockées les statistiques
    $folder_archive = 'logiciel/' ; // répertoire des téléchargements
    se que je souhaite c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $folder_stat    = 'http://www.serveur2/logiciel/stat/' ; // répertoire dans lequel seront stockées les statistiques
    $folder_archive = 'http://www.serveur2/logiciel/' ; // répertoire des téléchargements
    j'ai tester avec header location : mais erreur.

    Code 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
    <?php
     
    $folder_stat    = 'logiciel/stat/' ; // répertoire dans lequel seront stockées les statistiques
    $folder_archive = 'logiciel/' ; // répertoire des téléchargements
     
    if ( isset( $_GET['file'] ) ) // si le visiteur veut télécharger un fichier
    {
            $name = htmlentities($_GET['file'], ENT_QUOTES); // sécurisation de la variable
     
            if ( file_exists( $folder_stat . $name . '.txt' ) ) // si le fichier existe
            {       
                    $FileContent = fopen( $folder_stat . $name . '.txt', 'r+' ); // ouverture du fichier statistique contenant le nombre de hits
     
                    $hit = fgets( $FileContent ); // récupération de la valeur
                    $hit = intval( $hit ); // on vérifie qu’il s’agisse bien d’un nombre
                    $hit++; // ajout de 1 au nombre de hits
     
                    fseek( $FileContent, 0 ); // réinitialisation du curseur
                    fputs( $FileContent, $hit ); // écriture dans le fichier
     
                    fclose( $FileContent ); // fermeture du fichier
     
                    header( "Location: $folder_archive$name.exe" ); // redirection vers le téléchargement
            }
    }
     
    function NumberOfHit( $name ) // création de la fonction NumberOfHit
    {
            $folder_stat = 'logiciel/stat/' ; // répertoire dans lequel seront stockées les statistiques
            $file = $folder_stat . $name . '.txt' ; // nom du fichier de statistiques contenant le nombre de hits
     
            if ( file_exists( $file ) ) // si le fichier existe
            {
                    $FileContent = fopen( $file , 'r' ); // ouverture du fichier
     
                    $hit = fgets( $FileContent ); // récupération de la valeur
                    fclose( $FileContent ); // fermeture du fichier
     
                    return $hit; // retour de la valeur de $hit
            }
            else // si le fichier n’existe pas
            {
                    touch( $file ); // création du fichier
     
                    $FileContent = fopen( $file  , 'r+' ); // ouverture du fichier
     
                    fseek( $FileContent, 0 ); // réinitialisation du curseur
                    fputs( $FileContent, 0 ); // écriture dans le fichier
     
                    fclose( $FileContent ); // fermeture du fichier
            }
    }
     
    ?>
     
    <html>
     
    <head>
    <style type="text/css">
    * {
            font-family: Verdana, Arial, serif;
            font-size: 11px;
    }
    .rouge2 { color:#FF0000; font-weight:bold;}
    </style>
    </head>
     
    <body>
    <?php
     
    $name   = 'install' ; // nom du fichier (et de l’archive)
    $result = NumberOfHit( $name ) ; // récupération du nombre de hits pour le nom concerné
     
    echo '<p align="center"><a href="?file=' . $name . '" title="Télécharger"><img src="Img/Tel.gif" border="0" width="200" height="79" /></a><br/>Télécharger : <span class="rouge2">' . $result . '</span> fois.</p>';
     
    ?>
    </body>
     
    </html>
    comment puis je faire pour avoir le site sur 1 serveur et les logiciel sur un autre pour que sa me les comptabilise ?

    merci d'avance amicalement

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    j'ai tester avec header location : mais erreur.
    C'est très vague, qu'entends-tu par là? Quelle est l'erreur affichée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header( "Location: $folder_archive$name.exe" );
    Faire ceci ne serait-il pas plus propre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header( "Location: " . $folder_archive . $name . ".exe" );

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Bonjour à tous et merci Neckara d'avoir répondu

    je viens de refaire des tests pour URL de l'autre serveur cela fonctionne en direct avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $folder_archive = 'http://www.serveur2/logiciel/' ;
    en local aucune erreur tous fonctionne sans souci mais en ligne j'ai c'est erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Warning: touch() [function.touch]: Unable to create file prog/install.txt because No such file or directory in /home/users/test.php on line 43
     
    Warning: fopen(prog/install.txt) [function.fopen]: failed to open stream: No such file or directory in /home/users/test.php on line 45
     
    Warning: fseek() expects parameter 1 to be resource, boolean given in /home/users/test.php on line 47
     
    Warning: fputs() expects parameter 1 to be resource, boolean given in /home/users/test.php on line 48
     
    Warning: fclose() expects parameter 1 to be resource, boolean given in /home/users/test.php on line 50
    j'ai essayer de changer les doit d'écriture mais rien.

    merci d'avance

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    Bonjour,

    Si ton fopen à failed c'est que le fichier que tu essaye d'ouvrir n'existe pas. Si ton touch failed c'est parce qu'il essaye de créer un fichier dans un répertoire qui n'existe pas

    Tout est une question de mauvais chemin, affiche les chemins, et vérifie sur ton serveur si les répertoires ont les bon nom ou sont au bon endroits.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    bonjour keegzer

    pourquoi avec Wampserver en localhost il me le télécharge bien du serveur et incrémente de 1 le téléchargement je devrais avoir une erreur si le chemin est faut ? car le logiciel télécharger en localhost est bien télécharger du serveur2 et le txt bien incrémenté de 1 sur le chemin voulu sur le serveur1.

    sinon on ma parler de cela :

    Pour les herbergeurs qui gère le chmod n'oubliez pas de mettre le dossier en chmod 777.

    mais sa je sais pas c'est quoi

    amicalement

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Par défaut
    Citation Envoyé par squall049 Voir le message
    bonjour keegzer

    pourquoi avec Wampserver en localhost il me le télécharge bien du serveur et incrémente de 1 le téléchargement je devrais avoir une erreur si le chemin est faut ? car le logiciel télécharger en localhost est bien télécharger du serveur2 et le txt bien incrémenté de 1 sur le chemin voulu sur le serveur1.

    sinon on ma parler de cela :

    Pour les herbergeurs qui gère le chmod n'oubliez pas de mettre le dossier en chmod 777.

    mais sa je sais pas c'est quoi

    amicalement
    Le chmod te permet de changer les droit sur un fichier ou repertoire cf. : fr.wikipedia.org/wiki/Chmod (rwx|rwx|rwx)

    En effet si tu n'a pas les droits d'accès sur le dossier fopen et touch ne fonctionnera pas (Imagine si tu essaye de déposer un objet chez ton voisin mais que tu n'a pas ses clés pour rentrer chez lui, cela ne fonctionnera pas).

    Je ne sais pas comment tu upload tes fichiers (fillezilla ?) avec ton logiciel de transfert FTP tu peut modifier ces droits (clic droit sur ton fichier ou dossier du serveur et dans propriétés tu devrais avoir un CHMOD qui traine)

    Mais attention a ne pas mettre n'importe quel droit à n'importe quel fichier.

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

Discussions similaires

  1. compteur de messages sur mon serveur imap
    Par Olivier Regnier dans le forum Ruby
    Réponses: 10
    Dernier message: 07/03/2007, 17h45
  2. Exploitation de base sur un serveur Web
    Par Oz-WereWolf dans le forum Installation
    Réponses: 10
    Dernier message: 07/03/2004, 22h52
  3. [Sybase] Execution procédure sur autre Serveur
    Par MashiMaro dans le forum Sybase
    Réponses: 2
    Dernier message: 03/02/2004, 10h45
  4. Paramétrer le nombre de connexion sur mon serveur Mysql
    Par Zerga dans le forum Installation
    Réponses: 2
    Dernier message: 12/12/2003, 19h21
  5. Requête sur un serveur lié
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/08/2003, 11h35

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