[RESOLU] soucis de connexion espace membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] soucis de connexion espace membre

Re: soucis de connexion espace membre

par pacphil » 13 janv. 2013, 21:36

mon erreur viens de mon script de langue c'est cela qui me créer une erreur au fait , je recherche une solutions pour passer au dessus au résoudre cela.
Merci.

je suis dans un pays ou nous avons trois langue ,le Français , néerlandais , allemand , je recherche une solutions pour traité cela Merci

Re: soucis de connexion espace membre

par moogli » 13 janv. 2013, 20:29

salut,


ob_start() c'est pas forcément une solution, juste masquer le problème.

La solution c'est de voir ce qui s'affiche ligne 47 du fichier de langue (comme déja indiqué).

quand au "passage" de variable de session il faut t'expliquer un peu plus. A partir du moment où tu a mis un session_start() tu peux utiliser les infos dans le tableau $_SESSION.

@+

Re: soucis de connexion espace membre

par pacphil » 13 janv. 2013, 19:16

bonjour j'ai trouver une partie de mon soucis , un petit cout de pouce svp
<?PHP 
session_start();
ob_start(); 
include'sources/config.php';
include'lang/multi-lang.php';  ?>
il me reste a trouver comment faire passer les sessions
		$ipass = $_SERVER['REMOTE_ADDR'];
        $repaqui= date("Y-m-d");
        $repaheure= date("H:i:s");		
        if($form==0){			
        mysql_query("UPDATE comptes SET idm='".$idm."', ip='".$ipass."', quipass='".$repaqui."', heurepass='".$repaheure."' 
		WHERE pass='".$pass1."' AND email='".$email1."'") or die (mysql_error());					
						
	        //On enregistre son pseudo dans la session email et son identifiant dans la session
			
            $_SESSION['email'] = $email1;
            $_SESSION['password'] = $pass1;
		    header('Location: membre.php'); 

Re: soucis de connexion espace membre

par pacphil » 11 janv. 2013, 19:43

bonjour j'ai trouver ce qui ne fonction vraiment pas c'est le script avec les différentes langues et je voulais te dire merci Perine pour ton aide c'est sympa =D> =D> =D> =D>

si je fait passer les langues avec une define
/***********langue Fr************/
define("_HOME_HEAD", "H-immo");
define("_PAGE_CONNEXION", "CONNEXION");
define("_PAGE_RECHERCHE", "RECHERCHE");
define("_PAGE_WELCOME", "ACCUEIL ");
<?php
$lang_traduites = array(0 => 'fr', 1 => 'nl', 2=> 'de', 3=> 'en' );
$langue_defaut = $lang_traduites[0];

$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,2));

$lang =  !empty($_COOKIE['lang'])? $_COOKIE['lang'] : 0;
$lang =  !empty($_GET['lang'])? $_GET['lang'] : $lang;
$lang =  !empty($lang)? $lang : $lang_navig ;
$lang =  in_array($lang,$lang_traduites)? $lang : $langue_defaut;

if ((!empty($_GET['lang']) && in_array($_GET['lang'],$lang_traduites)) && (empty($_COOKIE['lang']) || 
    (isset($_COOKIE['lang']) && $_COOKIE['lang'] != $_GET['lang']))) setcookie('lang', $_GET['lang'], time() + 3600 * 24 * 365);

switch($lang)
           {
	case 'fr':
	include('francais-lang.php');
	break;
	case 'nl':
	include('neerlandais-lang.php');
	break;
	case 'de':
	include('deutch-lang.php');
	break;
	case 'en':
	include('anglais-lang.php');
	break;	
		   }
	
