Decompresser gz dans une base de donnes.

Résolu
Signaler
Messages postés
17
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
7 mai 2008
-
Messages postés
17
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
7 mai 2008
-
Bonsoir,
je  voudrai decompresser un fichier gz que je recupere a partir d'internet et le mettre dans une base de donnees.

<?
    session_start();
    $_SESSION["serveur"]= "127.0.0.1";
    $_SESSION["base"] = "tribal";
    $_SESSION["login"] = "root";
    $_SESSION["password"] = "";

    $lines = gzfile('http://ds1.die-staemme.de/map/village.txt.gz', 'r');
    if(!is_array($lines)) die("Le fichier ne peut pas etre ouvert");
    foreach($lines as $line)
    {
    list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
    $name = urldecode($name);

    $name = addslashes($name);
    $Modif = "INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'";
    $lien = @mysql_connect($_SESSION["serveur"], $_SESSION["login"], $_SESSION["password"]);
    mysql_select_db($_SESSION["base"],$lien);
    mysql_query($Modif);
    }
?>

Et voila les erreurs:
Warning: session_start(): Cannot send session cookie - headers
already sent by (output started at c:\documents and
settings\cyril\bureau\tribal\php\index.php:1) in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 2

Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at c:\documents and
settings\cyril\bureau\tribal\php\index.php:1) in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 2

Warning: gzfile(): php_network_getaddresses: gethostbyname failed in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 8

Warning: gzfile(http://ds1.die-staemme.de/map/village.txt.gz): failed to open stream: No error in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 8

Le fichier ne peut pas etre ouvert

Merci d'avance de votre reponse

5 réponses

Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Les erreurs sont assez explicites.




Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\documents and settings\cyril\bureau\tribal\php\index.php:1)
in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 2


Les entêtes ont déjà été envoyés, avant la fonction session_start(), qui se trouve à la ligne 2. Le message indique même que du texte a déjà été envoyé à la ligne 1 du script.
Solution : supprimer le texte à la ligne 1 (probablement un espace, un retour à la ligne, ce genre de chose)

Erreur suivante, c'est le même problème.






Warning: gzfile(): php_network_getaddresses: gethostbyname failed in c:\documents and settings\cyril\bureau\tribal\php\index.php on line 8


A la ligne 8, lors de l'appel à la fonction gzfile(), une erreur se produit. Comme tu spécifies un nom d'hôte, PHP tente de le résoudre (avec la fonction gethostbnyname()) et échoue à ce moment là. Parce que PHP ne trouve pas le nom d'hôte spécifié, à savoir ds1.die-staemme.de . L'hôte n'est pas trouvable par le DNS utilisé par le serveur web qui exécute le script (le DNS de ton FAI quoi).

Du fait qu'il ne peut pas résoudre le nom d'hôte en question, il ne peut pas ouvrir le fichier, d'où la dernière erreur...

Conclusion, l'anglais c'est peut-être pas du français, mais présentement, c'est pas d'un niveau inaccessible à un développeur PHP. En tout état de cause, les développeurs PHP devraient toujours prendre un peu de temps pour lire attentivement les erreurs, et chercher à les comprendre...




<hr size="2" width="100%" />
Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
salut
cherche header already sent sur google, ou ici meme, t'as plein de liens du genre...
http://www.phpcs.com/infomsg_RAFRAICHISSEMENT-PAGE_1080661.aspx
/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
17
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
7 mai 2008

merci pour vos reponse, j'ai resolu pour le php mais pour le session start j'ai pas tout compris pourquoi cela ne marchait pas je m'en suis toujours servit et j'ai jamais eu de souci.
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

session_start() doit être utilisé avant que les entêtes HTTP ne soient envoyés.
Ils le sont :
- quand tu texte est envoyé (html, ligne blanche, retour à la ligne, résultat de echo, etc)
- quand on utilise la fonction header()
C'est expliqué dans la doc de PHP, à la fonction session_start() : http://fr.php.net/session_start

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
17
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
7 mai 2008

merci de de me le rappler mais justement j'ai respecter ces regles c'est pour sa que je m'interrogeait.
tant pis je ferait sans