{...} est une reference vers un hashtable anonyme, tu peux voir ca juste comme une adresse qui dit ou trouver la table en question, c'est donc cette adresse qu'il faut stocker.
Un hash s'initialiser au moyen d'une liste, tu verras d'ailleurs dans la doc que => est un synonyme pour "," (a une difference pret). Donc:
%hash = (a => 1, b => 2) -> BIEN
%hash = ('a', 1, 'b', 2) -> BIEN
$hash = {a => 1, b => 2} -> BIEN
%hash = { a => 1, b => 2} -> BAD!EVIL!NOCOOKIE!
Ceci est une horreur, ca "marche" mais ce que tu fais exactement est :
- Créer un hash structvar, avec un seul element donc la clé est une référence vers un hash anonyme, stringifiée, et la valeur est indéfinie, donc concrement:
$structvar{'HASH(0x12345678)'} = undef
- Rajouter ce hash à un tableau, ce qui fait que ton @TabVars contient maintenant : ('HASH(0x12345678)', undef).
Une référence est une valeur scalaire, donc il faut l'utiliser dans le bon contexte:
J'imagine que c'est un autre thread, faudrait peut etre donc reposter dans la bonne catégorie pour attirer le regard de ceux que ca interesse.
1 conseil: argumente tes "je n'arrive pas", donne des précisions, des exemples, dis ce qui ne va pas, ce que tu fais, ce que tu attends comme resultat et ce que tu as à la place, ca donnera envie a plus de monde de répondre.
Vu que ce que tu demandes est assez vague, la seule chose que je peux te dire pour l'instant c'est qu'il faut faire attention à un truc en CSS: les chemins des images dans les url(...), s'ils ne sont pas absolus, sont relatifs à la feuille de style elle-meme, et non pas au document html.
Les 2 facons de supprimer une db, pour autant que ca soit du MyIsam sont (la 2eme étant en dernier recours):
- DROP ta_db; depuis le shell mysql avec un compte ayant les droits nécessaires (root?)
- stopper le serveur, aller supprimer le repertoire contenant la db dans /var/lib/mysql (par defaut), relancer le serveur.
Regarde ce que les logs de proftpd ET de mysql disent, typiquement ca pourrait etre que ton serveur ftp n'arrive pas a se connecter a la DB mysql soit parce qu'il n'y a pas d'entrée pour ftp@localhost, soit parce que la version de hashage des passwords n'est pas compatible, soit encore parce qu'il essaye de se connecter en tcp alors que mysql n'ecoute que sur un socket unix...
- Que le hostname de ta machine soit bien mis à nommachine.adressemachine.net
- Que la machine puisse resolv nommachine.adressemachine.net (que celui-ci soit dans les /etc/hosts, typiquement pour 127.0.0.1, et qu'il soit le premier de la liste)
- Si malgré tout quand tu envoies un mail il te laisse un localhost.localdomain comme domaine d'origine (ca devrait pas arriver, faudrait trouver pourquoi...), rajoute un
private function __construct(){}
public static function create ($options=array()) {
global $context;
if(!class_exists($context)) {
throw new Exception("Cette classe n'existe pas");
}
return new $context($options);
}
}
-> $genre = 'chien'; $animal = Animal::create();
Seulement ca serait peut etre moins gruik de passer $context a create($context, $options = array()) et d'appeler Animal::create('chien');
"Data format error" en lui-meme n'est pas spécifique à un problème en particulier, mais tu devrais avoir un bounce avec une erreur un peu plus détaillée envoyé à www-data, donc regarde plutot dans ce mail, il y aura plus d'indiquations.
Pourquoi c'est mal? Parce que ca ne marchera que dans des cas triviaux.
Le probleme du HTML est qu'il a une structure recursive (et il correspond à la definition d'un CSL), et que meme si tu arrives à extraire des infos d'un document HTML avec des expressions régulières, ca ne pourra fonctionner que si tu es sur à 100% de ce que tu vas parser (d'ou mon "rigide").
Exemple (HTML valide):
<a href="</a>" <!-- >Ca pourrait s'arreter ici</a> --> >bleh<!-- ou encore ici... </a> --></a>
Tu n'arriveras jamais à t'en sortir avec une seule expression, du moins pas avec PCRE qui ne supporte pas les ??{}, tout simplement parce que tu n'as aucune idée de l'etat dans lequel tu te trouves au moment ou tu rencontres le 1er, 2eme, 3eme ou 4eme </a>
J'ai jamais dit que ma solution était bonne, j'ai juste répondu éxactement à ce qu'il voulait (un match, pistou.), à ses risques et périls.
ca va fonctionner, mais c'est généralement une très mauvaise idée de parser du html avec des expressions regulières, et ce que tu demandes la est tres rigide (par ex. quid si x et y ou top et left sont inversés, ou les différents attributs...?),je conseillerais plutot un parser html ou xml, ca doit bien exister en php :)
Apparemment le programme C sert de wrapper pour pouvoir lancer la commande en suid, vu que ca passera pas directement avec un script (ouais donc, pourquoi alors le script.. :))
Je ne connais pas vraiment les subtilités de SVN, mais en supposant qu'en theorie ca soit correct, je pencherais vers un bidouille a faire du coté de SELinux ou autre chose qui empecherait l'execution de ton prog C en tant que root (ce qui serait le cas par defaut avec par ex. une fedora).
Pour y voir un peu plus clair, essaye de logguer dans un fichier des getuid/geteuid ici et la...
Evite juste les recheches genre "perl mysql exemples" sur google, il vaut mieux lire et comprendre la doc que copier/coller du code d'autres personnes qui est majoritairement assez crapuleux :)
Juste un petit rappel pour la valeur de retour, elle est sur 8 bits et doit donc etre non signée et entre 0 et 255. Une condition qui teste si le process est sorti avec -1 ne sera jamais vraie. (-1 retournant 255)
Les mots de passes des versions recentes (>= 4.1.1) de mysql ne sont plus stockés de la meme facon (hash different) que les precedentes. Pour fixer ca, il y a deux solutions:
- mettre a jour tes libs mysql du coté client
- mettre a jour le mot de passe de l'utilisateur du coté serveur (ou recreer un compte) :
SET PASSWORD FOR 'root'@'10.19.X.X' = OLD_PASSWORD('bleh')
Posté par duaner .
En réponse au message urgence.
Évalué à 5.
2 petites suggestions:
1/ Il manque le login et le pass à ton connect(), tu l'as peut etre juste supprimé pour coller ton code
2/ Utiliser des placeholders ("?") plutot que de mettre directement les variables dans les queries, ne fut-ce que pour un minimum de securité et de clareté (perldoc DBI pour plus d'informations):
my $sql = qq { INSERT INTO foo (toto, tata) VALUES (?, ?) };
my $sth = $dbh->prepare($sql);
$sth->execute($data{'toto'}, $data{'tata'});
# A tout hasard...
Posté par duaner . En réponse au message "GTK devel packages" sous Debian Sarge. Évalué à 6.
[^] # Re: Trouvé
Posté par duaner . En réponse au message Récupérer les hash dans une liste de hash. Évalué à 3.
Un hash s'initialiser au moyen d'une liste, tu verras d'ailleurs dans la doc que => est un synonyme pour "," (a une difference pret). Donc:
%hash = (a => 1, b => 2) -> BIEN
%hash = ('a', 1, 'b', 2) -> BIEN
$hash = {a => 1, b => 2} -> BIEN
%hash = { a => 1, b => 2} -> BAD!EVIL!NOCOOKIE!
Voila
[^] # Re: Trouvé
Posté par duaner . En réponse au message Récupérer les hash dans une liste de hash. Évalué à 3.
Ceci est une horreur, ca "marche" mais ce que tu fais exactement est :
- Créer un hash structvar, avec un seul element donc la clé est une référence vers un hash anonyme, stringifiée, et la valeur est indéfinie, donc concrement:
$structvar{'HASH(0x12345678)'} = undef
- Rajouter ce hash à un tableau, ce qui fait que ton @TabVars contient maintenant : ('HASH(0x12345678)', undef).
Une référence est une valeur scalaire, donc il faut l'utiliser dans le bon contexte:
$structvar = { .... };
push(@TabVars, $structvar);
foreach my $ref (@TabVars) {...}
Je ne suis pas sur de la doc sur laquelle tu t'as basé, mais utilise plutot:
perldoc perlref
perldoc perlreftut
perldoc perldsc
perldoc perllol
Tout y est, sans erreur :)
# Plus possible?
Posté par duaner . En réponse au message Sendmail, redéfinition du From et pièces jointes. Évalué à 2.
Sinon, pour ne pas ré-inventer la roue, jette un coup d'oeil à MIME::Lite.
[^] # Re: "je n'y arrive pas" ?
Posté par duaner . En réponse au message pb de supression de BDD. Évalué à 2.
1 conseil: argumente tes "je n'arrive pas", donne des précisions, des exemples, dis ce qui ne va pas, ce que tu fais, ce que tu attends comme resultat et ce que tu as à la place, ca donnera envie a plus de monde de répondre.
Vu que ce que tu demandes est assez vague, la seule chose que je peux te dire pour l'instant c'est qu'il faut faire attention à un truc en CSS: les chemins des images dans les url(...), s'ils ne sont pas absolus, sont relatifs à la feuille de style elle-meme, et non pas au document html.
# "je n'y arrive pas" ?
Posté par duaner . En réponse au message pb de supression de BDD. Évalué à 2.
Les 2 facons de supprimer une db, pour autant que ca soit du MyIsam sont (la 2eme étant en dernier recours):
- DROP ta_db; depuis le shell mysql avec un compte ayant les droits nécessaires (root?)
- stopper le serveur, aller supprimer le repertoire contenant la db dans /var/lib/mysql (par defaut), relancer le serveur.
[^] # Re: Et dans les logs?
Posté par duaner . En réponse au message Problème ftp. Évalué à 1.
L'erreur d'ipv6 est probablement non critique.
# Et dans les logs?
Posté par duaner . En réponse au message Problème ftp. Évalué à 1.
Tout ca sera dit dans les logs :)
[^] # Re: logs
Posté par duaner . En réponse au message Non reception de mail. Évalué à 1.
- Que le hostname de ta machine soit bien mis à nommachine.adressemachine.net
- Que la machine puisse resolv nommachine.adressemachine.net (que celui-ci soit dans les /etc/hosts, typiquement pour 127.0.0.1, et qu'il soit le premier de la liste)
- Si malgré tout quand tu envoies un mail il te laisse un localhost.localdomain comme domaine d'origine (ca devrait pas arriver, faudrait trouver pourquoi...), rajoute un
dans ton sendmail.mc, et regénère le sendmail.cf
A essayer...
# gruik
Posté par duaner . En réponse au message "sur spécification" d'un objet. Évalué à 1.
-> $genre = 'chien'; $animal = Animal::create();
Seulement ca serait peut etre moins gruik de passer $context a create($context, $options = array()) et d'appeler Animal::create('chien');
[^] # Re: logs
Posté par duaner . En réponse au message Non reception de mail. Évalué à 2.
# Tous les details sur....
Posté par duaner . En réponse au message Longueur maximal des arguments. Évalué à 5.
[^] # Re: Ca ira, mais...
Posté par duaner . En réponse au message Help regexp. Évalué à 1.
Le probleme du HTML est qu'il a une structure recursive (et il correspond à la definition d'un CSL), et que meme si tu arrives à extraire des infos d'un document HTML avec des expressions régulières, ca ne pourra fonctionner que si tu es sur à 100% de ce que tu vas parser (d'ou mon "rigide").
Exemple (HTML valide):
<a href="</a>" <!-- >Ca pourrait s'arreter ici</a> --> >bleh<!-- ou encore ici... </a> --></a>
Tu n'arriveras jamais à t'en sortir avec une seule expression, du moins pas avec PCRE qui ne supporte pas les ??{}, tout simplement parce que tu n'as aucune idée de l'etat dans lequel tu te trouves au moment ou tu rencontres le 1er, 2eme, 3eme ou 4eme </a>
J'ai jamais dit que ma solution était bonne, j'ai juste répondu éxactement à ce qu'il voulait (un match, pistou.), à ses risques et périls.
# Ca ira, mais...
Posté par duaner . En réponse au message Help regexp. Évalué à 4.
<a\s+class="([^"]+)"\s+style="top:(\d+)px;\s+left:(\d+)px"\s+href="plip\.php\?x=(\d+)&y=(\d+)"\s*><img\s+src='img\/(\d+)\.png
ca va fonctionner, mais c'est généralement une très mauvaise idée de parser du html avec des expressions regulières, et ce que tu demandes la est tres rigide (par ex. quid si x et y ou top et left sont inversés, ou les différents attributs...?),je conseillerais plutot un parser html ou xml, ca doit bien exister en php :)
[^] # Re: Rien à voir
Posté par duaner . En réponse au message Auto deployement site web sous svn. Évalué à 2.
Je ne connais pas vraiment les subtilités de SVN, mais en supposant qu'en theorie ca soit correct, je pencherais vers un bidouille a faire du coté de SELinux ou autre chose qui empecherait l'execution de ton prog C en tant que root (ce qui serait le cas par defaut avec par ex. une fedora).
Pour y voir un peu plus clair, essaye de logguer dans un fichier des getuid/geteuid ici et la...
# subquery
Posté par duaner . En réponse au message Requête MYSQL: Distinct ? Group ?. Évalué à 2.
Si c'est le cas et que ton mysql est pas trop vieux (>= 4.1 il me semble), ceci ira :
select t1.*
from t t1, (select poste, max(annee) a from t group by poste) t2
where t1.poste = t2.poste
and t1.annee = t2.a;
Ya surement d'autres moyens :)
# ipac-ng
Posté par duaner . En réponse au message total débit journalier. Évalué à 1.
Ca c'est pas mal non plus, et facilement utilisable et integrable à mrtg ou autres
[^] # Re: Perl et MySQL
Posté par duaner . En réponse au message Perl et MySQL. Évalué à 1.
Evite juste les recheches genre "perl mysql exemples" sur google, il vaut mieux lire et comprendre la doc que copier/coller du code d'autres personnes qui est majoritairement assez crapuleux :)
[^] # Re: Désolé, mais...
Posté par duaner . En réponse au message 2 actions dans un "die". Évalué à 1.
Plus d'infos sur:
man 2 wait
perldoc perlvar -> chercher pour $?
[^] # Re: mysql_error();
Posté par duaner . En réponse au message Connexion base mysql. Évalué à 2.
- mettre a jour tes libs mysql du coté client
- mettre a jour le mot de passe de l'utilisateur du coté serveur (ou recreer un compte) :
SET PASSWORD FOR 'root'@'10.19.X.X' = OLD_PASSWORD('bleh')
cf. http://dev.mysql.com/doc/refman/5.0/en/old-client.html
# ncftpput / ncftpget
Posté par duaner . En réponse au message je voudrais telecharger le contenue d'une directory. Évalué à 1.
# Il manque des packages
Posté par duaner . En réponse au message pas de bibliotheque stdio. Évalué à 2.
Sous debian il faudra installer le package 'libc6-dev', sous fedora, 'glibc-headers', etc...
# Il te faut le module Mysql pour PHP...
Posté par duaner . En réponse au message Call to undefined function: mysql_escape_string() !!!. Évalué à 2.
[^] # Re: Super !
Posté par duaner . En réponse au message urgence. Évalué à 5.
1/ Il manque le login et le pass à ton connect(), tu l'as peut etre juste supprimé pour coller ton code
2/ Utiliser des placeholders ("?") plutot que de mettre directement les variables dans les queries, ne fut-ce que pour un minimum de securité et de clareté (perldoc DBI pour plus d'informations):
.