Problème de formulaire et de conditionnelles

habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009 - 11 sept. 2009 à 21:22
habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009 - 12 sept. 2009 à 18:45
Bonjour ,

Voilà , je galère avec la page suivante .
J'ai une condition qui affiche un formulaire de connexion lorsque personne n'est connecté , et un lien déconnexion le cas échéant .
Tout fonctionne parfaitement jusqu'à ce que j'insère dans la partie " connecté " une autre condition . Celle-ci doit afficher un bouton "suivre" lorsque le membre est connecté , et un lien "suivie " lorsque le membre a déjà cliqué sur le bouton "Suivre"
j'espère que je suis clair ?...
Le problème : lorsque je me connecte , je suis dirigé vers la page panier2 ? au lieu de la page index , comme je l'ai défini . De plus , le lien Se déconnecter apparait bien , mais je n'ai ni le bouton "Suivre " ( tant mieux ) ni le lien " Suivie " ????
Des pistouilles ?

HAbroc
<?php session_start(); ?>
<?php require_once('../Connections/facevspile.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Achat")) {
  $insertSQL = sprintf("INSERT INTO shop_panier (client, article, quantite) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['client'], "text"),
                       GetSQLValueString($_POST['article'], "int"),
                       GetSQLValueString($_POST['quantite'], "int"));

  mysql_select_db($database_facevspile, $facevspile);
  $Result1 = mysql_query($insertSQL, $facevspile) or die(mysql_error());

  $insertGoTo = "panier2.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$colname_Recordset2 = "-1";
if (isset($_GET['id'])) {
  $colname_Recordset2 = $_GET['id'];
}
mysql_select_db($database_facevspile, $facevspile);
$query_Recordset2 sprintf("SELECT * FROM shop_monnaies WHERE id %s", GetSQLValueString($colname_Recordset2, "int"));
$Recordset2 = mysql_query($query_Recordset2, $facevspile) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);

