Decompresser gz dans une base de donnes.

Résolu
k3ti0 Messages postés 17 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 7 mai 2008 - 27 mars 2008 à 21:07
k3ti0 Messages postés 17 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 7 mai 2008 - 28 mars 2008 à 18:47
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 mars 2008 à 00:14
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...
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 mars 2008 à 00:23
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
*/
3
k3ti0 Messages postés 17 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 7 mai 2008
28 mars 2008 à 12:26
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.
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 mars 2008 à 13:20
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...
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
k3ti0 Messages postés 17 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 7 mai 2008
28 mars 2008 à 18:47
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
3
Rejoignez-nous