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

PHP & Base de données Discussion :

problème avec $_SESSION[numrows]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut problème avec $_SESSION[numrows]
    Bonjour à tous, j'ai repris un code PHP qui utilise ceci,
    empty($_SESSION[numrows]).
    Mais quand je le teste il ne tourne pas et je ne comprends pas pourquoi.
    Voici le code en lui même:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ol class="decimal"><li style=""><?php</li><li style="">session_start();
    </li><li style="">// Ouvre une session si non existante</li><li style="">if (empty($_SESSION[numrows])) {</li><li style="">	include("inc/param.php");</li><li style="">	mysql_connect($server,$user,$pass) or die("La connection au serveur a échouée.");</li><li style="">	mysql_select_db($base) or die("La connection à la base a échouée.");</li><li style="">	$query = "SELECT * FROM $table" or die("La sélection de la table a échouée.");</li><li style="">	$tableau_sql = mysql_query($query);</li><li style="">	$_SESSION[numrows] = mysql_numrows($tableau_sql);</li><li style="">	$_SESSION[numcols] = count($_SESSION[keys]);</li><li style="">	$_SESSION[colpass] = sizeof($_SESSION[keys])-1;</li><li style="">	for ($i=0;$i<$_SESSION[numrows];++$i) {</li><li style="">		for ($j=0;$j<$_SESSION[numcols];++$j) {</li><li style="">			$_SESSION[tableau][$i][$j] = mysql_result($tableau_sql,$i,$_SESSION[keys][$j]);</li><li style="">		}</li><li style="">	}</li><li style="">	mysql_close();</li><li style="">}</li><li style="">?></li></ol>
    Merci de m'aider.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Tu as bien regardé sur ta chaine de la requête SQL

    Indice pb $table
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    Pour commencer utilises les balises code pour ton code, ensuite il y a un certain nombre de variable de session utilisées qui ne sont pas déclarées dans ton code sauf si elles l'ont été dans un autre script et dans ce cas voici ton script corrigé :
    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
        <?php
        session_start();
     
        // Ouvre une session si non existante
        if (empty($_SESSION['numrows'])) {
        include("inc/param.php");
        mysql_connect($server,$user,$pass) or die("La connection au serveur a échouée.");
        mysql_select_db($base) or die("La connection à la base a échouée.");
        $query = "SELECT * FROM $table" or die("La sélection de la table a échouée.");
        $tableau_sql = mysql_query($query);
        $_SESSION['numrows'] = mysql_num_rows($tableau_sql);
        $_SESSION['numcols'] = count($_SESSION['keys']);
        $_SESSION['colpass'] = sizeof($_SESSION['keys'])-1;
        for ($i=0;$i<$_SESSION['numrows'];++$i) {
        for ($j=0;$j<$_SESSION['numcols'];++$j) {
        $_SESSION['tableau'][$i][$j] = mysql_result($tableau_sql,$i,$_SESSION['keys'][$j]);
        }
        }
        mysql_close();
        }
        ?>
    Développeur informatique contrarié...

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Merci à vous. J'ai effectivement modifier tout comme il se devait. A présent j'ai d'autre problèmes. Voici le code que j'utilise et les résultats du navigateur:

    code:
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php
    session_start();
     
     
    // Ouvre une session si non existante
     
    if (empty($_SESSION['numrows'])) {
    	include("inc/param.php");
    	mysql_connect($server,$user,$pass) or die("La connection au serveur a échouée.");
    	mysql_select_db($base) or die("La connection à la base a échouée.");
    	$query = "SELECT * FROM $table" or die("La sélection de la table a échouée.");
    	$tableau_sql = mysql_query($query);
     
    	$_SESSION['numrows'] = mysql_numrows($tableau_sql);
    	$_SESSION['numcols'] = count($_SESSION['keys']);
    	$_SESSION['colpass'] = sizeof($_SESSION['keys'])-1;
     
    	for ($i=0;$i<$_SESSION['numrows'];++$i) {
    		for ($j=0;$j<$_SESSION['numcols'];++$j) {
    			$_SESSION['tableau'][$i][$j] = mysql_result($tableau_sql,$i,$_SESSION[keys][$j]);
    		}
    	}
    	mysql_close();
    }
     
    ?>
     
    <HTML>
    <HEAD>
     
    <TITLE><? echo $_SESSION[title]; ?></TITLE>
    <META NAME="author" CONTENT="<? echo $_SESSION['author']; ?>">
    <META NAME="keywords" CONTENT="<? echo $_SESSION['keywords']; ?>">
    <META NAME="description" CONTENT="<? echo $_SESSION['description']; ?>">
     
    <STYLE TYPE="text/css">
     
    BODY 	{	background-color: <? echo $_SESSION[color1]; ?>;
    			color: #000000 ;
    			font-family: verdana, arial }
    A:link	{	color: #0000FF ;
    			text-decoration:none }
    A:hover {	color: #FF0000 ;
    			text-decoration:none }
    A:active {	color: #FF0000 ;
    			text-decoration:none }
    A:visited {	color: #0000FF ;
    			text-decoration:none }
     
    </STYLE>
     
     
    </HEAD>
     
    <BODY SCROLL="auto" LEFTMARGIN="15" RIGHTMARGIN="15" BOTTOMMARGIN="15" TOPMARGIN="15" MARGINWIDTH="15" MARGINHEIGHT="15">
     
    <TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" ALIGN="center" BGCOLOR="<? echo $_SESSION[color1]; ?>" CELLPADDING="0" CELLSPACING="0">
     
    <?php
     
    //	Ouverture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($file and $file!="infos") {echo "<TR ALIGN=\"center\" VALIGN=\"middle\"><TD>\n";}
     
     
    //	Switch des valeurs de la variable "file" passée dans l'URL
     
    switch ($file) {
        case "ajouter":	if ($_POST['pseudo']) {include "inc/ecrire1.php";} else {include "inc/lire1.php";} break;
        case "modifier":	if ($_POST['pseudo']) {include "inc/ecrire2.php";} elseif ($_POST['password']) {include "inc/lire2.php";} else {include "inc/identifier.php";} break;
        case "supprimer":	if ($_POST['password']) {include "inc/ecrire3.php";} else {include "inc/identifier.php";} break;
    	case "setup":		include "inc/setup.php"; break;
        case "infos":		include "inc/infos.php"; break;
    	case "aide":		include "inc/aide.php"; break;
    	default:		include "inc/main.php";
    	}
     
     
    //	Fermeture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($file and $file!="infos") {echo "</TD></TR>\n";}
     
    ?>
     
    </TABLE>
     
    </BODY>
    </HTML>
    Voici les erreurs renvoyées par le navigateur:


    1. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 63
    2. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 69
    3. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 70
    4. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 71
    5. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 72
    6. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 73
    7. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 74
    8. Notice: Undefined index: tableau in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\inc\main.php on line 11
    9. Notice: Undefined variable: file in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 81

  5. #5
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    il te manque encore des quottes pour les clés de tableaux :
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <?php
    session_start();
     
     
    // Ouvre une session si non existante
     
    if (empty($_SESSION['numrows'])) {
    	include("inc/param.php");
    	mysql_connect($server,$user,$pass) or die("La connection au serveur a échouée.");
    	mysql_select_db($base) or die("La connection à la base a échouée.");
    	$query = "SELECT * FROM $table" or die("La sélection de la table a échouée.");
    	$tableau_sql = mysql_query($query);
     
    	$_SESSION['numrows'] = mysql_numrows($tableau_sql);
    	$_SESSION['numcols'] = count($_SESSION['keys']);
    	$_SESSION['colpass'] = sizeof($_SESSION['keys'])-1;
     
    	for ($i=0;$i<$_SESSION['numrows'];++$i) {
    		for ($j=0;$j<$_SESSION['numcols'];++$j) {
    			$_SESSION['tableau'][$i][$j] = mysql_result($tableau_sql,$i,$_SESSION['keys'][$j]);
    		}
    	}
    	mysql_close();
    }
     
    ?>
     
    <HTML>
    <HEAD>
     
    <TITLE><? echo $_SESSION['title']; ?></TITLE>
    <META NAME="author" CONTENT="<? echo $_SESSION['author']; ?>">
    <META NAME="keywords" CONTENT="<? echo $_SESSION['keywords']; ?>">
    <META NAME="description" CONTENT="<? echo $_SESSION['description']; ?>">
     
    <STYLE TYPE="text/css">
     
    BODY 	{	background-color: <? echo $_SESSION['color1']; ?>;
    			color: #000000 ;
    			font-family: verdana, arial }
    A:link	{	color: #0000FF ;
    			text-decoration:none }
    A:hover {	color: #FF0000 ;
    			text-decoration:none }
    A:active {	color: #FF0000 ;
    			text-decoration:none }
    A:visited {	color: #0000FF ;
    			text-decoration:none }
     
    </STYLE>
     
     
    </HEAD>
     
    <BODY SCROLL="auto" LEFTMARGIN="15" RIGHTMARGIN="15" BOTTOMMARGIN="15" TOPMARGIN="15" MARGINWIDTH="15" MARGINHEIGHT="15">
     
    <TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" ALIGN="center" BGCOLOR="<? echo $_SESSION['color1']; ?>" CELLPADDING="0" CELLSPACING="0">
     
    <?php
     
    //	Ouverture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($file and $file!="infos") {echo "<TR ALIGN=\"center\" VALIGN=\"middle\"><TD>\n";}
     
     
    //	Switch des valeurs de la variable "file" passée dans l'URL
     
    switch ($file) {
        case "ajouter":	if ($_POST['pseudo']) {include "inc/ecrire1.php";} else {include "inc/lire1.php";} break;
        case "modifier":	if ($_POST['pseudo']) {include "inc/ecrire2.php";} elseif ($_POST['password']) {include "inc/lire2.php";} else {include "inc/identifier.php";} break;
        case "supprimer":	if ($_POST['password']) {include "inc/ecrire3.php";} else {include "inc/identifier.php";} break;
    	case "setup":		include "inc/setup.php"; break;
        case "infos":		include "inc/infos.php"; break;
    	case "aide":		include "inc/aide.php"; break;
    	default:		include "inc/main.php";
    	}
     
     
    //	Fermeture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($file and $file!="infos") {echo "</TD></TR>\n";}
     
    ?>
     
    </TABLE>
     
    </BODY>
    </HTML>
    mais comme je te l'ai dit tu as plein de variable non déclarées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['keys']
    $_SESSION['tableau']...
    $file
    Développeur informatique contrarié...

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Bien, j'ai corrigé tout ce qui a été dit, mais le problème persiste toujours.
    Au besoin voici les codes qui contiennent les variables déclarées.

    code1:
    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
     
    <?php
     
    //	AVERTISSEMENT : LISEZ BIEN LE README.TXT AVANT DE TOUCHER A CA !!!
     
     
     
     
    //	Pour la connection à MySQL
     
    $server = $_SESSION['server'] = "localhost";
    $user = $_SESSION['user'] = "root";
    $pass = $_SESSION['pass'] = "";
    $base = $_SESSION['base'] = "ma_database";
    $table = $_SESSION['table'] = "address_book";
     
     
     
     
    //	La constitution de la table et les superkeys (infos affichées dans main.php)
     
    //	Numéros des clés	0	1		2	3		4			5		6			7		8		9		10		11		12		
    $_SESSION['keys'] = array('id','pseudo','nom','prenom','anniversaire','adresse','telephone','telephone2','email','email2','messager','website','password');
     
    //	La longueur des différents champs (pour l'affichage des formulaires)
    // Pour le mot de passe on a 8 caracteres max car crypt() ne va pas au delà
    $_SESSION['keylenght'] = array(3,15,15,15,10,60,30,30,40,40,40,50,8);
     
    //	Indiquez ici les numéros des "superkeys" (les infos affichés dans main.php)
    $_SESSION['superkeys'] = array (1,6,8,10);
     
     
     
     
    //	La couleur principale : fond de la page et des tableaux (sauf celui de infos.php)
    $_SESSION['color1'] = "#FFFFFF";
    //	La couleur des lignes alternatives
    $_SESSION['color2'] = "#FBFBE7";
    //	La couleur de fond du tableau de infos.php
    $_SESSION['color3'] = "#FFFFC0";
     
     
     
     
    //	Les métas qui seront affichés dans l'entête de la page HTML
    $_SESSION['title'] = "SoULiAne's Adress Book";
    $_SESSION['author'] = "SoULiAne <cossa@ulp.u-strasbg.fr>";
    $_SESSION['keywords'] = "souliane, adresses, book, carnet";
    $_SESSION['description'] = "SoULiAne's Adress Book (SAB)";
     
     
     
     
    //	L'adresse email à contacter pour une attribution de nouveau mot de passe
    $_SESSION['mailpass'] = "mailto:cossa@ulp.u-strasbg.fr?subject=Adress_Book_Password"
     
    ?>

    code2:
    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
     
    <?php
     
    //	Inclusion des parametres pour la connection
     
    include "param.php";
     
     
    //	Creation de la table (longueur de password = 32, c'est pour héberger les mots de passes cryptés avec md5)
     
    mysql_connect($server,$user,$pass) or die("La connection au serveur a échoué.");
    mysql_select_db($base) or die("Impossible de sélectionner la base de donnée.");
    $query="CREATE TABLE $table (id int(3) NOT NULL auto_increment,pseudo varchar(15) NOT NULL,nom varchar(15) NOT NULL,prenom varchar(15) NOT NULL,anniversaire varchar(10),adresse varchar(60),telephone varchar(30),telephone2 varchar(30),email varchar(40),email2 varchar(40),messager varchar(40),website varchar(50),password varchar(32) NOT NULL,PRIMARY KEY (id),UNIQUE id (id))";
    if (mysql_query($query)) {echo "La table '$table' a été crée avec succès.";} else {echo"La table '$table'  n'a pas pu être crée (elle existe peut-être déjà).";}
    mysql_close();
     
    ?>

    code3:
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    <?php
     
    //	Variables
     
    $numrows = $_SESSION['numrows'];
    $keys = $_SESSION['keys'];
    $color1 = $_SESSION['color1'];
    $color2 = $_SESSION['color2'];
    $superkeys = $_SESSION['superkeys'];
    $colspan = count($_SESSION['superkeys'])+1;
    $tableau = $_SESSION['tableau'];
     
    ?>
     
     
     
    <!--	Première ligne : on affiche les "titres" (Pseudo, Telephone, Email...) et la version du projet	-->
     
    <TR ALIGN="center" VALIGN="middle">
    		<?php foreach ($superkeys as $numero) {echo "<TD><B>", ucfirst($keys[$numero]), "</B></TD>\n";} ?>
    		<TD>2.0</TD>
    </TR>
     
     
     
    <!--	Ligne horizontale	-->
     
    <TR VALIGN="middle"><TD COLSPAN="<?php echo $colspan; ?>"><HR SIZE="1"></TD></TR>
     
     
     
    <!--	Début du formulaire "formail"	-->
     
    <FORM ACTION="index.php?file=infos" NAME="formail" TARGET="infos" METHOD="post">
     
     
     
    <!--	Affichage des "super" infos personnelles, éléments elemail_X	-->
     
    <?php 
    	for ($i=0;$i<$numrows;++$i) {
    	echo "<TR HEIGHT=\"25\" ALIGN=\"center\" VALIGN=\"middle\" BGCOLOR=\""; if ($i%2==1) {echo $color1;} else {echo $color2;} echo "\">\n";
    	foreach ($superkeys as $numero) {
    		echo "<TD NOWRAP>", $tableau[$i][$numero], "</TD>\n";
    		}
    	echo "<TD><INPUT TYPE=\"checkbox\" NAME=\"elemail_$i\" checked onClick=\"return mailgen();\"></TD>\n</TR>\n";
    	}
    ?>
     
     
     
    <!--	Fin du formulaire "formail", ligne horizontale, début du formulaire "fortext"	-->
     
    </FORM>
     
    <TR VALIGN="middle"><TD COLSPAN="<?php echo $colspan; ?>"><HR SIZE="1"></TD></TR>
     
    <FORM NAME="fortext">
     
     
     
    <!--	Nouvelle ligne, liens de gestion sur une cellule 1*2	-->
     
    <TR ALIGN="center" VALIGN="middle">
     
    	<TD NOWRAP COLSPAN="<?php if($colspan<5) {echo "1";} else {echo "2";} ?>">
    		<A HREF="index.php?file=ajouter">Ajouter</A><BR>
    		<A HREF="index.php?file=modifier">Modifier</A><BR>
    		<A HREF="index.php?file=supprimer">Supprimer</A><BR><BR>
    		<A HREF="index.php?file=aide" TARGET="aide">Besoin d'aide ?</A>			
    	</TD>
     
     
     
    <!--	Champ de texte où s'affiche la liste d'emails	-->
     
    	<TD COLSPAN="<?php if($colspan<5) {echo "1";} else {echo $colspan-4;} ?>">
    		<TEXTAREA NAME="mailtext" COLS="40" ROWS="8" WRAP="on"></TEXTAREA>
    	</TD>
     
     
     
    <!--	Boutons du formulaire "fortext"	-->
     
    	<TD NOWRAP>
    		<INPUT TYPE="button" value="AFFICHER PLUS D'INFOS" OnClick="document.formail.submit();"><BR><BR>
    		<INPUT TYPE="button" VALUE="RESET" OnClick="document.fortext.mailtext.value='';">
    		<INPUT TYPE="button" VALUE="SELECTIONNER" OnClick="document.fortext.mailtext.select();"><BR><BR>
    		<A HREF="http://mobitag.opt.nc" TARGET="mobitag">Mobitag - OPT</A><BR>
    		<A HREF="http://services.sfr.fr/index.jsp?service=textoweb" TARGET="texto">Texto - SFR</A>
    	</TD>
     
     
     
    <!--	Bouton "Aucun" et "Tous" sur une cellule "2*1", fin de la ligne et du formulaire "fortext"	-->
     
    	<TD VALIGN="top">
    		<INPUT TYPE="button" NAME="aucun" value="Aucun" OnClick="return checknone();"><BR>
    		<INPUT TYPE="button" NAME="tous" value="Tous" OnClick="return checkall();">
    	</TD>
     
    </TR>
     
    </FORM>
     
     
     
    <!--	Javascripts et génération de la liste d'emails	-->
     
    <SCRIPT LANGUAGE="JavaScript">
     
    function mailgen() {
    	var listemail = "";
    	var tablemail = new Array();
    	<?php for ($i=0;$i<$numrows;$i++) {echo "tablemail[", $i, "] = \"", $tableau[$i][8], "\";\n";} ?>
        for (var j=0;j< <?php echo $numrows; ?> ;j++) {
    		var checkbox = "document.formail.elemail_" + j + ".checked==1";
            if (eval(checkbox) & tablemail[j]!="") listemail = listemail + tablemail[j] + ", ";
            }
    	var longueur = listemail.length - 2;
        document.fortext.mailtext.value = listemail.substring(0,longueur);
    	}
     
    function checknone() {
    	for (i=0; i < document.formail.elements.length; i++){document.formail.elements[i].checked=0;}
    	mailgen();
    	}
     
    function checkall() {
    	for (i=0; i < document.formail.elements.length; i++){document.formail.elements[i].checked=1;}
    	mailgen();
    	}
     
    mailgen();
     
    </SCRIPT>
    J'ai toujours les même erreurs dans le navigateur, j'ai regarder tout mes fichier mais je ne vois toujours rien surtout pour la variable $file.

  7. #7
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    remplace tout les $file par des $_GET['file']
    Développeur informatique contrarié...

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Il y a une très grande évolution dans les résultats mais le fait que les fichiers soient imbriqués crée encore certaine erreurs.
    J'ai modifier comme vous me l'avez dit, mais j'ai encore des erreurs. Les fichiers qui posent problèmes sont les suivant avec les codes et les erreurs.

    code1: fichier 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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php
    session_start();
     
     
    // Ouvre une session si non existante
     
    if (empty($_SESSION['numrows'])) {
    	include("inc/param.php");
    	mysql_connect($server,$user,$pass) or die("La connection au serveur a échouée.");
    	mysql_select_db($base) or die("La connection à la base a échouée.");
    	$query = "SELECT * FROM $table" or die("La sélection de la table a échouée.");
    	$tableau_sql = mysql_query($query);
     
    	$_SESSION['numrows'] = mysql_numrows($tableau_sql);
    	$_SESSION['numcols'] = count($_SESSION['keys']);
    	$_SESSION['colpass'] = sizeof($_SESSION['keys'])-1;
     
    	for ($i=0;$i<$_SESSION['numrows'];++$i) {
    		for ($j=0;$j<$_SESSION['numcols'];++$j) {
    			$_SESSION['tableau'][$i][$j] = mysql_result($tableau_sql,$i,$_SESSION['keys'][$j]);
    		}
    	}
    	mysql_close();
    }
     
    ?>
     
    <HTML>
    <HEAD>
     
    <TITLE><?php echo $_SESSION['title']; ?></TITLE>
    <META NAME="author" CONTENT="<?php echo $_SESSION['author']; ?>">
    <META NAME="keywords" CONTENT="<?php echo $_SESSION['keywords']; ?>">
    <META NAME="description" CONTENT="<?php echo $_SESSION['description']; ?>">
     
    <STYLE TYPE="text/css">
     
    BODY 	{	background-color: <?php echo $_SESSION['color1']; ?>;
    			color: #000000 ;
    			font-family: verdana, arial }
    A:link	{	color: #0000FF ;
    			text-decoration:none }
    A:hover {	color: #FF0000 ;
    			text-decoration:none }
    A:active {	color: #FF0000 ;
    			text-decoration:none }
    A:visited {	color: #0000FF ;
    			text-decoration:none }
     
    </STYLE>
     
     
    </HEAD>
     
    <BODY SCROLL="auto" LEFTMARGIN="15" RIGHTMARGIN="15" BOTTOMMARGIN="15" TOPMARGIN="15" MARGINWIDTH="15" MARGINHEIGHT="15">
     
    <TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" ALIGN="center" BGCOLOR="<?php echo $_SESSION['color1']; ?>" CELLPADDING="0" CELLSPACING="0">
     
    <?php
     
    //	Ouverture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($_GET['file'] and $_GET['file']!="infos") {echo "<TR ALIGN=\"center\" VALIGN=\"middle\"><TD>\n";}
     
     
    //	Switch des valeurs de la variable "file" passée dans l'URL
     
    switch ($_GET['file']) {
        case "ajouter":	if ($_POST['pseudo']) {include "inc/ecrire1.php";} else {include "inc/lire1.php";} break;
        case "modifier":	if ($_POST['pseudo']) {include "inc/ecrire2.php";} elseif ($_POST['password']) {include "inc/lire2.php";} else {include "inc/identifier.php";} break;
        case "supprimer":	if ($_POST['password']) {include "inc/ecrire3.php";} else {include "inc/identifier.php";} break;
    	case "setup":		include "inc/setup.php"; break;
        case "infos":		include "inc/infos.php"; break;
    	case "aide":		include "inc/aide.php"; break;
    	default:		include "inc/main.php";
    	}
     
     
    //	Fermeture de TR TD dans les cas generaux (sauf main et infos)
     
    if ($_GET['file'] and $_GET['file']!="infos") {echo "</TD></TR>\n";}
     
    ?>
     
    </TABLE>
     
    </BODY>
    </HTML>
    erreur affichée par le navigateur:
    Notice: Undefined index: pseudo in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\index.php on line 69

    code2: fichier lire1.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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    <?php
     
    // Variables
     
    $colpass = $_SESSION['colpass'];
    $keys = $_SESSION['keys'];
    $numrows = $_SESSION['numrows'];
    $color1 = $_SESSION['color1'];
    $tableau = $_SESSION['tableau'];
    $keylenght = $_SESSION['keylenght'];
     
    ?>
     
    <SCRIPT LANGUAGE="JavaScript">
     
    function ajout() {
    	var pseudo = document.forajo.pseudo.value;
    	<?php
    	for ($i=0;$i<$numrows;$i++) {
    		echo "if (pseudo == '", $tableau[$i][1], "') {alert('Le pseudo ' + pseudo + ' n\'est pas disponible.');} else \n";
    	}
    	?>
    	if (document.forajo.pseudo.value=='') {
    		alert('Erreur de saisie : veuillez choisir un pseudo.');
    	} else if (document.forajo.nom.value=='') {
    		alert('Erreur de saisie : veuillez entrer votre nom.');
    	} else if (document.forajo.prenom.value=='') {
    		alert('Erreur de saisie : veuillez entrer votre prénom.');
    	} else if (document.forajo.password.value!=document.forajo.passwordbis.value) {
    		alert('Erreur de saisie : veuillez retaper deux fois le même mot de passe.');
    		document.forajo.password.value='';
    		document.forajo.passwordbis.value='';
    	} else if (document.forajo.password.value=='') {
    		alert('Erreur de saisie : veuillez choisir un mot de passe compris entre un et huit caractères.');
    	} else {
    		document.forajo.submit();
    	}
    }
     
    </SCRIPT>
     
     
    <FORM NAME="forajo" ACTION="index.php?file=ajouter" METHOD="POST">
     
    <TABLE BORDER="0" ALIGN="center" BGCOLOR="<?php echo $color1; ?>" CELLPADDING="0" CELLSPACING="0">
    	<TR>
    		<TD COLSPAN="3">
    		<NOBR>Vous souhaitez ajouter vos coordonnées, veuillez remplir ces champs :</NOBR>
    		<BR><BR>
    		<HR SIZE="1">
    		</TD>
    	</TR>
     
     
    <?php
     
    //	Tous les champs sauf mot de passe
     
    for ($i=1;$i<$colpass;++$i) {
    	echo "<TR>\n";
    	echo "<TD>", ucfirst($keys[$i]), "</TD>\n";
    	echo "<TD WIDTH=\"30\">&nbsp;</TD>\n";
    	echo "<TD><INPUT TYPE=\"text\" NAME=\"", $keys[$i], "\" SIZE=\"", $keylenght[$i], "\" MAXLENGTH=\"", $keylenght[$i], "\"></TD>\n";
    	echo "</TR>\n";
    	}
     
     
     
    //	Cas spécial pour le mot de passe
     
    echo "<TR>\n";
    echo "<TD>", ucfirst($keys[$colpass]), "</TD>\n";
    echo "<TD WIDTH=\"30\">&nbsp;</TD>\n";
    echo "<TD><INPUT TYPE=\"password\" NAME=\"", $keys[$colpass], "\" SIZE=\"", $keylenght[$colpass], "\" MAXLENGTH=\"", $keylenght[$colpass], "\"></TD>\n";
    echo "</TR>\n";
     
    echo "<TR>\n";
    echo "<TD>", ucfirst($keys[$colpass]), "(bis)</TD>\n";
    echo "<TD WIDTH=\"30\">&nbsp;</TD>\n";
    echo "<TD><INPUT TYPE=\"password\" NAME=\"", $keys[$colpass], "bis\" SIZE=\"", $keylenght[$colpass], "\" MAXLENGTH=\"", $keylenght[$colpass], "\"></TD>\n";
    echo "</TR>\n";
     
    ?>
     
    <TR>
    	<TD COLSPAN="3">
    		<HR SIZE="1">
    		<FONT SIZE="-2"><NOBR>Note : les mots de passe sont cryptés et leur longueur ne doit pas dépasser huit caractères.</NOBR></FONT>
    	</TD>
    </TR>
    <TR>
    	<TD COLSPAN="3" ALIGN="center">
    		<BR><BR>
    		<INPUT TYPE="button" VALUE="ALLEZ ON AJOUTE MES INFOS" OnClick="return ajout();">
    	</TD>
    </TR>
     
    </TABLE>
     
    </FORM>
    erreur afficher dans le navigateur:Notice: Undefined index: tableau in C:\Program Files\EasyPHP-5.3.9\www\adresseTest\inc\lire1.php on line 9

    Existe t'il encore des choses que je devais faire et que je n'ai pas fait?

  9. #9
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Bien que celà fait longtemps pour le Php, j'ai un peu de mal avec ton code ...

    Tu as du GET et du POST pour un fichier index en live, je doute beaucoup pour le $_POST['pseudo' qu'il soit défini ...

    Je regarde ton code mais tu peux expliquer en quelques lignes le but de ton programme ? merci
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    case "ajouter":	
      if (isset($_POST['pseudo'])) include "inc/ecrire1.php";
      else include("inc/lire1.php");
    break;
    case "modifier":	
       if (isset($_POST['pseudo'])) include "inc/ecrire2.php";
       elseif (isset($_POST['password'])) include "inc/lire2.php";
       else include("inc/identifier.php"); 
    break;
    case "supprimer":
       if (isset($_POST['password'])) include "inc/ecrire3.php";
       else include("inc/identifier.php");
    break;
    Si je ne me trompe pas, ton index considère que ta variable $_POST existe déjà.
    Il faut donc lui préciser qu'elle peux ne pas exister.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour,

    Bien que celà fait longtemps pour le Php, j'ai un peu de mal avec ton code ...

    Tu as du GET et du POST pour un fichier index en live, je doute beaucoup pour le $_POST['pseudo' qu'il soit défini ...

    Je regarde ton code mais tu peux expliquer en quelques lignes le but de ton programme ? merci
    En fait j'essayes de faire un carnet d'adresse en PHP avec une base de données.

  12. #12
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Oui c bon j'ai compris ton pb ...

    En fouillant dans le code, en fait effectivement 'pseudo' n'existe pas car lors de la création du formulaire et dans ta boucle, tu commences à 2 !!!!

    Regardes bien ton ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for ($i=1;$i<$colpass;++$i) {
    	echo "<TR>\n";
    	echo "<TD>", ucfirst($keys[$i]), "</TD>\n";
    	echo "<TD WIDTH=\"30\">&nbsp;</TD>\n";
    	echo "<TD><INPUT TYPE=\"text\" NAME=\"", $keys[$i], "\" SIZE=\"", $keylenght[$i], "\" MAXLENGTH=\"", $keylenght[$i], "\"></TD>\n";
    	echo "</TR>\n";
    	}
    tu fais ++$i en commençant à 1 ::::: il est là ton bug
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2010
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Mais Monsieur, comment faire alors pour déclarer cette variable là, je ne vois pas s'il vous plait. Pouvez-vous m'aider?

  14. #14
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Et bien change ton ++$i en $i++ (faire attention à la borne sup) et il existera un INPUT de nom $keys[i]= 'pseudo' défini ...

    car $keys[2] donne 'pseudo' il me semble c vous même qui l'avez écrit !!!
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

Discussions similaires

  1. [MySQL] Problème avec les $_SESSION
    Par Clochette44 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 23/03/2012, 18h12
  2. Problème avec $_SESSION.
    Par dimitri13 dans le forum Langage
    Réponses: 7
    Dernier message: 27/02/2011, 19h17
  3. problème avec $_session
    Par gpsevasion dans le forum Langage
    Réponses: 2
    Dernier message: 22/01/2007, 12h05
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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