$paramclient_Panier = "0";
if (isset($_SESSION['MM_Username'])) {
  $paramclient_Panier = $_SESSION['MM_Username'];
}
$paramarticle_Panier = "0";
if (isset($_GET['id'])) {
  $paramarticle_Panier = $_GET['id'];
}
mysql_select_db($database_facevspile, $facevspile);
$query_Panier = sprintf("Select *  from shop_panier where client=%s and article=%s", GetSQLValueString($paramclient_Panier, "int"),GetSQLValueString($paramarticle_Panier, "int"));
$Panier = mysql_query($query_Panier, $facevspile) or die(mysql_error());
$row_Panier = mysql_fetch_assoc($Panier);
$totalRows_Panier = mysql_num_rows($Panier);
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['mail'])) {
  $loginUsername=$_POST['mail'];
  $password=$_POST['mdp'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "logout2.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_facevspile, $facevspile);
  
  $LoginRS__query=sprintf("SELECT mail, mdp FROM shop_client WHERE mail=%s AND mdp=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $facevspile) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<?php require_once('../Connections/facevspile.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css"> 
    <!-- 
    body  {
font: 100% Verdana, Arial, Helvetica, sans-serif;
background: #666666;
margin: 0; /* il est conseillé de mettre à zéro la marge et le remplissage de l'élément body, pour tenir compte des différentes valeurs par défaut des navigateurs */
padding: 0;
text-align: center; /* ce paramétrage centre le conteneur dans les navigateurs IE 5.x. Le texte est ensuite aligné à gauche (valeur par défaut) dans le sélecteur #container */
color: #000000;
border-bottom-width: 1px;
border-bottom-color: #000000;
border-bottom-style: solid;
    }
    
    /* Conseils pour cette mise en page hybride 
    1. La dimension de base (indiquée en ems) des colonnes latérales est basée sur la taille de police par défaut de l'utilisateur. Il est donc important de veiller à ce que les graphismes d'arrière-plan des colonnes en tiennent compte. Avec un codage correct, l'accessibilité est meilleure pour les utilisateurs ayant besoin de polices de grande taille, puisque la largeur des colonnes reste proportionnelle. Si ce choix est incompatible avec la mise en page voulue, il suffit d'indiquer la largeur en pixels et de modifier en conséquence la taille des marges du div #mainContent.
    2. La taille des colonnes latérales de cette disposition étant basée sur la taille à 100 % du texte dans l'élément body, si vous diminuez globalement la taille du texte en utilisant la propriété font-size: 80% pour l'élément body ou l'élément #container, n'oubliez pas que la largeur des colonnes sera proportionnellement réduite. Pour compenser cette réduction, il est conseillé d'augmenter leur largeur, ainsi que la taille des marges latérales de l'élément div #mainContent.
    3. Si la taille de police est modifiée individuellement dans chaque élément div au lieu d'une modification globale (par ex. : la taille de police de #sidebar1 est réduite à 70 % et celle de #mainContent à 85 %), ce choix modifiera proportionnellement la taille globale de chaque élément div. Il est conseillé de modifier la taille de police en fonction de la taille de police finale.
    4. L'élément div #container n'est pas nécessaire pour cette disposition avec la largeur 100 %. Toutefois, vous pouvez l'utiliser pour créer de fausses colonnes ou limiter la largeur de la mise en page.
    5. Il n'est pas nécessaire de définir une largeur de 100 % pour l'élément div #container puisque, par définition, un élément div utilise 100 % de l'espace disponible. Toutefois, sa présence ici permet si nécessaire de réduire plus aisément la taille du conteneur global (en laissant un peu de marge de part et d'autre).
    */
    .thrColHybHdr #container { 
    	width: 100%;
    	background: #FFFFFF;
    	/*margin: 0 auto;  les marges automatiques (et dotées d'une largeur positive) centrent la page si nécessaire */
    	text-align: left; /* ce paramétrage annule le paramètre text-align: center de l'élément body. */
    }  
    .thrColHybHdr #header {
padding: 0 10px;  /* ce remplissage correspond à l'alignement à gauche des éléments des div qui apparaissent en dessous. Si, au lieu de texte, c'est une image qui est insérée dans l'élément #header, il est conseillé de supprimer le remplissage. */
background-color: #FFFFFF;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #CCCCCC;
    } 
    .thrColHybHdr #header h1 {
    	margin: 0; /* la mise à zéro de la marge du dernier élément du div #header permet d'éviter une disparition de la marge (espace inexplicable entre les éléments div). Si l'élément div est entouré d'une bordure, cette précaution n'est pas nécessaire, car la bordure évite également la disparition de la marge */
    	padding: 10px 0; /* l'utilisation de remplissage, au lieu d'une marge, permet d'éloigner l'élément des bords de l'élément div */
    }
    
    /* Conseils pour sidebar1 :
    1. si vous définissez une valeur de taille de police pour cet élément div, la largeur totale de ce dernier sera ajustée en conséquence.
    2. Comme nous travaillons en ems, il est préférable de ne pas utiliser de remplissage pour l'encadré même. Pour les navigateurs conformes aux standards, il sera ajouté à la largeur, créant ainsi une largeur réelle inconnue. 
    3. Pour créer un espace entre le côté de l'élément div et les éléments qu'il contient, attribuez une marge gauche et une marge droite à ces éléments, comme dans la règle ".thrColHybHdr #sidebar1 p".
    */
    .thrColHybHdr #sidebar1 {
