LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 27/03/2007 à 21:45
probleme bbcode
Heu... ouais.

J'ai envie de dire que c'est normal.
T'as un problème de concaténation : ta fonction highlight_file n'est pas interprété par PHP car elle est "lue" comme une chaine de caractère par PHP.

C'est comme si tu faisais :

<?php
echo 'pom strlen(\'blu\');';
?>


Ben ca, ca n'affichera pas la longueur de la chaine, ca affichera "pom strlen('blu');".

Il faudrait faire :

<?php
echo 'pom '.strlen('blu');
?>


(pour que la concaténation soit prise en compte et que ca affiche "pom 3")

Mais bon, ca c'est une chose.

Le problème, c'est que dans ton cas, ca ne t'aidera pas, car pour faire ce que tu cherches à faire, un simple str_replace ne suffit pas.
Il faut faire une expression régulière avec un preg_replace_callback.

Je te conseille de lire le cours sur les expressions régulières.
LA GLOBULE
le 27/03/2007 à 19:10
Popup depuis un menu déroulant ?
C'est un problème de javascript et non de PHP.

En gros, tu dois mettre un attribut onchange sur ton menu déroulant, et dans ce onchange, et bien, tu ouvres une pop up avec un window.open, ou un truc du genre.
LA GLOBULE
le 26/03/2007 à 23:46
Erreur syntaxe mais ou ?
C'est pas dangereux en soit, mais c'est chiant si jamais un jour tu changes tes images de place.
Cela voudrait dire : modifier toutes les entrées en base.

Moi, je stockerais le minimum syndical en base : soit juste le chemin du fichier, voir même seulement le nom du fichier (si mes images sont dans un seul dossier, ce qui semble être ton cas, excepté le fait de la distinction maxi / mini, mais çà, tu n'as pas besoin du chemin de l'image pour savoir que si tu as une grande image dans maxi, ben théoriquement, tu as la même en petit dans mini).
LA GLOBULE
le 26/03/2007 à 23:29
Erreur syntaxe mais ou ?
Tu aurais vu ton erreur en faisant un echo $sql smiley

<?php
if(isset($_POST['photo_name'])&& $_POST['photo_name']!= "") {
include'connexiondb.php';

$date = date("Y-m-d H:i:s");
$lien='<a href="images/maxi/'.$_POST['photo_name'].'.gif"><img src="images/mini/'.$_POST['photo_name'].'.gif"></a>';

$sql = "INSERT INTO photo_lan VALUES('', '".mysql_escape_string($lien)."', '".mysql_escape_string($date)."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
mysql_close();
}
else {
echo'veuillez remplir tout les champs';
}
?>


PS : TOUJOURS escaper ce que tu mets dans une requête SQL !
PPS : mettre du html en base, c'est mal ©
LA GLOBULE
le 26/03/2007 à 16:01
Probleme avec exit()
C'est normal, exit() ou die() coupe l'exécution du script.

Par conséquent, tout ce qui suit est ignoré.

Que dire pour t'aider ? Enlever le exit() ?
LA GLOBULE
le 26/03/2007 à 14:17
Faille dans MySQL avec le md5 ?
Je viens de voir qu'il existait des décodeurs md5


Tu devrais lire une doc. sur le md5.
En effet, dès l'invention du md5, il existait déjà des "décodeurs" : la puissance de calcul des processeurs.

Je m'explique.

Le md5, c'est une technique de hachage, donc pour décoder, il faut soit brutforcer (tester toutes les possibles et voir si le md5 match ou non), soit avoir en sa possession, une base qui fait la corrélation entre une chaine en clair et son md5 (ce que tu as l'air de citer dans ton message).

md5 n'est pas infaillible : c'est une technique de hachage, par conséquent, deux chaines différentes peuvent avoir le même md5.

Ensuite, brutforcer un md5 qui d'origine fait 2 caractères, ca se trouve en 2 secondes, mais un mot de passe original qui fait 10 caractères, il faut s'accrocher quand meme (si jamais tu n'as pas de base qui fait le lien entre md5 et chaine en clair).

Donc je ne pense pas que les webmasters s'amusent à essayer de brutforcer tous les md5 qu'ils ont en base.
Sinon, ils les stockeraient directement en clair (ben ouais, c'est plus simple, pas besoin de déhacher :p).

PS : ce n'est pas une limite de MySQL, c'est juste MySQL qui ne fait qu'implémenter une technique de hachage connue.
LA GLOBULE
le 26/03/2007 à 13:33
les limites de MySQL
Regarde la doc MySQL sur la fonction EXPLAIN.
Elle te permet de voir l'algorithme qu'utilise MySQL pour résoudre tes SELECT et de voir aussi quels index il utilise, et le nombre estimé de lignes retournées.

La clé pour avoir des requêtes rapides, c'est d'utiliser de bons index et les clés primaires, et surtout d'arriver à estimer la taille de tes tables dans 6 mois.
En effet, dans le temps, il se peut que des requetes, meme avec des clés primaires, mettent du temps à s'executer, et dans ce cas, il faut penser à faire des tables temporaires ou de backup.

Mais rassure toi, avec un site perso, arriver à ces extrêmes est tout simplement extrêmement rare.
MySQL reste très rapide dans l'ensemble (si tu as bien pensé à ton schéma de base).

Si tu veux un ordre d'idée, au boulot, on a une base de données MySQL de 1 Tera octet (1 000 Go) qui se prend 1500 SELECT par seconde, et "çà ne bronche pas trop".
Donc tu peux y aller.

PS : attention, je le répète, tu peux y aller que si tes requêtes sont propres : clés primaires / index et EXPLAIN jolis qui utilisent tous des clés avec un nombre de rows retournés minimal (cf. doc pour les rows).
LA GLOBULE
le 21/03/2007 à 13:15
Fonction pour calculer un chiffre en tarologie
Tu peux faire ainsi :

<?php
function decompose_date($date) {
$temp = explode('.', $date);
$retour = 0;
foreach ($temp AS $chiffre) {
if (is_numeric($chiffre)) $retour = $retour + $chiffre;
}

return $retour;
}

function calcul_taro($nombre) {
$nombre = ''.$nombre;

if (strlen($nombre) > 1) {
$string = 0;
for ($i=0; $i<strlen($nombre); $i++) {
$string = $string + $nombre{$i};
}
$nombre = calcul_taro($string);
}
return $nombre;
}

echo calcul_taro(decompose_date('21.03.2007'));
?>


L'idée du truc, c'est de faire une fonction récursive : c'est à dire tant que ta somme est un nombre (au moins un chiffre), et bien il faut reprendre le calcul avec ce nombre jusqu'à tomber sur un chiffre unique.

PS : j'ai aussi mis dans le code, une fonction qui décompose la date comme tu le disais dans ton message, c'est à dire que le nombre de départ, c'est le jour plus le mois plus l'année.
LA GLOBULE
le 20/03/2007 à 18:39
La V4 !!!
Je suis aussi sous linux, et je n'ai pas ce problème.

A mon avis, c'est ton firefox qu'est bugué :)
LA GLOBULE
le 19/03/2007 à 18:01
La V4 !!!
La textearea a une taille prédéfinie pour rentrer en 800x600 pixels.

Pour ton problème d'insertion de message, je ne vois pas trop comment expliquer le problème vu que je n'ai rien changé.
LoadingChargement en cours