BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
20 sept. 2011 à 18:10
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 2014
-
22 sept. 2011 à 23:18
Hello,
Je rencontre actuellement un problème que je ne parviens pas à résoudre :
J'ai une base de données qui contient différentes informations du type "pseudo", "age", "ville", etc., ainsi que les urls des photos de chaque membre (enfin urls que je recrée suivant les données lors de la construction de ma page).
Bref, c'est justement concernant l'affichage des photos que je coince :
En fait j'essaie de crypter l'url des photos afin que celles-ci soient plus délicates à enregistrer sur n'importe quel disque dur.
Pour ce faire j'ai trouvé différents scripts qui marchent à ravir lorsqu'on déclare le chemin des photos en dur dans la page html, hors aucun de ces scripts ne fonctionne avec la récupération de mes données issues de ma BDD. Je m'interroge donc : aurai-je manqué un épisode ?
Voici par exemple un des scripts que j'utilise pour crypter :
//fonction pour crypter :
<?php
function cd($texte)
{
$key = 'toto_secret';
$iv_size= mcrypt_get_iv_size(MCRYPT_XTEA, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
return base64_encode(mcrypt_encrypt(MCRYPT_XTEA, $key, $texte, MCRYPT_MODE_ECB, $iv));
}
?>
[code=php]
Le script que j'utilise pour décrypter :
[code=php]<?php
include 'cd.php';
function dec($texte)
{
$texte = base64_decode($texte);
$key = 'toto_secret';
$iv_size = mcrypt_get_iv_size(MCRYPT_XTEA, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypt = mcrypt_decrypt(MCRYPT_XTEA, $key, $texte, MCRYPT_MODE_ECB, $iv);
return $decrypt;
}
$filename=$_GET["filename"];
readfile(dec($filename));
?>
et par exemple le script de ma page principale (je vous épargne la totalité) :
include 'cryptage.php';
//là je récupère l'url de la photo à afficher suivant le pseudo du membre :
$maPhoto = "images/".utf8_encode($donnees['PSEUDO'])."/photo1.jpg";
//puis je stocke cet url dans un array qui s'incrémente lors de ma boucle :
$monTab[$NB] = $maPhoto;
//plus loin dans ma partie html j'affiche (du moins j'essaie) ma photo :
" />
Et rien à faire la photo ne s'affiche pas...
Pourtant si je teste avec ceci par exemple :
$maPhoto = "images/photo1.jpg";
Et que je passe $maPhoto dans ma balise ça marche nickel.
Bref, si vous avez une idée je suis preneur car je ne trouve pas.
Merci ;)
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 21 sept. 2011 à 17:57
Re,
bon et bien j'ai tenté et j'ai fait choux blanc...
Perso je pige pas d'où vient le problème : j'ai inséré ma fonction contenue dans le fichier de contrôle afin de faire un echo de l'image à décrypter dans ma page et tester si le décryptage est le correct et... Le décryptage est bien correct donc je ne comprends vraiment pas.
J'ai une autre classe encryptage/décryptage que je dirai être plus puissante, j'ai évidemment testé avec celle-ci et le résultat est le même : l'image ne s'affiche pas... C'est à devenir fou !
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 21 sept. 2011 à 22:07
Re cod57,
je viens d'essayer ton code et malheureusement ça ne marche toujours pas, ce qui tendrait à me confirmer ce que je commençais à me dire : le problème ne vient peut-être pas de la fonction encryptage/décryptage, mais peut-être d'ailleurs. En effet j'utilise une autre fonction d'encryptage/décryptage utilisée pour récupérer et déchiffrer les données stockées dans ma BDD, et je me dis qu'il y a peut-être un conflit ou je ne sais quoi.
Je vais donc axer mes recherches là-dessus car je ne vois plus d'autres explications, tu as retravaillé un script qui marche en "soliste" et qui ne fonctionne plus une fois inséré dans ma page. Moi-même les deux scripts que j'ai essayés marchent aussi très bien en-dehors de ma page, donc j'en conclue que le problème se trouve dans ma page et non dans les scripts testés.
En tout cas un grand merci à toi d'avoir pris du temps pour m'aider à résoudre mon soucis .
Je reposte dès que j'aurai trouvé le problème.
A plus
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 22 sept. 2011 à 13:12
Hello cod57,
effectivement le code est pas mal pour cacher l'url d'une image, d'un mp3, ou encore d'une vidéo. Si ça intéresse j'ai une classe PHP encore plus aboutie qui permet de générer des urls cryptés qui sont temporaires ; en gros tu configures le temps de vie de l'url crypté via un timestamp et à chaque fois que tu recharges la page l'url crypté sera différent mais renverra le fichier souhaité.
Quoi qu'il en soit je pense que mon problème vient de l'encodage/décodage des données dans ma BDD. Je n'avais jusqu'à présent testé que sous Safari, et en testant sous Chrome et Firefox les images ne s'affichent pas même sans cryptage de l'url, et en regardant dans le code source j'ai des caractères merdiques de ce type :
"toto" est sensé être le nom d'un membre, nom de dossier également où se trouvent les photos respectives du membre, et comme tu le vois les 4 caractères après "toto" n'ont bien évidemment pas lieu d'être. De plus ces caractères n'apparaissent pas dans le code source sous Safari, ni sous Chrome, mais sous Firefox ils sont visibles. Donc j'en déduis que c'est de là que vient le souci.
En gros voici comment je procède :
mes données sont stockées après encryptage dans ma BDD, l'encryptage en question n'est ni plus ni moins que le script que j'ai mis dans mon 1er post.
Lors de la récupération des données dans mes pages je décrypte celles-ci et les encode en UTF8 pour les données "texte" afin d'avoir la bonne retranscription des accents (vu que pour les rentrer dans la BDD je les décode pour avoir justement les accents). Et je pense que c'est le "utf8_encode" lors de la récupération qui fout le bazar.
Je vais donc tester sans le utf8_encode, ou alors en encodant autrement, afin de ne plus avoir ces caractères.
Si tu as des suggestions pour l'encodage des données autrement qu'avec "utf8_encode" je suis preneur .
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 22 sept. 2011 à 23:18
Bon et bien problème résolu :
du coup j'ai refait ma base de données sans crypter les données et dorénavant ça marche au poil : je crypte les urls de mes images sans aucun souci et tout s'affiche correctement. Comme quoi à vouloir trop bien faire on se crée parfois des problèmes. Néanmoins j'ai un peu les glandes car une base de données avec des données cryptées c'est toujours plus sûr, mais vu que ça me génère des problèmes j'abandonne.
Good night ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;