float: left;
width: 11em; /* la couleur de l'arrière-plan est affichée sur la largeur du contenu de la colonne, mais pas au-delà */
padding: 15px 0; /* le remplissage en haut et en bas crée un espace visuel à l'intérieur de cet élément div */
background-color: #ffffff;
    }
    .thrColHybHdr #sidebar2 {
    	float: right; 
    	width: 11em; /* cet élément est flottant, il faut donc lui attribuer une largeur */
    	background: #EBEBEB; /* la couleur de l'arrière-plan est affichée sur la largeur du contenu de la colonne, mais pas au-delà */
    	padding: 15px 0; /* le remplissage en haut et en bas crée un espace visuel à l'intérieur de cet élément div */
    }
    .thrColHybHdr #sidebar1 h3, .thrColHybHdr #sidebar1 p, .thrColHybHdr #sidebar2 p, .thrColHybHdr #sidebar2 h3 {
    	margin-left: 10px; /* il est conseillé d'attribuer des valeurs pour les marges gauche et droite de chaque élément qui sera placé dans les colonnes latérales */
    	margin-right: 10px;
    }
    
    /* Conseils pour mainContent :
    1. Si vous attribuez à cet élément div #mainContent une valeur de police différente de celle utilisée pour l'élément div #sidebar1, les marges de l'élément div #mainContent seront basées sur la taille de sa police, et la largeur de l'élément div #sidebar1 sera basée sur la taille de sa police. Il peut être utile de modifier les valeurs de ces éléments div.
    2. L'espace compris entre les éléments mainContent et sidebar1 est créé avec la marge gauche de l'élément div mainContent.  Quelle que soit la taille du contenu dans l'élément div sidebar1, l'espace des colonnes reste préservé. Vous pouvez supprimer cette marge gauche si vous souhaitez que le texte de l'élément div #mainContent remplisse l'espace de l'élément #sidebar1 lorsque le contenu de ce dernier se termine.
    3. Pour éviter une perte de l'élément flottant, il peut être nécessaire de faire des tests pour déterminer la taille maximale approximative de l'image ou de l'élément, car cette disposition est basée sur une combinaison de la taille de police par défaut de l'utilisateur et des valeurs que vous définissez. Toutefois, si la taille de police d'un utilisateur est inférieure à la taille normale, l'espace disponible dans le div #mainContent sera moins important que celui que vous verrez lors de vos tests.
    4. Dans le commentaire conditionnel pour Internet Explorer ci-dessous, la propriété zoom permet de donner à l'élément mainContent l'attribut "hasLayout." Cela évite l'apparition de plusieurs bogues spécifiques d'Internet Explorer.
    */
    .thrColHybHdr #mainContent {
     	margin: 0 12em 0 12em; /* la marge droite peut être indiquée en ems ou en pixels. Elle crée l'espace dans la partie inférieure du côté droit de la page. */ 
    	padding: 0 2em 0 2em; /* ce remplissage permet de créer un espace vide à l'intérieur du cadre. */
    } 
    .thrColHybHdr #footer {
padding: 0 10px;
background-color: #999999;
    } 
    .thrColHybHdr #footer p {
    	margin: 0; /* la mise à zéro de la marge du premier élément du pied de page permet d'éviter une possible disparition de la marge (espace entre les éléments div) */
    	padding: 10px 0; /* l'utilisation d'un remplissage pour cet élément crée un espace, tout comme une marge l'aurait fait, mais en évitant le risque de disparition de la marge */
    }
    
    /* Diverses classes à réutiliser */
    .fltrt { /* cette classe permet de rendre flottant le côté droit d'un élément dans la page. L'élément flottant doit précéder l'élément à côté duquel il doit se trouver dans la page. */
    	float: right;
    	margin-left: 8px;
    }
    .fltlft { /* cette classe permet de rendre flottant le côté gauche d'un élément dans la page */
    	float: left;
    	margin-right: 8px;
    }
    .clearfloat { /* cette classe doit être placée pour un élément div ou break et doit être l'élément final avant la balise de fin d'un conteneur qui doit contenir entièrement un élément flottant */
    	clear:both;
        height:0;
        font-size: 1px;
        line-height: 0px;
    }
