- Home
- Categorie
- Coding e Sistemistica
- PHP
- Banner con variabili
-
Mi sono reso conto che nonostante adesso utilizzo un'immagine di background sto facendo comunque la stessa cosa che c'era prima. Ho sempre il mio file php pieno di query e if. Ho semplicemente rimosso alcuni elementi che adesso sono fissi nel background ma la sostanza non cambia. Quando faccio imagejpeg($img); mi "stampa" sullo schermo il link della pagina (credo sia un modo di dire che è un errore) infatti quando la richiamo con una pagina html con il seguente codice mi da una pagina bianca con le proprietà di una "Immagine JPEG".
<img src=link_alla_pagina_php> ```Credo di essere entrato in un loop :x come faccio a popolare l'immagine con variabili del database ***senza*** ricorrere a quey e due righe di codice? E' assurdo :/ Ok, devo usare le librerie grafiche... ma come faccio una query con una libreria grafica?
-
Ciao, questo dovrebbe andare bene
Ho usato l'immagine virusgaming.net/cabal/var1.jpg
[php]
<?
//codice testato e funzionante con l'immagine var1.jpeg
//poi sta a te personalizzarlo come ti pare e piace//1.
//creo l'immagine a partire da quella esistente var1.jpg
$img = imagecreatefromjpeg('var1.jpg');//2.
//assegno la coordinata y. A quest'altezza inizia a scrivere
// (partendo dall'alto)
$y=42;//le coordinate 'X' dei 6 valori (in pixel ovviamente)
$x1=15;
$x2=57;
$x3=101;
$x4=143;
$x5=187;
$x6=232;//3.
// assegno i valori che voglio scrivere sull'immagine
//io ho messo valori costanti però puoi benissimo estrare i valori dal database
//magari recuperi l'id usando $_GET['valore'] e poi con quello vai nel db$valore1=111;
$valore2=222;
$valore3=333;
$valore4=444;
$valore5=555;
$valore6=666;//4.
//scelgo il colore con cui scrivere sull'immagine $img
$bianco = imagecolorallocate($img,255,255,255);//5.
//imagestring() scrive sull'immagine.
// come usare la funzione: imagestring(immagine,font, x, y, testo, colore)
imagestring ( $img , 3 , $x1 , $y , $valore1 , $bianco );
imagestring ( $img , 3 , $x2 , $y , $valore2 , $bianco );
imagestring ( $img , 3 , $x3 , $y , $valore3 , $bianco );
imagestring ( $img , 3 , $x4 , $y , $valore4 , $bianco );
imagestring ( $img , 3 , $x5 , $y , $valore5 , $bianco );
imagestring ( $img , 3 , $x6 , $y , $valore6 , $bianco );//6.
//dico al browser ti mando un immagine jpeg
header('Content-Type: image/jpeg');//output immagine creata
imagejpeg($img);//cancello l'immagine dato che la creo ogni volta con valori diversi
imagedestroy($img);?>
[/php]Ho testato il codice è funziona
ciao ciao
-
Non ho parole mi hai dato più di una spinta per capire. Ho sistemato tutto. A questo punto ti rivolgo solo un'ultima domanda.
[PHP]$variabile = "<img src=img/image_$tipo.jpg>"
imagestring ( $img , 3 , $x1 , $y1 , $variabile , $bianco );[/PHP]
Succede che mi aggiunge nell'immagine il codice<img src=img/image_$tipo.jpg>
Non c'è modo di fargli passare il tag <img> senza che lo scriva testualmente? Ho cercato nel manuale le varie funzioni ma non ce ne sono php.net/manual/en/ref.image.php
Non dirmi che l'unico modo è crearsi tutte le diverse varianti di background sono centinaia le bandierine dei paesi ci metterei una vita
-
Haha non penso si debba creare centinaia di diversi background per ogni bandierina :o.
Faccio una ricerca su google perchè sicuramente ci sara una soluzione.
Comunque imagestring() serve solo per scrivere testo.
-
Trovato: imagecopyresampled() è una funzione che permette di copiare un immagine sopra un altra.
[php]
//immagine tua di background e il vario codice di prima
$img=..
...
...//questa parte la metti dopo aver scritto le variabili sull'immagine
// Immagine da applicare
$bnd = imagecreatefromjpeg("bandiera.jpg");imagecopyresampled($img,$bnd,$imgX,$imgY, 0,0,$img_largh,$img_alt,$bnd_larg,$bnd_alt);
//$imgX,$imgY sono le coordinate dove verra incollata la bandierina
//0,0 sono le coordinate x,y della bandierina, (da dove copiare penso)
//$img_largh,$img_alt sono larghezza ed altezza del background
//$bnd_larg,$bnd_alt sono larghezza ed altezza della bandierina
[/php]Spero di aver scritto tutto bene.
-
Memic ti ringrazio infinitamente per l'ottimo aiuto che mi hai dato. Mi hai spiegato un argomento difficile come questo in un paio di post. Grazie per il tempo che mi hai dedicato l'ho apprezzato moltissimo
-
Ma figurati, è stato un piacere aiutarti, poi era anche un ottima occasione per me di ripassare quest'argomento.
Se hai ancora bisogno non esitare a chiedere ;).ciao ciao
-
LoL bhè si in realtà c'è ancora una piccola cosettuccia vorrei fornire un bbcode per gli utenti che vogliono utilizzarlo in firma. L'immagine alla fine l'abbiamo camuffata in jpeg ma in realtà è id.php?id=10 quindi funziona solo con l'html. Non ci sarebbe il modo per cambiare l'estensione del file in jpg?
Cosi va
<img src=...../id.php?id=10>
Cosi non va
![image](...../id.php?id=10>)
-
Sicuro che non funzioni :??
Credo si possa camuffare anche come jpeg o gif volendo...
Però non l'ho mai fatto :D.
Bisogna usare il mod_rewrite per queste cose...
Dato che non sono molto bravo con le regular-expressions non ti assicuro che funzionerà.Allora proviamo un po' con:
RewriteEngine On RewriteRule ^([0-9]+)\.jpeg$ id.php?id=$1 ```questo codice lo metti nel file htaccess nella cartella dove c'è il file id.php Praticamene per creare l'immagine per l'id 10 tu scrivi 10.jpeg e la regola che ho scritto sopra dovrebbe reindirizzarlo a id.php?id=10. Dato che id.php restituisce un immagine nessuno si accorge di niente. Se funzione bene, se no.... chiediamo nella sezione mod rewrite :D.
-
Hem dunque mi sono fatto rapidamente una cultura su htaccess perchè mi sta sul cavolo stressare la gente nei forum MA il 100% delle guide partono tutte con "Scriviamo..." hem si... dove? E' la mia prima volta in htaccess. Ho creato un file chiamato .htaccess posizionato in una cartella insieme alla pagina id.php. Ho scritto in quel file senza estensione il codice che mi hai dato ma ci gioco 100 ? che non ci sono nemmeno andato vicino :s
-
Infatti può darsi che ho scritto una cavolata....:D
Provo a farlo e se riesco ti posto il codice "giusto" da mettere in htaccess.
-
Ho appena provato e a me funziona.
Riassumo quello che ho fatto...- Ho creato il file .htaccess nell stessa cartella di id.php
- ho messo il codice di sopra in .htaccess
- ho modificato il file id.php per fargli scrivere l'id sopra l'immagine
- ho provato nel browser a scrivere 10.jpeg
- mi esce l'immagine generata da id.php con scritto 10 sopra
5.1. provo con altri numeri ed esce sempre l'immagine con il numero inserito
Se hai fatto tutto questo (eccetto il punto 3 che ho fatto solo per essere sicuro che funzioni) e non funziona può darsi che il mod_rewrite non è abilitato.
-
Semplicemente perfetto no comment i miei complimenti! Non potevi essere più chiaro. Ti ringrazio ancora tantissimo! Non merito tutto questo
-
Prego