A voir également:
- Vérifier qu'une chaine de caractère est un entier
- Caractère ascii - Guide
- Verifier un lien - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
8 réponses
petitpiel
Messages postés
16
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
5 mars 2014
2
5 mars 2014 à 16:51
5 mars 2014 à 16:51
Salut,
Je n'ai jamais employé la fonction fgetcsv, mais manifestement elle est faite pour lire les fichiers csv, et tu ouvre un fichier texte.
et un retour charriot comme délimiteur me parait pas être une bonne idée.
Peut-être devrais-tu plutôt utiliser fgets.
Je n'ai jamais employé la fonction fgetcsv, mais manifestement elle est faite pour lire les fichiers csv, et tu ouvre un fichier texte.
et un retour charriot comme délimiteur me parait pas être une bonne idée.
Peut-être devrais-tu plutôt utiliser fgets.
Mon problème n'est pas à ce niveau là.
ça fonctionne bien de plus vous la structure de mon fichier texte:
33830009
33830010
33830011
33830012
33830013
33830014
33830015
Ici fgetcsv c'est pour faciliter le traitement.
Regardez encore s'il vous plait.
ça fonctionne bien de plus vous la structure de mon fichier texte:
33830009
33830010
33830011
33830012
33830013
33830014
33830015
Ici fgetcsv c'est pour faciliter le traitement.
Regardez encore s'il vous plait.
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
5 mars 2014 à 17:14
5 mars 2014 à 17:14
Salut,
Pour essayer de localiser à quelle ligne il met ton bit à 1 pour la redirection, tu peux faire un :
die(var_dump($taille[0]));
Juste au dessus de $entier1=0; dans ton else.
De cette manière, le script s'arrêtera dès qu'il trouvera une valeur qui ne renvoit pas d'entier pour lui, et tu pourras mieux debugger pour savoir ce qui se passe :)
Pour essayer de localiser à quelle ligne il met ton bit à 1 pour la redirection, tu peux faire un :
die(var_dump($taille[0]));
Juste au dessus de $entier1=0; dans ton else.
De cette manière, le script s'arrêtera dès qu'il trouvera une valeur qui ne renvoit pas d'entier pour lui, et tu pourras mieux debugger pour savoir ce qui se passe :)
Utilisateur anonyme
5 mars 2014 à 17:23
5 mars 2014 à 17:23
Bonjour
As-tu bien initialisé $entier1 à autre chose que 0 quelque part ?
Et qu'est-ce qui affiche la ligne erronée quand il y en a une ? Je ne vois pas le code ici.
Enfin, il n'y a pas de exit après ton header(). Pas très normal
As-tu bien initialisé $entier1 à autre chose que 0 quelque part ?
Et qu'est-ce qui affiche la ligne erronée quand il y en a une ? Je ne vois pas le code ici.
Enfin, il n'y a pas de exit après ton header(). Pas très normal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici mon nouveau code après initialisation $entier:
Voici le code de la page qui affiche l'erreur:
S'il vous plait regardez encore.
<?php set_time_limit(0); error_reporting(E_ALL ^ E_NOTICE); mysql_connect('localhost','root',''); mysql_select_db('gestnum'); //on mesure la longueur des différentes lignes du fichier $handle = fopen("fichiernumcr.txt", "r"); $i=0; while (($taille = fgetcsv($handle, 0, "\n")) !== FALSE) { $i++; $nul = strlen($taille[0]); // On verifie que le fichier ne contient que des entiers if (ctype_digit($taille[0])) { //$entier=1; //$ligne=$i; //echo 'La chaîne '. $entier .' est bien un entier<br/>'; } else { $entier1=0; $ligne=$i; } } //Erreur fichier quand il contient des lettres if($entier1 ==0) { header('Location: ../gestionnaire-mdn/gerer-les-mdn-a-creer.php?er3=fstr1'); } ?>
Voici le code de la page qui affiche l'erreur:
<?php error_reporting(E_ALL ^ E_NOTICE); if(isset($_GET['er3']) and $_GET['er3'] = 'fstr1') { $handle = fopen("../Blog Posts/fichiernum.txt", "r"); $i=0; $entier1=0; while (($taille = fgetcsv($handle, 0, "\n")) !== FALSE) { $i++; $nul = strlen($taille[0]); if (ctype_digit($taille[0])) { //$entier=1; //$ligne=$i; //echo 'La chaîne '. $entier .' est bien un entier<br/>'; } else { $entier1=1; $ligne=$i; } } echo '<span style="font-style: italic; font-size: 15px; text-shadow: rgb(25, 25, 255) 1.4px 1.4px 0px, rgba(23, 23, 23, 0.792969) 2.1px 2.1px 0px; color: red;"> Erreur de Traitement : La structure du fichier est incorrecte, la ligne " N° '.$ligne.' " contient un caractère alphabétique. Or le Numéro d\'Abonné un nombre entier'; $ecrire = fopen('../Blog Posts/fichiernum.txt',"w"); ftruncate($ecrire,0); } ?>
S'il vous plait regardez encore.
Utilisateur anonyme
5 mars 2014 à 17:47
5 mars 2014 à 17:47
Il y a deux trucs que je ne comprends pas...
où est l'initialisation de $code1 dans ton nouveau code après initialisation $entier ?
Quand tu veux afficher la ligne en erreur, tu recommences tout le travail de lecture du fichier et de vérification dans la page qui affiche l'erreur ? Alors que tu l'as déjà fait dans la première page ?
où est l'initialisation de $code1 dans ton nouveau code après initialisation $entier ?
Quand tu veux afficher la ligne en erreur, tu recommences tout le travail de lecture du fichier et de vérification dans la page qui affiche l'erreur ? Alors que tu l'as déjà fait dans la première page ?
C'est fait, je initialisé $entier=0; mais ça ne change rien.
J'ai repris le code dans la deuxième page parce que tous ces fichiers ne sont pas dans le même dossier.
J'ai repris le code dans la deuxième page parce que tous ces fichiers ne sont pas dans le même dossier.
Utilisateur anonyme
5 mars 2014 à 18:43
5 mars 2014 à 18:43
je initialisé $entier=0;
Pourquoi ? Et ne réponds pas que c'est moi qui l'ai de mandé, je n'ai jamais demandé ça.
Désolé de ne pas pouvoir t'aider, je ne comprends rien à ce que tu fais.
Pourquoi ? Et ne réponds pas que c'est moi qui l'ai de mandé, je n'ai jamais demandé ça.
Désolé de ne pas pouvoir t'aider, je ne comprends rien à ce que tu fais.