mappa generata da librerie gd modificabile tramite form

ciao

ma ho la "vaga" impressione che dovendo fare quello che vuoi fare con i file .txt diventa un "ca..no", anche perchè il saggio disse:"l'appetito vien mangiando".
ti conviene dare un occhio a qualche guida di mysql+php (dovrebbe essercene una anche qui su mrwm, la cerco e ti posto il link).
pensa bene a tutto quello che vuoi fare perche poi rimettere le mani su quanto già fatto neno è una delle cose migliori.

p.s.
l'uso di mysql è più semplice di quello che sembra



Il sistema da te creato va bene, se si potessero inserire più icone avrei raggiunto quello che desidero.

effettivamente hai ragione... :( dammi qualche suggerimento su come poter impostare questo sistema.
 
Ho capito la questione del mysql che vuoi intendere, bisognerebbe creare un config (per la connessione al db) e avere la banca dati nel database.

il problema è questo però: come faccio a far comunicare il form con il mysql e come faccio a far richiamare i dati presenti sul mysql nella pagina della mappa

è un mistero :cool:
 
Grazie dei link! utilissimi e penso di interfacciarlo con mysql.


Ma per ora ho trovato la soluzione per mettere tutti i simboli che voglio, mi hai dato una grossa mano con il codice che hai inserito alla pagina 1 :fonzie:


L'unica cosa che ti chiedo è come far restare nel form i dati che sono inseriti nel file txt, in modo tale che quando lo apro so già cos'è inserita nella mappa
 
ciao1il form non serve per memorizzare, al massimo si potrebbe (sempre leggendo il file txt) fare in modo che la <option> diventasse selected e/o sopra il form visualizzare gli ultimi dati registrati


anche qui vorresti che quando fai una modifica la data venisse stampata sull'immagine?



Praticamente se riesco a far ricordare al form i dati inseriti nel txt è fatta :)

come posso fare?

grazie di tutto
 