?>
C'est la que sa cale en fait je dois changer tous le script en dessous
<?php
/***********langue Fr************/
/**************membres.php**************/
$titre = "H-immo";
$new_pass = "Nouveau password";
$ajouterannonce = "Ajouter une annonce";
$valide = "Valider";
$email_lang = "E-mail";
$email_2_lang = "E-mail comparaison";
$nom_lang = "Nom";
$password = "Mot de Passe";
$sincrire = "S'inscrire.";
$text_inscri ="Vous n'etes pas autorisé à accéder à cette page.<br/>
Pour accéder à cette page, vous devez être membre";
////////////////page recherche//////////////////////
$typeRE = "Type de bien";
$paysRE = "Pays";
$regionRE = "Région";
$communeRE = "Commune";
$prixentreRE = "Prix entre";
$chambreRE = "Nombre de chambre";
$etRE = "Et";
$venteRE = "Vente";
$agenceRE = "Agence";
$enchereRE = "Enchère";
$notaireRE = "Notaire";
$partiRE = "Particulier";
$viaRE = "Viager";
///////////////////////////////////////////////////
$sk = "Code de sécurité";
$sk1 = "Vous ne pouvez pas lire l'image? cliquez sur";
$sk2 = "ici";
$sk3 = "pour rafraîchir";
$home= "HOME" ;
$annonce = "ANNONCE";
$Valider_recherche = "RECHERCHE";
$contact = "CONTACT";
$inscription = "INSCRIPTION";
$passperdu = "MOT DE PASSE PERDU";
$aide = "AIDE";
$dev_m = "DEVENEZ MEMBRE";
$connexion = "CONNEXION";
$detail_annonce = "DETAIL ANNONCE";
?>

Re: soucis de connexion espace membre

par Perine » 11 janv. 2013, 18:31

Vu que tu t'es donné la peine pour le reste, je vais l'expliquer tranquillement.

Les en-têtes sont comme leur nom le montre, des informations envoyées avant le corps - le contenu.
Un en-tête est tout ce qui est envoyé par header(), setcookie(), assez souvent session_start() et d'autres moins utilisées.

Un contenu du corps est de l'HTML, des espaces avant <?php ou après ?>

Si tu envois un contenu de corps, il n'est plus possible d'envoyer des en-têtes. Et donc, ce qu'il faut faire, c'est envoyer D'ABORD les en-têtes et seulement ENSUITE le corps. Si après ça, tu ne comprends pas, il faudra vraiment que tu me dises ce qui n'est pas clair dans cette explication.

Re: soucis de connexion espace membre

par pacphil » 11 janv. 2013, 17:50

j'ai trouver pour le PDO merci déjà pour cette info pour le replacement md5 aussi le soucis reste car la je suis dans les nuages pour mon erreur
$VALEUR_hote='localhost';
$VALEUR_port='port';
$VALEUR_nom_bd='nom_de_la_BDD';
$VALEUR_user='root';
$VALEUR_mot_de_passe='mot_de_passe';
$connexion = new PDO('mysql:host='.$VALEUR_hote.';port='.$VALEUR_port.';dbname='.$VALEUR_nom_bd, $VALEUR_user, $VALEUR_mot_de_passe);

$resultats=$connexion->query("SELECT membre FROM membres WHERE pass='mot_de_passe'");
$resultats->setFetchMode(PDO::FETCH_OBJ);
while( $ligne = $resultats->fetch() )
{
        echo 'Utilisateur : '.$ligne->membre.'<br>';
}
$resultats->closeCursor();
               
             // Creation d'un identifiant
               $tail = 8;
               $lett = "abcdefghijklmnopqrstuvwxyz0123456789";
               srand(time());
               for ($i=0;$i<$tail;$i++)
               {
               @$pass2.=substr($lett,(rand()%(strlen($lett))),1);
               }
               $pass1 = hash("sha512", $pass2);

Re: soucis de connexion espace membre

par pacphil » 11 janv. 2013, 17:45

C'est juste me montré l'erreur que je fait , pour ne plus la faire , je vous en remercie

Re: soucis de connexion espace membre

par Perine » 11 janv. 2013, 17:17

