Probléme php

Fermé
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 9 sept. 2010 à 22:04
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 14 sept. 2010 à 19:26
Bonjour,

J'ai un petit problème avec un script php voici les messages d'erreur que je recoie:
Notice: Use of undefined constant page - assumed 'page' in .../blog.php on line 196
Notice: Undefined index: page in .../blog.php on line 196
Notice: Undefined offset: -1 in .../blog.php on line 202
Notice: Undefined offset: -2 in .../blog.php on line 202
Notice: Undefined offset: -3 in .../blog.php on line 202


Et voici le fichier qui poses problème ici :
http://media.n.free.fr/blog.txt

J'ai cherché quelle prouvé être la cause mais je ne vois pas se qui ne fonctionne pas donc si qu'elle qu'un à une solution je l'en remercie!
A voir également:

8 réponses

Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
Modifié par Stouffi le 9/09/2010 à 22:55
Salut,

$cur_page = $_GET[page] ? $_GET[page] : 1; 


Cette ligne contient deux erreurs ^^, deux fois la même.
La variable que tu passes en GET dans ton url est bien page MAIS !!!

$_GET est une variable PHP qui est en fait un array (une liste, ou un tableau à une dimension si tu préfères), un array "associatif", c'est à dire que pour accéder à un élément tu dois indiquer un label (ou un nom, ou une étiquette, bref...) qui est en fait un String (chaîne de caractères), soit une constante, soit une variable qui contient un String

une constante String en PHP est une chaîne de caractères délimitée par des simple quotes (ou double) exemple : 'page' ou "page"

Une variable PHP s'écrit avec un $ exemple : $page.

Mais si tu écris page seulement, PHP croit qu'il s'agit d'un nom de constante, mais tu ne l'as pas déclaré, donc il t'affiche l'erreur ligne 196.

Donc il faut écrire

$cur_page = $_GET['page'] ? $_GET['page'] : 1; 


Pour les erreurs lignes 202, peut-être que la correction de la première va les annuler, je n'ai pas regardé en détails cette ligne.

Bon c'était peut-être une erreur d'étourderie, je te prends pas pour un débutant mais, c'est aussi pour les autres ^^

Bye
1
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
10 sept. 2010 à 19:36
Oui c'est une erreur d'étourderie je vais continuer à les traqué car après modification je me retrouve avec une erreur :
Notice: Undefined index: page in .../blog.php on line 196

Et les autres sont toujours présente.

Je sais maintenant que l'erreur provient du faite que lors de l'affichage de la page en direct le get n'est pas dans l'url.
Pour éviter l'erreur il faudrait que la page envoie dont une variable même si il n'y a pas de get dans l'url ex:
Avec cette url pas d'erreur:
http://localhost/site/index.php?page
Mais avec celle-ci :
http://localhost/site/index.php

Donc pour résoudre le problème il faudrait que $_GET['page'] soit envoyé vide mais je ne vois pas comment faire car si je met :
$_GET['page'] = "";

Le script ne fonctionnera donc plus.
Je ne vois pas comment remplacé se get.
Ajouté une condition me semble assez compliquer si vous avez une idée ...

Sinon pour les erreurs de la ligne 202 je suis entrain de les revérifier ....

Merci pour ton aide!
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
12 sept. 2010 à 19:27
Je pense que la meilleure solution serait de faire un contrôle sur la variable :

...
if (!isset($_GET['page']) { // On vérifie si la variable n'existe pas
    $_GET['page'] = ""; // On initialise cette variable pour éviter les erreurs ^^
}
... // A partir de maintenant utiliser $_GET['page'] n'engendrera plus d'erreur.
0
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
13 sept. 2010 à 17:37
Salut,
Et une erreur de moi qui perturbera php bon.
La structure dans le fichier
if (!isset($_GET['page'])) {$_GET['page'] = "";}

Il manquai une petit parenthèse se qui ma un peu perturbé mais c'est corrigé.
Merci pour cette condition! Je n'y avais pas pensé.

Ensuite il me reste toujours se type d'erreur qui ne signifie rien pour moi ...
Notice: Undefined offset: -1 in

J'ai envie de les chassé j'ai déjà une solution radical qui est de
error_reporting(E_ALL ^ E_NOTICE);

Bien quelle cache les erreurs je les sais présente.
Dois-je continué à les terrasser ou sont-elles peut importante?
0

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

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 sept. 2010 à 17:57
ça doit te donner un numéro de ligne non ?

a mon avis c'est un pb avec une boucle
0
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
13 sept. 2010 à 18:43
J'ai pas redonner les n de lignes car c'est les même erreurs que ceux du premier poste à savoir:

Notice: Undefined index: page in .../blog.php on line 196
Notice: Undefined offset: -1 in .../blog.php on line 202
Notice: Undefined offset: -2 in .../blog.php on line 202
Notice: Undefined offset: -3 in .../blog.php on line 202



Les N° de ligne n'ont pas changer car je n'ai pas ajouter de retour a la ligne dans les précédente modif.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 sept. 2010 à 22:36
donnes nous le code de la ligne 202

(avec qqs unes avant et après)
0
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
14 sept. 2010 à 19:26
    for ($n=$start-1  ;  $n>=$end  ;  $n-- ) { 
        $blog = explode("|", $line[$n]);  //ligne 202
        
        if (isset($blog[0]) & $blog[0] != '') {
            
            $date = explode( ' ' , $blog[2]);


Pour plus de ligne le fichier en sa globalité est dans mon premier post.
0