2010-07-21 11 views
0

Je travaille avec un script pour redimensionner des images. Je semblent obtenir une erreur:

Erreur: aucune image n'a été spécifié
Probablement à cause de ce code dans le script (image.php):

if (!isset($_GET['image'])) 
    { 
     header('HTTP/1.1 400 Bad Request'); 
     echo 'Error: no image was specified'; 
     exit(); 

} 

Voici ce que je suis faire (profile.php):

$your_image = $row['Image']; 
$path_to_image = $row['PortraitPath']; 
$width = 100; 
$height = 100; 

echo "<img src=\'/image.php/{$your_image}?width={$width}&amp;height={$height}&amp;cropratio=1:1&amp;image={$path_to_img}\' alt=\'Alt text goes here.\' />"; 

par conséquent, je lis $your_image et $path_to_image d'une table MySQL , puis en le mettant dans le img source. Comme mentionné ci-dessus, évidemment, l'image n'est pas définie, c'est pourquoi je reçois cette première erreur. Qu'est-ce que je ne comprends pas, comment l'image sera-t-elle réglée avec mon code img src? N'avez-vous pas simplement affiché l'image réelle? Alors, comment l'image sera-t-elle définie si une image est simplement affichée? Je vous remercie.

+0

Avez-vous copié ce code quelque part? Évidemment, l'emplacement précédent a reçu l'image de l'URL GET plutôt que la base de données. – Fosco

+0

En dehors de devoir enlever le '\' avant vos '' '' dans la chaîne je ne vois aucun problème. – Wrikken

+0

@ Fosco - Correct..Doh..Je pense maintenant comment puis-je même redimensionner l'image lorsque je l'ai déjà enregistré dans la base de données .... Je devrais redimensionner juste après que l'image a été téléchargée ... hmm –

Répondre

0

Si vous souhaitez générer un fichier php à la place d'une image, vous devez indiquer à votre fichier php que la sortie sera une image. Vous pouvez le faire en utilisant la fonction, comme en-tête de php() ceci:

header('Content-type: image/jpeg'); 

Voici une référence: php header function

A propos de l'adresse que vous pointez, n'est pas un peu bizarre? Vous avez une barre oblique juste après le .php, ce qui suggère que vous essayez d'accéder à un dossier ... Avez-vous testé cette URL pour voir si une image réelle est sortie sur l'écran?

Hope this peut vous aider =)

0

L'URl de l'image contient ?foo=bar&this=that&image=path. Ces variables seront transmises au script image.php dans le tableau $ _GET.

+1

Et la réponse réelle est? – Wrikken

0

Comme un mot d'avertissement, dans le code de votre profile.php j'ai vu ce fragment:

image={$path_to_img}

Selon la façon dont vous traitez avec la valeur de $_GET['image'] cela peut entraîner une vulnérabilité RFI. L'utilisateur peut forger une requête GET à image.php avec son propre chemin "image".

0

Un couple de choses que j'ai remarqué, je ne suis pas sûr à quel point le code modifié avant de poster ici ...

1a) Ne pas échapper les guillemets simples si vous utilisez des guillemets pour englober.

OU

1b) Changer les guillemets simples échappées à guillemets doubles échappées.

2) Dans l'URL que vous utilisez $path_to_img mais la variable que vous avez définie est $path_to_image. Rends-les cohérents.