Non, tu dois utiliser hash() avec l'algo de SHA512.
Et pour ton erreur, je me répète pour la troisième (et dernière) fois : il ne faut pas envoyer de contenu au navigateur (HTML ou même des caractères blancs) avant les en-têtes. Sinon ça ne marche pas.
Et que tu sois pro ou non, ne change rien au fait que les fonctions mysql_ n'existeront plus dans deux ans (et disons 4 pour les hébergeurs qui se trainent toujours avec des versions préhistoriques).

Re: soucis de connexion espace membre

par pacphil » 11 janv. 2013, 17:03

le soucis je suis pas un pro mais un passionner de petite programmation donc pour le cryptage si je comprends bien , je ne changer que la fonction MD5 par celle indiqué au dessus . sha512 () au lieu md5()

Et pour mon erreur quel est la modification pour que cela passe correctement svp?

et aux niveau mysql quel serais les modification svp?

Re: soucis de connexion espace membre

par xTG » 11 janv. 2013, 15:09

Juste une correction de petite coquille de terme.
Dans le mot encryptage il fallait y lire hashage. :)

Re: soucis de connexion espace membre

par Perine » 11 janv. 2013, 15:06

Même erreur, tu fais apparaitre du contenu en accueil.php à la ligne 14. Je ne vais pas t'indiquer à chaque fois, où tu émets du contenu.

En local, il y a sûrement le message d'erreur, mais n'ayant pas activé l'affichage des warnings et notices, tu ne les vois pas.

Pour cela, tu dois écrire la ligne suivante tout au début du script :
error_reporting(-1);

Même si le message d'erreur n'est pas affiché, l'en-tête ne pourra quand même pas être envoyé.