#apDiv1 {
position:absolute;
width:148px;
height:734px;
z-index:1;
left: 16px;
top: 73px;
background-color: #ebebeb;
}
#apDiv2 {
position:absolute;
width:190px;
height:741px;
z-index:1;
left: 10px;
top: 370px;
background-color: #ebebeb;
}
.Style22 {	font-size: 90%;
font-weight: bold;
}
#apDiv108 {
position:absolute;
width:560px;
height:39px;
z-index:1;
left: 211px;
top: 370px;
background-color: #ebebeb;
}
#apDiv109 {	position:absolute;
width:539px;
height:25px;
z-index:1;
top: 9px;
left: 9px;
background-color: #ebebeb;
}
#apDiv83 {
position:absolute;
width:170px;
height:41px;
z-index:1;
background-color: #999999;
top: 13px;
left: 10px;
}
#apDiv84 {	position:absolute;
width:157px;
height:28px;
z-index:1;
left: 5px;
top: 10px;
}
.Style32 {
color: #FFFFFF;
font-size: 90%;
}
#apDiv85 {
position:absolute;
width:170px;
height:41px;
z-index:1;
left: 10px;
top: 76px;
background-color: #999999;
}
#apDiv86 {	position:absolute;
width:170px;
height:27px;
z-index:1;
left: -2px;
top: 8px;
}
#apDiv87 {
position:absolute;
width:170px;
height:41px;
z-index:1;
left: 10px;
top: 140px;
background-color: #999999;
}
#apDiv88 {	position:absolute;
width:182px;
height:28px;
z-index:1;
left: -5px;
top: 10px;
}
#apDiv81 {
position:absolute;
width:170px;
height:41px;
z-index:1;
top: 204px;
left: 10px;
background-color: #999999;
}
#apDiv82 {	position:absolute;
width:159px;
height:27px;
z-index:1;
left: 3px;
top: 9px;
}
#apDiv3 {
position:absolute;
width:562px;
height:407px;
z-index:2;
left: 212px;
top: 414px;
}
#apDiv4 {
position:absolute;
width:190px;
height:741px;
z-index:3;
left: 781px;
top: 370px;
background-color: #ebebeb;
}
#apDiv44 {
position:absolute;
width:292px;
height:19px;
z-index:1;
left: 362px;
top: 816px;
}
#apDiv95 {
position:absolute;
width:189px;
height:40px;
z-index:5;
left: 0px;
top: 0px;
background-color: #999999;
}
#apDiv96 {	position:absolute;
width:137px;
height:15px;
z-index:1;
left: 21px;
top: 10px;
}
#apDiv47 {
position:absolute;
width:560px;
height:39px;
z-index:1;
left: 211px;
top: 841px;
background-color: #ebebeb;
}
#apDiv45 {
position:absolute;
width:542px;
height:24px;
z-index:2;
left: 11px;
top: 9px;
}
#apDiv48 {
position:absolute;
width:560px;
height:36px;
z-index:1;
left: 211px;
top: 894px;
background-color: #ebebeb;
}
#apDiv46 {
position:absolute;
width:542px;
height:25px;
z-index:2;
left: 10px;
top: 7px;
}
#apDiv49 {
position:absolute;
width:560px;
height:167px;
z-index:1;
left: 211px;
top: 944px;
background-color: #ebebeb;
}
#apDiv50 {	position:absolute;
width:331px;
height:24px;
z-index:1;
left: 11px;
top: 7px;
}
#apDiv51 {	position:absolute;
width:540px;
height:122px;
z-index:2;
left: 11px;
top: 35px;
background-color: #FFFFFF;
border: 1px #000000;
}
#apDiv52 {	position:absolute;
width:524px;
height:113px;
z-index:1;
left: 16px;
top: 6px;
}
#apDiv35 {
position:absolute;
width:110px;
height:42px;
z-index:1;
left: 28px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv37 {
position:absolute;
width:60px;
height:23px;
z-index:5;
left: 184px;
top: -65px;
}
.Style25 {	color: #CC0000;
font-weight: bold;
}
#apDiv57 {
position:absolute;
width:164px;
height:40px;
z-index:1;
left: 13px;
top: 54px;
background-color: #FFFFFF;
}
#apDiv58 {	position:absolute;
width:146px;
height:30px;
z-index:1;
left: 8px;
top: 9px;
}
#apDiv53 {
position:absolute;
width:79px;
height:21px;
z-index:1;
left: 54px;
top: 105px;
}
#apDiv54 {
position:absolute;
width:164px;
height:30px;
z-index:1;
left: 13px;
top: 132px;
background-color: #FFFFFF;
}
#apDiv71 {	position:absolute;
width:138px;
height:20px;
z-index:1;
left: 13px;
top: 6px;
}
#apDiv69 {
position:absolute;
width:158px;
height:21px;
z-index:1;
left: 19px;
top: 176px;
}
#apDiv70 {
position:absolute;
width:126px;
height:25px;
z-index:1;
left: 50px;
top: 213px;
}
#apDiv62 {
position:absolute;
width:52px;
height:19px;
z-index:1;
left: 6px;
top: 471px;
}
#apDiv65 {
position:absolute;
width:74px;
height:18px;
z-index:1;
left: -10px;
top: 408px;
}
#apDiv63 {	position:absolute;
width:86px;
height:41px;
z-index:1;
left: 83px;
top: 459px;
background-color: #FFFFFF;
}
#apDiv64 {	position:absolute;
width:66px;
height:26px;
z-index:1;
left: 9px;
top: 9px;
}
#apDiv66 {	position:absolute;
width:86px;
height:41px;
z-index:1;
left: 82px;
top: 527px;
background-color: #FFFFFF;
}
#apDiv67 {	position:absolute;
width:70px;
height:25px;
z-index:1;
left: 3px;
top: 8px;
}
#apDiv78 {	position:absolute;
width:86px;
height:41px;
z-index:1;
left: 83px;
top: 594px;
background-color: #FFFFFF;
}
#apDiv79 {	position:absolute;
width:70px;
height:26px;
z-index:1;
left: 8px;
top: 9px;
}
#apDiv77 {
position:absolute;
width:81px;
height:26px;
z-index:1;
left: 4px;
top: 606px;
}
#apDiv72 {
position:absolute;
width:78px;
height:23px;
z-index:1;
left: 4px;
top: 682px;
}
#apDiv74 {
position:absolute;
width:86px;
height:41px;
z-index:1;
left: 29px;
top: 456px;
background-color: #FFFFFF;
}
#apDiv76 {	position:absolute;
width:54px;
height:30px;
z-index:1;
left: 10px;
top: 10px;
}
#apDiv5 {
position:absolute;
width:59px;
height:65px;
z-index:4;
left: 835px;
top: 74px;
}
.Style36 {color: #ebebeb}
#apDiv38 {
position:absolute;
width:20px;
height:20px;
z-index:6;
left: 14px;
top: 10px;
background-image: url(../images/k1545248.JPG);
}
#apDiv6 {
position:absolute;
width:62px;
height:24px;
z-index:5;
left: 67px;
top: 230px;
}
#apDiv9 {
position:absolute;
width:110px;
height:42px;
z-index:2;
left: 197px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv14 {
position:absolute;
width:73px;
height:26px;
z-index:5;
top: 11px;
left: -127px;
}
#apDiv23 {
position:absolute;
width:110px;
height:42px;
z-index:2;
left: 361px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv {
position:absolute;
width:73px;
height:25px;
z-index:5;
top: 230px;
left: 387px;
}
#apDiv25 {
position:absolute;
width:110px;
height:42px;
z-index:2;
left: 524px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv7 {
position:absolute;
width:96px;
height:25px;
z-index:5;
left: 536px;
top: 231px;
background-image: url(../images/fond%20arrondi%204.GIF);
}
#apDiv39 {
position:absolute;
width:110px;
height:42px;
z-index:7;
left: 687px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv41 {	position:absolute;
width:100px;
height:27px;
z-index:1;
left: 12px;
top: 10px;
}
#apDiv40 {
position:absolute;
width:110px;
height:42px;
z-index:1;
left: 863px;
top: 220px;
background-image: url(../images/Boutons/button%207.jpg);
}
#apDiv42 {
position:absolute;
width:68px;
height:22px;
z-index:5;
left: 889px;
top: 230px;
}
#apDiv8 {
position:absolute;
width:316px;
height:43px;
z-index:8;
left: 11px;
top: 305px;
}
a:link {
text-decoration: none;
color: #FFFFFF;
}
a:visited {
text-decoration: none;
color: #FFFFFF;
}
a:hover {
text-decoration: none;
color: #00ff66;
}
a:active {
text-decoration: none;
color: #FFFFFF;
}
#apDiv10 {
position:absolute;
width:145px;
height:163px;
z-index:3;
left: 810px;
top: 8px;
}
#apDiv11 {
position:absolute;
width:61px;
height:73px;
z-index:1;
left: 49px;
top: 69px;
}
#apDiv12 {
position:absolute;
width:200px;
height:160px;
z-index:9;
left: 163px;
top: 15px;
}
#apDiv13 {
position:absolute;
width:623px;
height:64px;
z-index:10;
left: 342px;
top: 304px;
}
#apDiv15 {
position:absolute;
width:140px;
height:17px;
z-index:10;
background-color: #666666;
}
body,td,th {
font-size: 100%;
}
#apDiv16 {
position:absolute;
width:637px;
height:62px;
z-index:11;
left: 335px;
top: 305px;
}
.Style41 {color: #999999}
#apDiv17 {
position:absolute;
width:648px;
height:62px;
z-index:10;
left: 228px;
top: 197px;
}
#apDiv18 {
position:absolute;
width:724px;
height:26px;
z-index:11;
left: 172px;
top: 224px;
}
#apDiv19 {
position:absolute;
width:725px;
height:83px;
z-index:12;
left: 172px;
top: 323px;
}
#apDiv20 {
position:absolute;
width:115px;
height:44px;
z-index:13;
left: 366px;
top: 428px;
}
#apDiv21 {
position:absolute;
width:86px;
height:22px;
z-index:1;
left: 13px;
top: 11px;
}
#apDiv22 {
position:absolute;
width:988px;
height:945px;
z-index:11;
}
#apDiv24 {
position:absolute;
width:146px;
height:47px;
z-index:11;
left: 811px;
top: 219px;
background-color: #999999;
}
.Style23 {font-size: 90%}
.Style42 {color: #FFFFFF}
#apDiv26 {
position:absolute;
width:200px;
height:115px;
z-index:12;
left: 635px;
top: 387px;
}
#apDiv27 {
position:absolute;
width:118px;
height:46px;
z-index:13;
background-color: #666666;
}
.Style43 {color: #CC0000}
    --> 
    </style>
<!--[if IE]>
    <style type="text/css"> 
    /* placer les corrections pour toutes les version d'IE dans ce commentaire conditionnel */
    .thrColHybHdr #sidebar1, .thrColHybHdr #sidebar2 { padding-top: 30px; }
    .thrColHybHdr #mainContent { zoom: 1; padding-top: 15px; }
    /* la propriété propriétaire zoom ci-dessus transmet à IE l'attribut hasLayout nécessaire pour éviter plusieurs bogues */
    </style>
    <![endif]-->
    <script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse mail valide.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' doit etre renseigné.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est obligatoire.\n'; }
    } if (errors) alert('Veuillez renseigner le(s) champs suivant(s):\n'+errors);
    document.MM_returnValue (errors '');
} }
//-->
</script>
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i[logout2.php Se déconnecter]

      <?php }?>
     
       


      
       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


       


      

        La charte .....Nous contacter ......Plan du site ......Heure officielle de Face vs Pile :. .


    
      <!-- fin de #footer -->

