- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Risolto] L'array form mi cambia il "." in "_"
-
[Risolto] L'array form mi cambia il "." in "_"
Ciao a tutti. Questo è il form che viene generato in php ( metto solo la parte del'input che mi da il problema):
print '<td><a href="'.$link.'" >
<img src="'.$link.'" width="100" height="100"/> </a></td>
<td>'.$imagesize[0].'<br>x<br>'.$imagesize[1].'</td>
<td>Position<input type="text" name="'.$file.'[]" size="2"></td>';e questo lo script all'arrivo :
foreach($_POST as $photo=>$position) {
foreach($position as $position) {
$sql="INSERT INTO products_details (id,photo,position) VALUES ('','$photo','$position')";Ebbene , tutto funziona bene se non per il fatto che nella variabile $file , che dovrebbe essere il nome di un file immagine ,quindi con estensione .jpg , viene cambiata l'estensione in jpg (notate il ""). questo avviene anche mettendo la variabile $link , che è lo stesso file con l'aggiunta della cartella radice.
Sapreste aiutarmi a capire come mai?Grazie
-
Ciao,
non capisco proprio perchè usi il nome del file come "name" del campo input.Il risultato è corretto perchè php converte i nomi delle variabili passate tramite GET/POST in modo tale che siano nomi validi.
Questo avviene per far sì che, nel caso in cui register_globals sia impostato su On, possano essere generate correttamente tutte le variabili.
In PHP non può infatti esistere la variabile con nome, ad esempio,
$immagine.jpgNel tuo caso converte il punto con un underscore in modo che, l'eventuale variabile, abbia appunto un nome consentito:
$immagine_jpgAlessandro
-
Ciao e grazie della risposta. Uso il nome del file perchè è l'unico riferimento che ho per far scrivere sul database che la foto indicata deve avere l'attributo 1 , 2 , ecc.
Comunque mi si è svelato il mistero e di ciò ti ringrazio , tanto più che mi sembra semplice a questo punto fare un explode('_',$photo) , ecc ecc.
Grazie ancora
-
Ecco fatto. se interessa a qualcuno , ho risolto cosi:
foreach($POST as $photo=>$position) {
$photo=explode('',$photo);foreach($position as $position) { $photo=$photo[0].'_'.$photo[1].'.'.$photo[2]; $sql="INSERT INTO products_details (id,photo,position) VALUES ('','$photo','$position')";
Ehmm... si è bruttino ma mi accontento