ciao
ti ho modificato il form, in questo modo vedi il settagio attuale e le option sono selected sul settaggio attuale
PHP:
<?php
if(isset($_POST['esegui'])){
	$icone=$_POST['rosso']."|".$_POST['giallo']."|".$_POST['verde'];
	$ris = fopen("icone.txt", "w");
	fwrite($ris, $icone);
	fclose($ris);
}
if(file_exists("icone.txt")){//verifichi sempre che il file esista 
	$icone = file_get_contents("icone.txt");//legge il settaggio attuale
	$icona=explode("|",$icone);//come nell'altro script
	echo "settaggio attuale:<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in rosso: ".$icona[0]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in giallo: ".$icona[1]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in verde: ".$icona[2]. "<hr>";
}
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');//creo un array con le icone
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
rosso<select name="rosso">
<?php
foreach($ic as $ch => $val){//ciclo l'array delle icone
	if($icona[0]==$val){$sel="selected";}else{$sel="";}//verifico se l'icona settata è uguale al valore della select, se si metto a selected l'option relativa
	echo "<option value=\"$val\" $sel>$ch</option>";//stampo la option
}
?>
</select><br>
giallo<select name="giallo">
<?php
foreach($ic as $ch => $val){
	if($icona[1]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
verde<select name="verde">
<?php
foreach($ic as $ch => $val){
	if($icona[2]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
<input name="esegui" type="submit" id="esegui" value="esegui">
</form>
comunque cerca di studiare/capire quello che ho fatto
non fare l'errore del classico copy/paste
 
ciao
ti ho modificato il form, in questo modo vedi il settagio attuale e le option sono selected sul settaggio attuale
PHP:
<?php
if(isset($_POST['esegui'])){
	$icone=$_POST['rosso']."|".$_POST['giallo']."|".$_POST['verde'];
	$ris = fopen("icone.txt", "w");
	fwrite($ris, $icone);
	fclose($ris);
}
if(file_exists("icone.txt")){//verifichi sempre che il file esista 
	$icone = file_get_contents("icone.txt");//legge il settaggio attuale
	$icona=explode("|",$icone);//come nell'altro script
	echo "settaggio attuale:<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in rosso: ".$icona[0]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in giallo: ".$icona[1]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in verde: ".$icona[2]. "<hr>";
}
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');//creo un array con le icone
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
rosso<select name="rosso">
<?php
foreach($ic as $ch => $val){//ciclo l'array delle icone
	if($icona[0]==$val){$sel="selected";}else{$sel="";}//verifico se l'icona settata è uguale al valore della select, se si metto a selected l'option relativa
	echo "<option value=\"$val\" $sel>$ch</option>";//stampo la option
}
?>
</select><br>
giallo<select name="giallo">
<?php
foreach($ic as $ch => $val){
	if($icona[1]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
verde<select name="verde">
<?php
foreach($ic as $ch => $val){
	if($icona[2]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
<input name="esegui" type="submit" id="esegui" value="esegui">
</form>
comunque cerca di studiare/capire quello che ho fatto
non fare l'errore del classico copy/paste


Ti faccio veramente i miei complimenti, sei bravissimo, senza di te non ce l'avrei mai potuta fare!

Sto studiando il codice che hai inserito poichè dovrò inserire diverse icone per diverse città! ho notato diversi cambiamenti tra il primo e il secondo codice inserito :)


E' tutto perfetto al 99% ho raggiunto il mio obbiettivo, senza db :) unico particolare (sarebbe il massimo) è l'inserimento della data (che non deve essere l'orario attuale) ma bensì la data scelta da me, tipo "Sabato 13 ottobre", da poter stampare poi utilizzando la libreria gd.


In alternativa potrei creare piccole immagini tipo "giovedi" "venerdi" e il giorno con l'anno da inserire con lo stesso sistema delle icone in un punto della mappa :) , ma in questo caso come posso fare in modo che alla scelta della "data" non mi faccia vedere le icone nel box di scelta?
 
mi spiego meglio con un immagine

nel caso non fosse possibile usare la funzione:

imagestring($campania,12,17,294,"MARTEDI'' 09 OTTOBRE 2012",$col);


Potrei utilizzare questo metodo, che sfrutta lo stesso sistema delle icone. ho la necessità però che nel box "data" non vengano visualizzati le scelte che hai inserito, tipo giallo, rosso, verde

prova2.png

illuminami su quest'ultima cosa è avrò completato il mio progetto :)
 
ciao
una cosa prima:
la data la inserisci solo tu?
ti chiedo questo perche l'uso delle date è sempre un po' rognoso perche la stessa data può essere scritta in tanti modi (es. 9.10.2012, 09/10/2012...) e generalmente si fa un controllo prima di inserirla.
se la scrivi solo tu immagino che tu faccia attenzione a non scrivere ca...te, quindi i controlli non dovrebbero servire

sto pensando di metterla dentro il file di testo:
ciè un campo di input text da mettere dopo le select e concatenarla alla stringa col solito | poi quando la esplodi la trovi nell'ultima $icona in questo caso in $icona[3]
e quindi usarla in
imagestring($campania,12,17,294,"MARTEDI'' 09 OTTOBRE 2012",$col);
come hai fatto per
$rosso = imageCreateFromPng($r);

prova a modificare gli script che ti ho mandato (se fai pasticci poi l'aggiustiamo)
 
ciao
una cosa prima:
la data la inserisci solo tu?
ti chiedo questo perche l'uso delle date è sempre un po' rognoso perche la stessa data può essere scritta in tanti modi (es. 9.10.2012, 09/10/2012...) e generalmente si fa un controllo prima di inserirla.
se la scrivi solo tu immagino che tu faccia attenzione a non scrivere ca...te, quindi i controlli non dovrebbero servire

sto pensando di metterla dentro il file di testo:
ciè un campo di input text da mettere dopo le select e concatenarla alla stringa col solito | poi quando la esplodi la trovi nell'ultima $icona in questo caso in $icona[3]
e quindi usarla in
imagestring($campania,12,17,294,"MARTEDI'' 09 OTTOBRE 2012",$col);
come hai fatto per
$rosso = imageCreateFromPng($r);

prova a modificare gli script che ti ho mandato (se fai pasticci poi l'aggiustiamo)


Si si la data la inserisco solo io, vorrei inserire per esempio Martedi 09 Ottobre 2012

ho inserito imagestring($campania,12,17,294,"MARTEDI'' 09 OTTOBRE 2012",$col);

in mappa.php e mi restituisce questo risultato

campania_maps.jpg (ps le icone escono nere perchè le avevo ingrandite)

Ora dovrei inserire solo il box text nel form per modificare quel valore

ci siamo quasi, come lo imposto?
 
Aggiornamento

Sono riuscito a inserire il box text nel form, e cliccando su invio invia correttamente il tutto al file txt ecco

form form.png

file txt blocco note.PNG



Ora dovrei solo inserire la stringa per stampare il testo nella mappa.php, solo che la funzione imageCreateFromPng non funziona

come posso fare?
 

Allegati

  • blocco note.PNG
    blocco note.PNG
    14 KB · Visite: 264
ciao
ti ho modificato il form con la data, e aggiunto un controllo sulla stessa
PHP:
<?php
if(isset($_POST['esegui'])){
	//questo if perche se ti domentichi di inserire la data andrebbe tutto in pallino
	if(trim($_POST['data'])!=""){//verifica se inputata la data
		//la funzione strtoupper trasforma tutti i caratteri in maiscolo anche se li inserisci in minuscolo
		$data=strtoupper(trim($_POST['data']));//legge quella da te inputata
	}else{
		$data=date("d.m.Y");//se ti sei dimenticato inserisce la data del server
		//andrai poi a correggerla
	}
	$icone=$_POST['rosso']."|".$_POST['giallo']."|".$_POST['verde']."|".$data;
	$ris = fopen("icone.txt", "w");
	fwrite($ris, $icone);
	fclose($ris);
}
if(file_exists("icone.txt")){//verifichi sempre che il file esista 
	$icone = file_get_contents("icone.txt");
	$icona=explode("|",$icone);
	echo "settaggio attuale:<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in rosso: ".$icona[0]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in giallo: ".$icona[1]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;in verde: ".$icona[2]. "<br>";
	echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data: ".$icona[3]. "<hr>";
}
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
rosso<select name="rosso">
<?php
foreach($ic as $ch => $val){
	if($icona[0]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
giallo<select name="giallo">
<?php
foreach($ic as $ch => $val){
	if($icona[1]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
verde<select name="verde">
<?php
foreach($ic as $ch => $val){
	if($icona[2]==$val){$sel="selected";}else{$sel="";}
	echo "<option value=\"$val\" $sel>$ch</option>";
}
?>
</select><br>
<!--NOTA: se scrivi il giorno (es) martedì, NON scrivere martedi' o MARTEDI' ma metti la i accentata minuscola, es. scrivi MARTEDì 
ci pensa lo script a trasformare tutto in maiuscolo, gli apici o apostrofi possono creare casino-->
data <input name="data" type="text" size="30">
<br>
<input name="esegui" type="submit" id="esegui" value="esegui">
</form>
poi modifica lo script per le mappe
PHP:
<?php
if(file_exists("icone.txt"){//verifichi che il file esista
    //se esistse leggi il contenuto
    $icone = file_get_contents("icone.txt");
    var_dump($icone);echo "<br>";//questa riga per farti vedere il contenuto del file poi la togli o la commenti
    $icona=explode("|",$icone);//esplodi la stinga in funzione di |
    var_dump($icona[0]); echo "<br>";//queste quattro righe per farti vedere il risultato poi le togli o le commenti
    var_dump($icona[1]); echo "<br>";
    var_dump($icona[2]); echo "<br>";
	var_dump($icona[3]); echo "<br>";
    //assegni i valori
    $r=$icona[0];
    $g=$icona[1];
    $v=$icona[2];
	$d=$icona[3];
}else{//il file non esiste
    //usi una serie di default
    $r="rosso.png";
    $g="giallo.png";
    $v="verde.png";
	//anche qui una data di default
	$d=date("d.m.Y");
}
// carico l'immagine da usare come mappa
$campania = imageCreateFromJpeg('campania.jpg');
// carico i simboli in stile Google Maps
//al posto dei nomi metti le variabili appena ricavate
$rosso = imageCreateFromPng($r);
$giallo = imageCreateFromPng($g);
$verde = imageCreateFromPng($v);
imagestring($campania,12,17,294,$d,$col);
//ECCETERA.............
?>
prova
 
Non so come ringraziarti veramente!

Grazie a te sono riuscito a creare la mappa da utilizzare per il mio progetto, modificabile liberamente sfruttando le potenti librerie gd. sei stato l'unico che mi aiutato su altri lidi mi hanno scanzato. purtroppo per queste cose ci vuole passione e disponibilità di una persona.


Un ultima cosa, è possibile cambiare la directory dei simboli? tipo se gli script sono in www.miosito.com/mappa.php e i simboli vorrei metterli in www.miosito.com/simboli

dovrei fare una modifica alla mappa vero?

grazie mille :)
 
Ti pongo un quesito, spero sia possibile risolverlo :)


Nel form ho questa stringa

PHP:
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');//creo un array con le icone

Che mi va a determinare le verie opzioni nel box di scelta dell'icona.


Sarebbe possibile nella stessa pagina creare un altro box di selezione icone, ma che al suo interno non vengano contenute le icone rosso, giallo, verde?

Tipo se usassi questi colori: blu, arancio, viola

ho provato a inserirli dopo 'verde' => 'verde.png' ma quando aggiorno il form nel box di selezione mi crea una lista composta da 6 icone. io vorrei solo che fossero visualizzate le ultime 3


spero di aver esposto bene il quesito :)
 
Ultima modifica di un moderatore:
ciao
se non ho capto male quello che intendi
fai un altro arrai (es)
PHP:
<?php
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');//creo un array con le icone 
$ic_secondo=array('arancio' =>'arancio.png', 'marrone' => 'marrone.png', 'blu' => 'blu.png');//creo un altro array con le icone 
?>
poi con il solito foreach ti fai un'altra select (con un altro nome) e po devi combinare i var $_POST come ti interessano
 
ciao
se non ho capto male quello che intendi
fai un altro arrai (es)
PHP:
<?php
$ic=array('rosso' =>'rosso.png', 'giallo' => 'giallo.png', 'verde' => 'verde.png');//creo un array con le icone 
$ic_secondo=array('arancio' =>'arancio.png', 'marrone' => 'marrone.png', 'blu' => 'blu.png');//creo un altro array con le icone 
?>
poi con il solito foreach ti fai un'altra select (con un altro nome) e po devi combinare i var $_POST come ti interessano




Ti ringrazio! tutto risolto, va alla grande :)
 
Ciao a tutti

Sono arrivato al punto (si è complicato il lavoro) da aver bisogno di un database mysql

L'obbiettivo è questo, leggere un file xml dove ci sono scritti i dati della mappa, e stamparli a video con le librerie gd. ovviamente io dovrei avere la possibilità di poter modificare la mappa cambiando il valore sul database.


Esempio:

Nel file xml ho:

<icon>4</icon>


Dovrei far leggere a php che l'icona "4" contenuta nel file xml sta per 4.png e farlo memorizzare nel mysql nella tabella "icona"


Fatto questo le librerie gd dovrebbero prendere quel valore e stampare a video il simbolo 4.png sulla mappa


L'xml si aggiorna una volta al giorno da solo, io però dovrei avere la possibilità di modificare i valori nel mysql (per poter cambiare la mappa in caso di modifica)


Qualcuno può aiutarmi? si lo so è complessa come cosa
 

Discussioni simili