Je stocke des bannières publicitaires dans une table mysql ou je devrais juste dire le nom du fichier, par exemple: 'imagename.jpg' ou 'banner3.gif'.Comment script un fichier php pour afficher une image comme <img src="/img.php?imageID=32" />?
Il est évident que je suis désireux de suivre lorsque ces bannières sont chargés donc je pense créer un fichier php appelé img.php et l'appeler comme si
<img src="/img/img.php?imageID=3" />
Et que retirerait l'image avec la id 3 avec la mise à jour de ma table de hits, etc.
Je sais comment mettre à jour ma table de hits ... mais ce que j'essaie de faire, c'est comment coder le fichier img.php pour qu'il récupère simplement le fichier nommez-le et imprimez-le à l'écran afin qu'il fonctionne comme une image régulière.
Jusqu'à présent, j'ai ...
<?php
header("Content-Type: image/jpeg");
// insert my db connect file
// update the hits table etc
$sql = 'SELECT * FROM ads WHERE id="' . $_GET['imageID'] . '" ';
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$image = '/img/' . $row['file'];
imagejpeg($image);
// and this is where I'm at...
?>
J'ai quelques problèmes avec le code ci-dessus que j'ai extrait de divers endroits pour y arriver. Les images pourraient être png/gif/jpg alors que le type de contenu de l'en-tête ne semble avoir qu'un espace pour un type.
Existe-t-il un moyen de faire fonctionner ce fichier pour plusieurs types d'images? Je pense que je devrais d'abord interroger la table, travailler sur l'extension de fichier, puis insérer la fonction d'en-tête basée sur cela.
Mais qu'est-ce que je fais réellement quand j'ai raison et que je veux juste que l'image apparaisse?
grâce à votre aide est ici le fichier de travail final
<?php
// make sure we're only getting a number for the query b4 doing stuff
if(is_numeric($_GET['imid'])) {
include('thedbfile.php');
$types['jpg'] = 'image/jpeg';
$types['png'] = 'image/png';
$types['gif'] = 'image/gif';
$sql = 'SELECT file FROM ads WHERE id="' . $_GET['imid'] . '" ';
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$image = 'img/banners/' . $row['file'];
$extension = end(explode('.', $row['file']));
header('Content-Type: ' . $types[$extension]);
echo file_get_contents($image);
}
?>
Vous devez lire l'injection de code, en particulier les injections SQL! – Gumbo
je vais, merci gumbo ... – willdanceforfun
farout ... donc avec mon sql ci-dessus quelqu'un pourrait charger ce fichier avec comme /img.php?imid=1'Drop table 'etc etc ??????? ce que le – willdanceforfun