foreach...in foreach (credo)

  • Creatore Discussione Creatore Discussione @lex!
  • Data di inizio Data di inizio

@lex!

Nuovo Utente
23 Mar 2011
1
0
0
Ciao a tutti,

avrei bisogno una piccola consulenza PHP.

Spiego:
In Flash realizzo un piccolo giochino di arredamento.
Da Flash faccio scrivere un .txt.
Sempre da Flash faccio inviare una mail con il riepilogo delle informazioni selezionate.

Il file .txt è strutturato in questo modo:

sommier=3----Sommier XXX, XXX----misure XXX cm, colorazione XXX----0000,00 euro&piedini=3----Piedini XXX----00,00 euro&testiera=3----Testiera XXX, XXX----misure XXX cm, colorazione XXX----0000,00 euro&cuscini=1----Guanciale XXX----00,00 euro&materasso=1----Materasso XXX----misure XXX cm----000,00 euro&cuscinoaggiunto=1&totale=0000&iva=0


Leggo il txt con il file index.php:

PHP:
<?
$sommier ="sommier=".$_POST["valuessommier"];
$testiera ="testiera=".$_POST["valuestestiere"];
$cuscini ="cuscini=".$_POST["valuescuscini"];
$materasso ="materasso=".$_POST["valuesmaterassi"];
$piedini ="piedini=".$_POST["valuespiedini"];
$cuscinoaggiunto ="cuscinoaggiunto=".$_POST["valuescuscinoaggiunto"];
$totale ="totale=".$_POST["valuestotale"];
$iva ="iva=".$_POST["valuesiva"];

$myFile = "salvataggio.txt";
$scrivere = "$sommier&$piedini&$testiera&$cuscini&$materasso&$cuscinoaggiunto&$totale&$iva";
$fh = fopen($myFile, 'w') or die ("impossibile aprire il file");

fwrite($fh, $scrivere) or die ("impossibile scrivere sul file");
//echo "salvato";
fclose($fh);
  
?>

Invio con questo file invia.php:

PHP:
<? 
$var=fopen("salvataggio.txt","r");
$leggi=fread($var,filesize("salvataggio.txt"));
$sss=nl2br($leggi);
fclose($var);
$es = explode ("&",$sss);
foreach ($es as $articoli){ 
	$num = strpos($articoli, "=");
	$articoli = substr($articoli, $num);
	if($articoli != "="){
	$articoli = str_replace("=","<br>",$articoli);
	$artfinali .= $articoli;
	}
}


$tua_email = "XXX@XXX.XX";

if (( $_POST["privacy_p"] == 1)) {
	$privacyint = "<br>Acconsente<br>";
	}
	else {
	$privacyint = "<br>Non acconsente<br>";
}
?>
<html>
<head>
<title>Modulo contatti</title>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body topmargin="50" margineight="50">
<table width="400" align="center">
<tr>
<td>

<?php
$tipo = $_POST["tipo_p"];
$sigla = $_POST["sigla_p"];
$nome = $_POST["nome_p"];
$cognome = $_POST["cognome_p"];
$indirizzo = $_POST["indirizzo_p"];
$citta = $_POST["citta_p"];
$telefono = $_POST["telefono_p"];
$email = $_POST["email_p"];
$note = $_POST["note_p"];
if (( $_POST["sigla_p"] == "")) {
	$sigla = "-";
}
if (( $_POST["indirizzo_p"] == "")) {
	$indirizzo = "-";
}
if (( $_POST["citta_p"] == "")) {
	$citta = "-";
}
if (( $_POST["note_p"] == "")) {
	$note = "-";
}

$corpo = '
<html>
<head>
</head>

<body>
<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
    <td colspan="2">';
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<img src="logo_mail.jpg">';
	$corpo .= '<br><br>';
	$corpo .= '<br><br>';
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Tipologia di cliente: </strong>';
	$corpo .= $tipo;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Sigla: </strong>';
	$corpo .= $sigla;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Nome: </strong>';
	$corpo .= $nome;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Cognome: </strong>';
	$corpo .= $cognome;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Indirizzo: </strong>';
	$corpo .= $indirizzo;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Città: </strong>';
	$corpo .= $citta;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Telefono: </strong>';
	$corpo .= $telefono;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>E-mail: </strong>';
	$corpo .= $email;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Note: </strong><br>';
	$corpo .= $note;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong>Trattamento dei dati personali: </strong>';
	$corpo .= $privacyint;
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';	
	$corpo .= '<tr><td width="50%" valign="top">';
	$corpo .= '<strong><strong>Articoli dei quali si richiede informazioni:</strong> </strong><br>';
	$corpo .= $artfinali;	
	$corpo .= '<br><br>';
	$corpo .= '</td></tr>';		
	$corpo .= '</table>
</body>
</html>';
	$mail_in_html .= "MIME-Version: 1.0\r\n";
        $mail_in_html .= "Content-type: text/html; charset=UTF-8\r\n";
	$mail_in_html .= "From:XXX@XXX.XX\r\n";
	$mail_in_html .= "BCC:$email\r\n";

mail($tua_email,"XXX",$corpo,$mail_in_html);
?>

</td>
</tr>
</table>

</body>
</html>


Funziona tutto...,ma...Ecco la domanda:
come vedete, la variabile $artfinali mi restituisce una stringa composta dai vari articoli ogni qualvolta nel leggere trova una &.

Cosa avrei bisogno ora:
ok la scomposizione in articoli, ma vorrei avere una variabile numerata progressivamente per ogni "sotto articolo".
Es.
articolo1:
sottoarticolo1a: 3
sottoarticolo2b: Sommier XXX, XXX
sottoarticolo2c: misure XXX cm, colorazione XXX
sottoarticolo2d: 0000,00 euro
articolo 2:
sottoarticolo2a: 3
sottoarticolo2b: Piedini XXX
sottoarticolo2c: 00,00 euro
articolo 3:
...


In questo modo posso impaginare meglio il riepilogo nella mail.
Specifico che non vorrei toccare il .fla che è già abbastanza incasinato.

Credo di dover inserire un altro foreach ma non sono stato in grado.

Spero di essere stato chiaro. Scusate se sono stato prolisso.

Chi può darmi una mano?

Grazie e buona giornata!
 
Prova così

PHP:
<? 
$lettere=array('a','b','c',............'z');
$var=fopen("salvataggio.txt","r");
$leggi=fread($var,filesize("salvataggio.txt"));
$sss=nl2br($leggi);
fclose($var);
$es = explode ("&",$sss);
$art=1;
$let=0;
foreach ($es as $articoli){ 
    $num = strpos($articoli, "=");
    echo "Articolo $art:<br />";
    $articoli = substr($articoli, $num).$art.$lettere[$let];
    if($articoli != "="){
     $articoli = str_replace("=","<br>",$articoli);
     $artfinali .= $articoli;
     $art++;
     $let=0;
    }
    else {
       $let++;
    }
}
 

Discussioni simili

L
Risposte
0
Visite
925
PHP
leonte54
L