<!-- fin de #container -->
 

</html>
<?php
mysql_free_result($Recordset2);

mysql_free_result($Panier);

?>

7 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 sept. 2009 à 22:08
Salut,

Je n'ai parcouru très succinctement le code ( trop long pour moi ce soir)
Je ne comprends pas comment tu n'as pas d'erreur avec ça :
<?php if ($totalRows_Panier 0) { // Show if recordset empty ?>
> le tag de fermeture est dans le commentaire, donc n'est pas interprété.
Une erreur de copié / collé j'imagine ?


Cordialement,


Kohntark -
0
habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009
12 sept. 2009 à 06:31
bonjour ,

J'ai essayé hier soir de déplacer le tag , mais j'ai alors un parse error . Le form n'est plus interprété . Par ailleurs , je travaille avec dreamweaver ( je sais , les débutants ...) et la ligne que vous indiquez est un comportement de serveur de dream ...

HAbroc
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
12 sept. 2009 à 07:51
Bonjour,

Un "parse error" indique des erreurs dans le code, c'est la première chose à corriger.

Pour la lisibilité, la feuille de style ne devrait pas se trouver dans le code, mais dans un fichier genre style.css

Pou rle code PHP, il vaut mieux éviter le susines genre dreamweaver et utilise run bon viel éditeur à coloration syntaxique (notepad++ sous Windows, kwrite ou kate sous Linux pa sexemple), qui permettent de voir très vite les erreurs les plus grossières.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
12 sept. 2009 à 10:30
Re,

Oublie mon dernier commentaire, j'avais lu trop vite. Ce n'est pas une raison cependant pour que ça te fasse un parse_error.

Comme le dit très bien Nautilus, mets dans un autre fichier les styles (tu as vu la longueur de ton code ? ... ça ne motive pas à faire le tri)

Pour appuyer l'utilisation d'un éditeur avancé :
Evite à tout prix Dreamweaver : le code généré est lourd et peu lisible.
Il y a des absurdités, du code en double, du code qui ne sert à rien, des lignes invalides qui vont générer très bientôt des erreurs, des trucs obsolètes depuis PHP 4.3, des erreurs qui pourraient mener à des problèmes de sécurité, etc ... etc ...

En utilisant l'un des éditeurs déjà cités (j'ajouterai PSPad) ton code devrait tenir sur une petite centaine de lignes, serait bien plus lisible, donc plus simple à débogguer.


