Ses derniers sujets sur les forums
Et le sujet le plus inutile du site depuis longtemps ^^;
En hommage à notre
concordance, je propose de faire la fête ici et maintenant !
Ouais !!! \o/ !!!
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour à tous,
Il y a une grosse faille de sécu dans Dotclear. J'en ai été victime, ça m'apprendra à utiliser des outils tout faits.
L'
annonce. À noter que le « correctif » ne corrige rien, puisque je l'avais appliqué et que le hack fut effectué le 27 août.
Les symptômes sont un 403 lorsque vous accédez votre site, voir l'ensemble des sites. L'intrusion s'effectue via l'interface d'admin. Il semblerait que l'authentification ne soit pas requise... Sinon je ne vois pas comment ils seraient rentrés. Le bot modifie le .htaccess en ajoutant une règle de réécriture. Les visiteurs venant alors depuis les moteurs de recherche sont redirigés vers un site malveillant. Le .htaccess de votre DC ne sera pas le seul modifié.
Je vous déconseille l'usage de cette outil qui est donc une passoire (ce que je me suis dit quand j'ai audité le code, mais n'ayant rien de mieux...).
Et visiblement, les développeurs de Dotclear sont partisans de la
boîte noire, et montre bien leur incompétence en terme de sécurité informatique.
Alors qu'une annonce aurait dû être émise, pour que tout les utilisateurs de la solution soient au courant et suspendent leur serveur.
Merci DotClear.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour tout le monde,
J'ai créé les tables suivantes (j'élude volontairement les attributs qui ne sont pas pertinent ici :
create table accounts
( id integer auto_increment
, people_id integer default null
, username varchar(255) unique not null
, foreign key (people_id) references peoples(id)
, primary key (id)
) type='innodb' ;
create table peoples
( id integer auto_increment
, creator_account_id integer not null
, foreign key (creator_account_id) references accounts(id)
, primary key (id)
) type='innodb' ;
Le principe est le suivant. Sur le site, on créé un compte (table accounts) pour pouvoir se loguer. Lors de l'inscription, un compte est créé ainsi qu'un profil (table peoples). Un compte ne correspond pas forcément à un profil (par exemple, les comptes god et admin ne sont pas des personnes), mais un profil est forcément créé par un compte.
Comme je m'en doutais lorsque j'ai écris ces tables, on a droit à un joli deadlock lorsqu'on veut supprimer un compte.
Est-ce que c'est le genre de cas où la table de jointure est obligatoire ? Et est-ce que mes tables sont mal analysées, ou est-ce une limitation du modèle des contraintes SQL ?
Merci de vos réflexions !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Vous n'avez pas chômé ce moi-ci dans le forum, à croire que les stagiaires ont débarqué en force :-D
Pour ma part je suis retourné en Alsace, dans la famille comme on dit. Et je reviens roder et tancer dans le coin ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour,
Je souhaiterais utiliser la méthode indexOf sur les tableaux littéraux :
["toto", "tat", "titi" ].indexOf("toto")
Cependant la méthode n'existe que dans Gecko. Savez-vous si on peut rajouter une méthode aux types littéraux, comme on peut sur les objects ?
Array.prototype.indexOf = function() {...}
Merci de votre aide !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour à tous,
J'ai un p'tit problème de base. J'instancie un objet XHR , qui fonctionne parfaitement. Je peux l'utiliser une première fois. Par contre, si je tente de le réutiliser, en changeant l'URL de consultation ou non, l'événement readystatechange n'est pas propagé.
Est-ce qu'un objet XHR ne doit être utilisé qu'une seule fois ?
Y a-t-il moyen de réinitialiser l'objet, à l'aide de la méthode abort par exemple ?
Ou suis-je condamné à jeter une instance utilisée, tel une vulgaire capote.
Merci de votre avis :)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Hello,
Bien content que le site soit rétablit. Je m'inquiétais de son devenir !
Est-ce qu'on aura des détails pour abbreuver notre curiosité ?
Et merci.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bonjour,
J'ai un petit problème cosmétique. Voici, simplifié, la problématique :
Le document XML à importer :
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE adventures SYSTEM "adventures.dtd">
<adventures xmlns="adventures.dtd"
xmlns:html="http://www.w3.org/1999/xhtml">
<adventure id='adv-adoprixtoxis' kind='kind-sf'>
<title>Adoprixtoxis</title>
<synopsis>
<html:p>Une aventure spatiale !</html:p>
<html:p>Qui n'est pas terminée.</html:p>
</synopsis>
<opinion>
<html:p>Très bonne !</html:p>
<html:p>Mais faudrait en dire plus ;)</html:p>
</opinion>
</adventure>
</adventures>
La DTD qui dit comment qu'il doit être, mon XML :
<!ELEMENT adventures (adventure)+ >
<!ELEMENT adventure (title,synopsis,opinion) >
<!ATTLIST adventure id ID #IMPLIED >
<!ATTLIST adventure title CDATA #IMPLIED >
<!ATTLIST adventure kind IDREF #IMPLIED >
<!ELEMENT title (#PCDATA) >
<!ELEMENT synopsis (#PCDATA)+ >
<!ELEMENT opinion (#PCDATA)+ >
Le script, en exécution locale, qui permet de générer la page d'index :
<?php
$advsDoc = DomDocument::load('adventures.xml') ;
$advsListNode = $advsDoc->getElementsByTagName('adventure') ;
$templateDoc = DomDocument::load('idx-template.html') ;
$templateDoc->validate() ;
$contentNode = $templateDoc->getElementById('content') ;
$dlNode = $contentNode->ownerDocument->createElement('dl') ;
foreach($advsListNode as $advNode)
{
$filebase = $advNode->getAttribute('id') ;
$title = $advNode->getElementsByTagName('title')
->item(0)->nodeValue ;
$dtNode = $contentNode->ownerDocument->createElement('dt') ;
$ddNode = $contentNode->ownerDocument->createElement('dd') ;
$aNode = $contentNode->ownerDocument->createElement('a') ;
$aNode->nodeValue = "(…)" ;
$aNode->setAttribute('href', "$filebase.html") ;
$dtNode->nodeValue = "$title
:" ;
// $ddNode->nodeValue = "Premier p" ;
$pNode = $advNode->getElementsByTagName('synopsis')->item(0)
->getElementsByTagName('p')->item(0) ;
$pNode = $ddNode->ownerDocument->importNode($pNode, true) ;
$pNode->appendChild($aNode) ;
$ddNode->appendChild($pNode) ;
$dlNode->appendChild($dtNode) ;
$dlNode->appendChild($ddNode) ;
}
$contentNode->insertBefore($dlNode, $contentNode->lastChild) ;
$templateDoc->normalize() ;
$templateDoc->save("{$advsDir}index.html") ;
unset($templateDoc) ;
?>
Le template HTML de la page d'index :
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>Aventures MP3</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body>
<div id="body">
<div id="content">
<h1>Aventures.</h1>
<div class="section">
<p>
Voici la liste alphabétique des aventures
netophoniques
:
</p>
</div>
</div>
</body>
</html>
Le résultat :
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<title>Aventures MP3</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body>
<div id="body">
<div id="content">
<h1>Aventures.</h1>
<div class="section">
<p>
Voici la liste alphabétique des aventures
netophoniques
:
</p>
<dl><dt>Adoprixtoxis
:</dt>
<dd xmlns:html="http://www.w3.org/1999/xhtml">
<p xmlns:html="http://www.w3.org/1999/xhtml">Une aventure spatiale !
<a href="adv-adoprixtoxis.html">(…)</a></p></dd></dl>
</div>
</div>
</body>
</html>
Comme vous le constaterez, malgréle namespace commun, libxml me rajoute des déclarations XML. Avez-vous déjà rencontré le problème et résolu la chose de manière élégante ?
(Désolé de ne pas utiliser le Wall, mais il n'est pas très adapté à mon problème ;))
Merci !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Oui, j'ai honte, mais c'est pas grave, assez perdu de temps sur ce menu problème :
Comment obtenir le fichier et la ligne courante du script javascript, en cours d'utilisation.
Par exemple, en C ou en PHP, on a les macros/variables __FILE__ et __LINE__ prédéfinies. Quid en Javascript ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Salut,
J'ai un petit problème existentiel. J'ai un fichier XML qui sert de squelette. Dans celui-ci, je souhaite importer un fichier de données :
<?xml version="1.0"?>
<!DOCTYPE datas SYSTEM "../lib/xml/adventure.dtd">
<datas>
<adventure id="4" kind-id="1">
<title>Reflets d'acide.</title>
<synopsis></synopsis>
<critic></critic>
</adventure>
<kind id="1">
<title></title>
<content></content>
</kind>
</datas>
Pour ce faire j'ai le code suivant :
<?php
$wgDoc = DomDocument::load('page.wg.xml') ;
$advDoc = DomDocument::load('adventure.adv.xml') ;
@$wgDoc->validate() ;
@$advDoc->validate() ;
$finder = new DOMXPath($advDoc) ;
// extraction du premier nœud de données
$adv = $finder->evaluate('//adventure')->item(0) ;
$impAdv = $wgDoc->importNode($adv, true) ;
#var_dump($impAdv, $adv) ;
$menu = $wgDoc->getElementsByTagName('menu')->item(0) ;
// n'accepte malheuresement pas de namespace en argument :'(
$menu->appendChild($impAdv) ;
header('Content-type: text/xml') ;
echo $wgDoc->saveXML() ;
?>
Malheureusement, je ne parviens pas à trouver une méthode directe pour importer le fichier de données dans le fichier structurel en ajoutant un namespace distinct pour chacun. C'est important pour éviter les conflits de balise car le fichier issu est ensuite transformé à l'aide d'un fichier XSLT.
Faut-il que je surcharge la fonction appendChild pour ajouter la prise en compte d'un namespace ?
Merci pour vos conseils.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.