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 :

Erreur "Undefined index"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut Erreur "Undefined index"
    Bonjour,
    Je suis débutante en php, je voulais appliquer ce tuto
    mais quand j'affiche la page d'accueil ça m'affiche le contenu de page introuvable et une erreur Notice: Undefined index: page in C:\wamp\www\tp\index.php on line 41

    Voici ma page index.php
    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
    <!DOCTYPE HTML>
     
    <html>
     
    <head>
    <title>Titre de la page</title>
    <meta charset="utf-8">
    <meta name="description" content="description du site">
    <link type="text/css" rel="stylesheet" href="style.css" />
    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="navigation.js"></script>
    </head>
     
    <body>
    <?php
    if(isset($_GET['page'])) {
    	$page = $_GET['page']; }
    else {
    $page = "accueil"; }
    ?>
    <div id="page">
    <div id="top">
    <header>
    	<div id="logo">
    		<img src="images/logo.jpg" alt="" />
    	</div>
    </header>
     
    <div id="nav">
    	<ul>
    	<li><a href="accueil.html">Accueil</a></li>
    	<li><a href="services.html">Services</a></li>
    	<li><a href="references.html">Références</a></li>
    	<li><a href="contact.html">Contact</a></li>
    	</ul>
    </div>
    </div>
    <article>
    	<div id="contenu">
    	<?php
    	$page=strtolower($_GET['page']);
    	if(isset($page) && preg_match("/^[a-z0-9]+$/i",$page)){
    		if(file_exists("contenu/$page.html")){
    		include "contenu/$page.html";
    		}
    		else{
    		include "contenu/404.html";
    		}
    	}
    	else{
    		include "contenu/404.html";
    	}
    	?>
    	</div>
    	</article>
     
    <aside>
    	<ul>
    	<li>Forum</li>
    	<li>Blog</li>
    	<li>Liens utiles</li>
    	</ul>
    </aside>
     
    <footer>
    </footer>
     
    </div>
     
    </body>
     
    </html>
    Sachant que j'ai utilisé le fichier .htaccess suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9\-]*).html$ index.php?page=$1 [L]
    Je ne sais pas d'où vient l'erreur, si quelqu'un peut m'éclaircir je serai très reconnaissante

  2. #2
    Membre confirmé Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    J'ai changé la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $page=strtolower($_GET['page']);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['page'])){
    	$page=strtolower($_GET['page']);
    	}
    Donc l'erreur est disparue, mais ça m'affiche toujours la page 404.html
    Que dois-je faire? je ne sais pas si l'erreur vient du code php ou de l'ajax
    Voici mon code Ajax/Jquery:
    Code javascript : 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
    $(document).ready(function() {
    	$("#nav a").click(function() {
    		page=$(this).attr("href");
    		$.ajax({
    			url: "contenu/"+page,
    			cache:false,
    			success:function(html) {
    				afficher(html);
    			},
    			error:function(XMLHttpRequest, textStatus, errorThrown){
    				alert(textStatus);
    			}
    		});
    		return false;
    	});
    });
     
    function afficher(data){
    	$("contenu").fadeOut(500,function(){
    		$("#contenu").empty();
    		$("#contenu").append(data);
    		$("#contenu").fadeIn(1000);
    	});
    }

  3. #3
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Ta règle de réécriture dans ton fichier .htaccess est peut-être incorrecte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule ([a-zA-Z0-9\-]*)\.html$ index.php?page=$1 [L]
    En effet ^ est une ancre qui signifie début de la chaîne, or le nom du fichier n'est pas forcément au début du path. Autre chose, le point signifie n'importe quel caractère, pour écrire un point littéralement, tu dois l'échapper.

    Maintenant débusquer une erreur dans un code est une chose qui peut se faire seul. En PHP, il faut:
    • ajouter ini_set('display_errors', 'On'); au début de ton code, pour que toutes les erreurs et warnings s'affichent.
    • s'il y a des erreurs ou des warnings, attaques les dans l'ordre d'apparition. (en commençant par le premier)
    • vérifier que les variables ont bien les valeurs attendues en utilisant echo, print_r, var_dump
    • quand tu as un test conditionnel (if else, while, do ....) ajoute un petit echo 'BouchraBouchra'; pour savoir si le teste réussi ou échoue et dans quelle branche ça passe


    Un avis qui n'engage que moi: Je trouve que les tutoriels en vidéo en matière de programmation sont d'une piètre qualité pédagogique en comparaison avec des tutoriels écrits traitant des mêmes sujets . Pour être plus précis, je ne pense pas que ce soit un média adapté. Le fait que ce soit en vidéo laisse miroiter que l'apprentissage sera plus simple, plus rapide, qu'il se fera sans effort, ce qui est faux. Un tutoriel écrit à mon avis mobilise beaucoup plus d'attention et permet d'accéder à une information plus rapidement.

  4. #4
    Membre confirmé Avatar de bouchra19
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    merci cosmo pour ta réponse,
    en fait, tous ce basard vient d"un # que j'ai oublié de mettre dans le code Jquery

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

Discussions similaires

  1. [Tableaux] Erreur => 'Notice :Undefined index'
    Par leduc26 dans le forum Langage
    Réponses: 1
    Dernier message: 06/06/2007, 10h13
  2. Pb erreur Notice: Undefined index: pseudo
    Par PAINCO dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2007, 18h20
  3. Erreur de "Undefined index" sur HTTP_REFERER
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2005, 12h21

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