Aller au contenu

martin

Hubmaster
  • Compteur de contenus

    176
  • Inscrit(e) le

  • Dernière visite

Messages postés par martin

  1. Hello chapo, bon, pour la redirection, le plus simple serait quand même de faire un header_redirect non ? comme ca plus de problèmes de compatibilité js... bon, sinon, quelques petites remarques sur le design, les titres des colonnes de droite et de gauche ne sont pas alignés avec celle du centre, un problème de padding surement ;-)

  2. Sinon je pense que pour réussir à garder un site valide sur du long terme, il faut forcément passer par un cms si on ne veut pas perdre du temps à chaque mise à jour

    Je ne comprends pas ce point de vue. coder avec des normes ou sans ca ne prends pas plus de temps, il faut juste penser à valider pour vérifier les erreurs d'étourderie, c'est tout !

    Je ne vérifie que rarement les sites que je développe en xhtml1.0 strict, et quand je le fait j'ai rarement des erreurs.

    La vérification est importante quand on apprens les normes, ca permet de se corriger très rapidement. Et même par la suite car on n'est jamais à l'abri d'une faute toute simple... ;-)

  3. Bonjour,

    Apparement, du moment qu'il ne s'agit que d'un site informatif pas de problème, par contre pas le droit de faire de la publicité.

    L'affaire se corse puisqu'il s'agit d'une pharmacie ET d'une parapharmacie. et que les deux enseignes sont dans le même magasin !

    Le site pour la parapharmacie seul n'aurait pas posé de problème mais sachant que la pharmacie y est ratachée y'a t'il un risque ?

    Merci

  4. Bonjour,

    j'ai une chaine représantant l'id d'un div qui est de la forme :

    bwdegdgb_wbwbrb_bwberb_wereerb_wbebweb

    en fait, plusieur suite de lettres non accentuées ou chiffres séparées par des tirets.

    J'aimerai récuperer dans une autre chaine, juste la dernière partie de la chaine, située derrière le dernier _

    Mais comme le javascript n'est pas mon fort... j'ai bien du mal...

    Merci d'avance...

  5. Bonjour,

    Sans aucune formation, je code des sites complexes en PHP/MySQL/ECMAscript, mes pages sont valides XHTML 1.0strict et CSS2.0... ou XML pour les flux RSS... Je maitrise également Photoshop...

    Tout cela avec beaucoup de patience, mais, sans CDI depuis que j'ai décidé de m'orienter dans ce domaine... Une formation sur mon CV plairait peut être plus à un futur employeur.

    Mais méfie toi de certaines formations qui ne t'apprendrons pas grand chose, un ami à fait un BTS, et à sa sortie il en connait moins que ce que j'ai pu apprendre par moi même dans le même temps... :-(

    Dans tout les cas, bon courrage

  6. Le shéma de la table mysql :

    CREATE TABLE `nc_session` (
     `unique_id` int(5) unsigned NOT NULL auto_increment,
     `last_modification` datetime default '0000-00-00 00:00:00',
     `valid` enum('yes','no') NOT NULL default 'yes',
     `session_id` varchar(32) NOT NULL default '',
     `remote_addr` varchar(15) NOT NULL default '',
     `http_referer` varchar(100) NOT NULL default '',
     `session_data` text NOT NULL,
     PRIMARY KEY  (`unique_id`),
     KEY `session_key` (`session_id`),
     KEY `valid` (`valid`),
     KEY `valid_2` (`valid`)
    ) TYPE=MyISAM AUTO_INCREMENT=1;

    Voici les fonctions :

    function nc_session_open($path, $name)
    {
    return TRUE;
    }

    function nc_session_close()
    {
    return TRUE;
    }

    function nc_session_read($sess_id)
    {  
    $data = nc_requete_mysql("SELECT session_data FROM ".session_table." WHERE session_id = '".$sess_id."' and remote_addr ='".$_SERVER['REMOTE_ADDR']."' AND valid = 'yes'");
    if($data != TRUE)
     {
     return '';
     }
    if ($data['num_rows'] > 0)
     {
     return $data['result'][0]['session_data'];
     }
    else
     {
     return '';
     }
    }


    function nc_session_write($sess_id, $sess_data)
    {
    $sess_data = mysql_escape_string($sess_data);
    $sess_id = mysql_escape_string($sess_id);
    $data = nc_requete_mysql("SELECT unique_id FROM ".session_table." WHERE session_id = '$sess_id' AND valid = 'yes' AND remote_addr ='".$_SERVER['REMOTE_ADDR']."'");
    if($data != TRUE)
     {
     return FALSE;
     }
    if (isset($data['num_rows']) && $data['num_rows'] > 0)
     {
     $data = nc_requete_mysql("UPDATE ".session_table." SET session_data = '$sess_data', last_modification = now() WHERE session_id = '$sess_id'");
     }
    else
     {
     if(isset($_SERVER['HTTP_REFERER']))
     {
     $http_referer = $_SERVER['HTTP_REFERER'];
     }
     else
     {
     $http_referer = 'no_referer';
     }
     $data = nc_requete_mysql("INSERT INTO ".session_table."  (last_modification, valid, session_id, session_data, remote_addr, http_referer) VALUES (now(),'yes', '$sess_id', '$sess_data', '".$_SERVER['REMOTE_ADDR']."', '".$http_referer."')");
     }
    return TRUE;
    }


    function nc_session_destroy($sess_id)
    {
    $sess_id = mysql_escape_string($sess_id);
    $data = nc_requete_mysql("UPDATE ".session_table." SET valid = 'no' WHERE session_id = '$sess_id' and remote_addr ='".$_SERVER['REMOTE_ADDR']."'");
    if($data != TRUE)
     {
     return FALSE;
     }
    else
     {
     return TRUE;
     }
    }

    function nc_session_gc($maxlifetime)
    {
    $data = nc_requete_mysql("UPDATE ".session_table." set valid='no' WHERE last_modification < DATE_ADD(now(), INTERVAL -$maxlifetime SECOND)");
    $data = nc_requete_mysql("OPTIMIZE TABLE ".session_table);
    if($data != TRUE)
     {
     return FALSE;
     }
    else
     {
     return TRUE;
     }
    }

    il reste ensuite à mettre cette ligne avant l'appel à session_start :

    session_set_save_handler ('nc_session_open', 'nc_session_close', 'nc_session_read', 'nc_session_write', 'nc_session_destroy', 'nc_session_gc');

    Tu remarqueras que je fait aussi appel à une gestion personalisée des requetes mysql. je te met aussi le code ;-) :

    function nc_requete_mysql($requete)
    {
    global $nombre_requete_mysql;
       debug('Requete SQL', $requete);
    $mysql_link=mysql_connect(mysql_server, mysql_login, mysql_pass);
    if(!$mysql_link)
     {
     trigger_error ('Connection base MySQL impossible', E_USER_ERROR);
     }
    $base_link = mysql_select_db(mysql_base, $mysql_link);
    if(!$base_link)
     {
     trigger_error ('Connection table MySQL impossible', E_USER_ERROR);
     }
    $result=mysql_query($requete, $mysql_link);
    if(!$result)
     {
     trigger_error ('Requete MySQL impossible', E_USER_ERROR);
     }
    else
     {
     if(ereg('SELECT', $requete))
     {
     $i = 0;
     while($line = mysql_fetch_assoc($result))
       {
       foreach($line as $name => $value)
       {
       $data['result'][$i][$name] = $value;
       }
       $i++;
       }
     $data['num_rows'] = mysql_num_rows($result);
     }
     $data['nb_affected_rows'] = mysql_affected_rows($mysql_link);
     $data['insert_id'] = mysql_insert_id ($mysql_link);
     }
    mysql_close($mysql_link);
    $nombre_requete_mysql++;
    if(isset($data))
     {
     return $data;
     }
    else
     {
     return FALSE;
     }
    }

    Pour compter le nombre de membres conectés il suffit d'interroger la table sur le nombre de sessions valides. tu peux aussi decider de détruire les sessions au fur et à mesure au lieu de les invalider.

  7. Et j'ajouterai un argument en faveur de la liberté de l'utilisateur... le forcer à télécharger un pdf risque de l'embrouiller (pour certains utilisateurs novices) et risque de ne pas marcher derrière un proxy qui n'accepterai pas d'enregistrer un fichier, alors que sa lecture directement sur le net sera possible.

  8. Tout à fai d'accord avec Anonymus.

    Pour ce qui est de la concaténation, cela permet d'inclure une chaine à la suite d'une autre. mais dans ce cas pas besoin d'échapper cetains caractères. Alors que si ta variable est inserée dans une chaine, elle sera traitée, et si ele contient des quotes ou double quotes, cela risque de poser problème.

  9. Pour ceux qu'une autre solution interresserai, j'ai fait un systeme assez similaire. J'ai personnalisé mon gestionnaire de sessions, en le gérant avec MySQL. il ne me reste plus qu'a compter les sessions valides pour avoir le nombre de connectés, et lire le contenu des sessions pour avoir les noms des connecté ou tout autre renseignement passé en session ;-)

  10. oui, mais là pour mon xmlns, j'ai repris un lien dans un fil rss, que j'ai pris en exemple. Je dépends donc de ce lien. Comment en choisir un autre, en créer un...

    j'ai éssayé de prendre une référence sur le site du w3c, mais ca n'a pas marché...

    vais aller m'acheter un livre sur les rss et le xml moi...

  11. Merci, ca fait tout de suite plus propre ;-)

    Bon, je débute en xml, et pour le xmlns, j'en ai pris un au hasard. Quel est l'enjeu de ce truc ? j'ai pas trouvé de doc qui me le fasse comprendre. Qu'est ce que ca va changer que je mette celui ci ou un autre ?

  12. encore bonjour,

    je refait ma présentation, la vieille est plus valide, et comme maintenant je suis très attaché à la validation ;-)

    Donc, Martin toujours, ca ,ca n'a pas changé, J'habite à Nantes, 28 ans, webmaster freelance en recherhce de contrat ou d'emploi dans une SSII.

    Je travaille grace à monique à tout ce qui peut standardiser le web avec notament les normes css, xhtml, wai...

    Je travaille avec PHP et MySQL.

    Mes sites principaux sont dans ma signature ;-)

×
×
  • Créer...