lorsque je me connecte , je suis dirigé vers la page panier2 ? au lieu de la page index comme je l'ai défini

Sauf qu'il y a ça avant :
$insertGoTo = "panier2.php";
    if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));


Commence par là à mon avis, car cette portion de code est exécutée puisque la variable POST "MM_insert" existe et vaut 'achat' (champ hidden de ton formulaire)


Cordialement,

Kohntark -
0

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

Posez votre question
habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009
12 sept. 2009 à 13:47
bonjour ,

Déjà , merci pour vos réponses rapides .
J'ai modifié ma page en suivant les conseils .
Désormais , le formulaire de connexion s'affiche correctement . Losque je me connecte , je suis dirigé vers la page index .
Lorsque je retourne sur la page , j'ai le lien de déconnexion ; mais point de bouton "Suivre" ...

HAbroc

<?php session_start(); ?>
<?php require_once('../Connections/facevspile.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['mail'])) {
  $loginUsername=$_POST['mail'];
  $password=$_POST['mdp'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "logout2.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_facevspile, $facevspile);
  
  $LoginRS__query=sprintf("SELECT mail, mdp FROM shop_client WHERE mail=%s AND mdp=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $facevspile) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<?php 
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Achat")) {
  $insertSQL = sprintf("INSERT INTO shop_panier (client, article, quantite) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['client'], "text"),
                       GetSQLValueString($_POST['article'], "int"),
                       GetSQLValueString($_POST['quantite'], "int"));

  mysql_select_db($database_facevspile, $facevspile);
  $Result1 = mysql_query($insertSQL, $facevspile) or die(mysql_error());

  $insertGoTo = "panier2.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$colname_Recordset2 = "-1";
if (isset($_GET['id'])) {
  $colname_Recordset2 = $_GET['id'];
}
mysql_select_db($database_facevspile, $facevspile);
$query_Recordset2 sprintf("SELECT * FROM shop_monnaies WHERE id %s", GetSQLValueString($colname_Recordset2, "int"));
$Recordset2 = mysql_query($query_Recordset2, $facevspile) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);

$paramclient_Panier = "0";
if (isset($_SESSION['MM_Username'])) {
  $paramclient_Panier = $_SESSION['MM_Username'];
}
$paramarticle_Panier = "0";
if (isset($_GET['id'])) {
  $paramarticle_Panier = $_GET['id'];
}
mysql_select_db($database_facevspile, $facevspile);
$query_Panier = sprintf("Select *  from shop_panier where client=%s and article=%s", GetSQLValueString($paramclient_Panier, "int"),GetSQLValueString($paramarticle_Panier, "int"));
$Panier = mysql_query($query_Panier, $facevspile) or die(mysql_error());
$row_Panier = mysql_fetch_assoc($Panier);
$totalRows_Panier = mysql_num_rows($Panier);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css"> 
    <!-- 
    body  {
}
.Style43 {color: #CC0000}
    --> 
    </style>
<!--[if IE]>
    <style type="text/css"> 
    /* placer les corrections pour toutes les version d'IE dans ce commentaire conditionnel */
    .thrColHybHdr #sidebar1, .thrColHybHdr #sidebar2 { padding-top: 30px; }
    .thrColHybHdr #mainContent { zoom: 1; padding-top: 15px; }
    /* la propriété propriétaire zoom ci-dessus transmet à IE l'attribut hasLayout nécessaire pour éviter plusieurs bogues */
    </style>
    <![endif]-->
    <script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse mail valide.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' doit etre renseigné.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est obligatoire.\n'; }
    } if (errors) alert('Veuillez renseigner le(s) champs suivant(s):\n'+errors);
    document.MM_returnValue (errors '');
} }
//-->
</script>
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i[logout2.php Se déconnecter]

     <?php }?>
     
       


      
    

      

        La charte .....Nous contacter ......Plan du site ......Heure officielle de Face vs Pile :. .


    
      <!-- fin de #footer -->