En ce qui concerne le reste de ton code : il y a pas mal de trucs à corriger et à changer.
À commencer par l'utilisation de l'extension MySQL. Celle-ci est dépréciée à partir de PHP5.5 et sera retirée entièrement en PHP5.6 ou PHP6 (2 ans, grand maximum). Pour cela, je te conseille vivement d'abandonner cette extension et d'utiliser mysqli ou PDO à la place.
L'expression régulière pour vérifier l'adresse e-mail refuse des adresses étant tout à fait valides. La fonction filter_var($email, FILTER_VALIDATE_EMAIL); permet de le faire selon le standard des adresses e-mail du W3C.
Tu utilises une fonction d'échappement (mysql_real_escape_string) sur un résultat de md5() qui par définition ne renvoie que 16 caractères différents non dangereux. D'ailleurs md5() n'est pas un bon moyen d'encryptage. Je te conseille d'utiliser Sha512 avec un salage puissant (cf. hash()).
PHP_SELF peut être manipulé (même si ici, ça n'affecte pas la sécurité du code).

Re: soucis de connexion espace membre

par pacphil » 11 janv. 2013, 14:49

bonjour j'ai toujours cette erreur , aurait il une solutions svp? en local cela fonction super bien sur la toile j'ai cette erreur
Warning: Cannot modify header information - headers already sent by (output started at /customers/7/c/4/h-immo.be/httpd.www/accueil.php:14) in /customers/7/c/4/h-immo.be/httpd.www/accueil.php on line 153

Re: soucis de connexion espace membre

par Perine » 11 janv. 2013, 12:47

Le message d'erreur dit tout : un en-tête ne peut pas être envoyé à partir du moment où le corps du contenu a déjà été envoyé partiellement (ou même intégralement) au client.
Le message d'erreur t'indique même le fichier et la ligne où un contenu a été envoyé au client : lang/francais-lang.php à la ligne 47.

soucis de connexion espace membre

par pacphil » 11 janv. 2013, 12:37

bonjour voilà j'ai une erreur et je n'arrive pas à trouver la solution
Warning: Cannot modify header information - headers already sent by (output started at /customers/7/c/4/h-immo.be/httpd.www/lang/francais-lang.php:47) in /customers/7/c/4/h-immo.be/httpd.www/accueil.php on line 153
Merci pour votre aide
<?PHP 
if(!isset($_SESSION))
    {
    session_start();
    } 
include'lang/multi-lang.php';  
?>
<!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>
   <link rel="shortcut icon" href="design/favicon.ico" >
   <link rel="icon" type="image/gif" href="design/animated_favicon1.gif" >
   <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<title><?PHP echo $titre; ?>,<?PHP echo $connexion; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="verification" content="67f5d9617d8cc4d2f456905ff27459db" />
<meta name="Content-Language" content="fr">
<meta name="Description" content="Vos annonce gratuit en immobilière">
<meta name="Keywords" content="annonce gratuit immobilière,vente de Maison, location , tous bien , terrain à vendre, Gîte , Péniche à vendre.">
<meta name="Subject" content="Immobilier à vendre et à louer en Belgique">
<meta name="Copyright" content="DKL">
<meta name="Author" content="paquot">
<meta name="Identifier-Url" content="http://www.h-immo.be">
<meta name="Reply-To" content="[email protected]">
<meta name="Revisit-After" content="15 days">
<meta name="Robots" content="all">
<meta name="Rating" content="general">
<meta name="Distribution" content="global">
<meta name="DC.Title" content="h-immo">
<meta name="DC.Content-Type" content="UTF-8">
<meta name="DC.Content-Language" content="fr">
<meta name="DC.Description" content="Vos annonce gratuit en immobilière">
<meta name="DC.Keywords" content="annonce gratuit immobilière,vente de Maison, location , tous bien , terrain à vendre, Gîte , Péniche à vendre.">
<meta name="DC.Subject" content="immobilière,vente, location">
<meta name="DC.Copyright" content="DKL">
<meta name="DC.Author" content="paquot">
<meta name="DC.Identifier-Url" content="http://www.h-immo.be">
<meta name="DC.Reply-To" content="[email protected]">
</head>

<body>
<div id="main_container">
	    <div id="header">
        <?PHP include'logo.php'; ?>        
        <div id="menu">
            <ul>                                        
                <li><a class="current" href="accueil.php" title="<?PHP echo $home; ?>"><?PHP echo $home; ?></a></li>
                <li><a href="add_annonce_immo.php" title="<?PHP echo $ajouterannonce; ?>"><?PHP echo $annonce; ?></a></li>
                <li><a href="recherche.php" title="<?PHP echo $Valider_recherche; ?>"><?PHP echo $Valider_recherche; ?></a></li>
                <li><a href="contact.php" title="<?PHP echo $contact; ?>"><?PHP echo $contact; ?></a></li>

   
            </ul>
        </div>
        
    </div>
    
   <div id="pub"></div>
    
    <div id="main_content">
    	<div id="left_content">
        <h2>PUB</h2> 
        <div class="news">       	 
        <div align="center">
        <div align="center">
        <p>
        <!-- DEBUT du code HTML zanox-affiliate -->
<!-- (Le code HTML zanox-affiliate ne peut pas être modifié pour préserver une fonctionnalité parfaite !)-->
<a href="http://ad.zanox.com/ppc/?23733095C359628949T"><img src="http://ad.zanox.com/ppv/?23733095C359628949" align="bottom" width="236" height="60" border="0" hspace="1" alt="FR Image Banner 236 x 60"></a>
<!-- FIN du code HTML zanox-affiliate -->
</p>
<p>
<!-- DEBUT du code HTML zanox-affiliate -->
<!-- (Le code HTML zanox-affiliate ne peut pas être modifié pour préserver une fonctionnalité parfaite !)-->
<a href="http://ad.zanox.com/ppc/?23733113C253393539T"><img src="http://ad.zanox.com/ppv/?23733113C253393539" align="bottom" width="234" height="60" border="0" hspace="1" alt="Autolening Image Banner 234 x 60"></a>
<!-- FIN du code HTML zanox-affiliate -->
</p>
<p>
<!-- DEBUT du code HTML zanox-affiliate -->
<!-- (Le code HTML zanox-affiliate ne peut pas être modifié pour préserver une fonctionnalité parfaite !)-->
<img src="http://ad.zanox.com/ppv/?23733484C1389772936" align="bottom" width="1" height="1" border="0" hspace="1"><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH=234 HEIGHT=60><PARAM NAME=movie VALUE="http://banners.one.com/bannere/benl/234x60-benl.swf?clickTag=http://ad.zanox.com/ppc/?23733484C1389772936&ULP="><PARAM NAME=quality VALUE=high><PARAM NAME=bgcolor VALUE=#ffffff><EMBED src="http://banners.one.com/bannere/befr/234x60-befr.swf?clickTag=http://ad.zanox.com/ppc/?23733484C1389772936&ULP=" quality=high bgcolor=#ffffff width=234 height=60 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>
<!-- FIN du code HTML zanox-affiliate -->
</p>
<p>
<!-- DEBUT du code HTML zanox-affiliate -->
<!-- (Le code HTML zanox-affiliate ne peut pas être modifié pour préserver une fonctionnalité parfaite !)-->
<img src="http://ad.zanox.com/ppv/?23733490C1639509569" align="bottom" width="1" height="1" border="0" hspace="1"><script language="javascript" src="http://ad.zanox.com/ppv/images/programs/flash_load/flash_loader_ng.js"></script><script type="text/javascript">zxFlash("http://www.stormcba.nl/Essent/EssentBEaugustus2012/Banners/FR/essent_juli2012_sales_1_234x60_FR.swf", "http://www.stormcba.nl/Essent/EssentBEaugustus2012/Banners/FR/essent_juli2012_sales_1_234x60_FR.jpg", 234, 60, "opaque", "http://ad.zanox.com/ppc/?23733490C1639509569&ULP=", "XXX");</script><noscript><a href="http://ad.zanox.com/ppc/?23733490C1639509569&ULP=" target="_blank"><img src="http://www.stormcba.nl/Essent/EssentBEaugustus2012/Banners/FR/essent_juli2012_sales_1_234x60_FR.jpg" border="0" width="234" height="60" alt="FR Fallback Image"></a></noscript>
<!-- FIN du code HTML zanox-affiliate -->
</p>
<p>
<!-- DEBUT du code HTML zanox-affiliate -->
<!-- (Le code HTML zanox-affiliate ne peut pas être modifié pour préserver une fonctionnalité parfaite !)-->
<a href="http://ad.zanox.com/ppc/?23733516C100195051T"><img src="http://ad.zanox.com/ppv/?23733516C100195051" align="bottom" width="234" height="60" border="0" hspace="1" alt="Pret Perso Gif 234 x 60"></a>
<!-- FIN du code HTML zanox-affiliate -->
</p>

        </div>

          </div>
        </div>  
                 
        </div><!--end of left content-->



   	    <div id="right_content">
   	    <div class="rech_info_box">
	    <div class="contact_info_title"><?PHP echo $connexion; ?></div><!------Insetions des pages ---->

<?PHP  
include'sources/config.php';
    				
//On verifie que le formulaire a ete envoye
if(isset($_POST['email1'], $_POST['pass1']) and $_POST['email1']!='')
{

		 
        //On enleve lechappement si get_magic_quotes_gpc est active
                if(get_magic_quotes_gpc())
                {               
                $_POST['email1'] = stripslashes($_POST['email1']);
                $_POST['pass1'] = stripslashes($_POST['pass1']);
                }
	            $email1 = mysql_real_escape_string($_POST['email1']);
			    $pass1  =   mysql_real_escape_string(md5($_POST['pass1']));

    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email1']))
      {      
      //On verifie sil ny a pas deja un utilisateur inscrit avec l' email choisis
	  $texts_exist=mysql_query("SELECT * FROM comptes WHERE  pass='".$pass1."' AND email='".$email1."'") 
	  or die (mysql_error());
	  $test_nb=mysql_num_rows($texts_exist);
	  if(!$test_nb==0)
	  {	
	    //Creation idm session
	    $tail = 20;
	    $lett = "abcdefghijklmnopqrstuvwxyz0123456789";
	    srand(time());
	    for ($i=0;$i<$tail;$i++)
		{
		@$idm.=substr($lett,(rand()%(strlen($lett))),1);
		}
		$ipass = $_SERVER['REMOTE_ADDR'];
        $repaqui= date("Y-m-d");
        $repaheure= date("H:i:s");		
        if($form==0){			
        mysql_query("UPDATE comptes SET idm='".$idm."', ip='".$ipass."', quipass='".$repaqui."', heurepass='".$repaheure."' 
		WHERE pass='".$pass1."' AND email='".$email1."'") or die (mysql_error());					
						
	        //On enregistre son pseudo dans la session email et son identifiant dans la session
            $_SESSION['email'] = $email1;
            $_SESSION['password'] = $pass1;
		    header('Location: membre.php'); 
			ob_end_clean();
            //Si ca a fonctionne, on naffiche pas le formulaire
            $form = FALSE;
            }
            else
		    { 
            //Sinon on dit quil y a eu une erreur controle password email
            $form = TRUE;
            $message = 'Une erreur de connexion 2.';		
            }
            }	        
            else
		    { 			
            //Sinon on dit quil y a eu une erreur controle password email
            $form = TRUE;
            $message = 'Une erreur de connexion.';		
            }
            }	        
            else
		    { 			                             									 
            //Sinon on dit quil y a eu une erreur controle password email
            $form = TRUE;
            $message = 'L\'email est incorrect.';		
            }
            }	                  
            else
            {				
            $form = TRUE;
            }
            if($form)
            {
            //On affiche un message sil y a lieu
            if(isset($message))
            {
            echo '<div class="message" style="color:red;text-align:center;"><b>'.$message.'</b></div>';
            }     
   //On affiche le formulaire
   echo' <div align="center">
   <form method="post" action="'.$_SERVER['PHP_SELF'].'">
   <table style="width:350px;border:0;">
   <tr>
   <td style="height:180px;">
   <table style="width:100%; border:0px;">
   <tr>
   <td width="32%"><font><b>'.$email_lang.'</b></font></td>
   <td width="68%">';
   ?>
<input class="contact_input" type="text" name="email1" value="<?php if(isset($_POST['email1'])){echo $_POST['email1'];} ?>" style="width:160px;"">
   <?PHP
   echo'</td>
   </tr>
   <tr>
   <td width="32%"><font><b>'.$password.'</b></font></td>
   <td width="68%">';
   ?>
<input class="contact_input" type="password" name="pass1" value="<?php if(isset($_POST['pass1'])){echo $_POST['pass1'];} ?>" style="width:160px;">
   <?PHP
   echo'</td>
   </tr>
   </table>
   <table width="100%" border="0">
   <tr>
   <td style="height:26px; text-align:center">
   <input type="submit" name="valider" value="'.$valide.'">
   </td>
   </tr>
   </table>
   </td>
   </tr>
   </table>
   </form>
   </div>';   
}
 include_once'special/liens.php'; 
?> 
   	    </div><!-------fin de l'insertion des pages------>
        
    	</div><!--end of right content-->


    
    <div style=" clear:both;"></div>
    </div><!--end of main content-->
 

     <div id="footer">
     	<div class="copyright">
        <div align="left"><b>
        H-IMMO Cr&eacute;ateur DLK &copy; 2006&nbsp;-&nbsp;<?php echo date('Y'); //affichera l'année actuelle sur 4 chiffres ?> </b>
        <a href="http://pretty-rss.snyke.com/"><img src="http://pretty-rss.snyke.com/img/pretty-rss-button.png" border="0"></a></div>
        </div>     
    	<div class="footer_links"> 
        <a href="#">About us</a>
         <a href="#">Privacy policy</a> 
        <a href="contact.php">Contact us </a>
        

        </div>
    
    
    </div>     
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-29296707-2']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>
</div> <!--end of main container-->
</body>
</html>