<!-- fin de #container -->
 

</html>
<?php
mysql_free_result($Recordset2);

mysql_free_result($Panier);

?>
0
habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009
12 sept. 2009 à 18:18
Je viens de faire quelques modifs ( voir code en suivant ) .
J'ai presque le résultat escompté .
En effet , le Bouton " Suivre " s'affiche quand je suis connecté en meme temps que le lien "Se déconnecter", et devient "Suivie" lorsque je retourne sur la page . l'objet est bien présent dans la page panier ...
Mais , GROS problème ! Lorsque je me connecte avec un autre profil , l'objet s'affiche en tant que " Suivie" ???
Pourtant dans ma BDD , shop_panier présente bien l'objet avec client = MM_Username du premier profil ?

  <?php if (!isset($_SESSION['MM_Username'])) { ?>
      

        <form id="login" name="login" method="POST" action="<?php echo $loginFormAction; ?>">
          eMail
          
          Mot de passe
  
  


        </form>
      
<?php } ?>
       <?php if (isset($_SESSION['MM_Username'])) { ?>
      

<form id="Achat" name="Achat" method="POST" action="<?php echo $editFormAction; ?>">
  <?php if ($totalRows_Panier == 0) { // Show if recordset empty ?>
    " />
    " />
    
    <label>
    
    </label>
    
      
    


    <?php } // Show if recordset empty ?>
   


  <?php if ($totalRows_Panier > 0) { // Show if recordset not empty ?>
    Suivie


    <?php } // Show if recordset not empty ?>
 


        </form>


      

     [logout2.php Se déconnecter]

     <?php }?>
0
habroc Messages postés 31 Date d'inscription mercredi 25 mars 2009 Statut Membre Dernière intervention 21 septembre 2009
12 sept. 2009 à 18:45
ça marche !!!

J'avais déclaré paramclient en int au lieu de text ...

Maintenant , tout marche parfaitement .


Merci néanmoins pour votre aide qui m'a permis de me mettre sur la piste ...

HAbroc
0
Rejoignez-nous