PDA

View Full Version : [PHP] Problemone urgente


Traxsung
30-08-2007, 01:05
Ragazzi ho un superproblemone, ma credo che per voi sarà una schiocchezza.

In pratica ho uno script formato da tre parti:

funzioni.php
ordine.php
confermaordine.php


funzioni.php

<?php
function top(){
echo "<html>
<head>
<title>Acquisto prodotti</title>

</head>

<body>
<div align=\"center\">
<table width=\"903\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#000000\" bgcolor=\"#ffffff\">

<td colspan=\"6\" align=\"center\" valign=\"top\" bgcolor=\"#ffffff\">";
}

function bottom(){
echo "</td>
</tr></table></body>
</html>";
}

function usaCarrello()
{
$carrello = $_SESSION['carrello'];
if (!$carrello)
{
return 'Il carrello è vuoto.<br>';
}else{
$prodotti = @explode(',',$carrello);
return 'Ci sono <a href="carrello.php">'.
@count($prodotti). ' prodotti nel carrello.</a><br>';
}
}

function mostraCarrello()
{
global $db;
$carrello = $_SESSION['carrello'];
$somma = 0;
if ($carrello)
{
$prodotti = @explode(',',$carrello);
$acquisti = array();
foreach ($prodotti as $prodotto)
{
$acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
}
$result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
$result[] = '<table border="1" frame="border" rules="none" width="90%" align="center">';
$result[] = '<tbody><tr>';
// $result[] = '<td width="15%"><b>CODICE</b></td>';
// $result[] = '<td width="20%"><b>CATEGORIA</b></td>';
$result[] = '<td width="15%"><b>COD</b></td>';
$result[] = '<td width="50%"><b>MARCA</b></td>';
$result[] = '<td width="20%"><b>PREZZO</b></td>';
$result[] = '<td width="50%"><b>Q.TA</b></td>';
$result[] = '<td width="50%"><b>IMPORTO</b></td>';
$result[] = '</tr>';
$result[] = '<tr>';

foreach ($acquisti as $id=>$quantita)
{
$sql = 'SELECT * FROM prodotti WHERE id = '.$id;
$res = $db->query($sql);
$f = $res->fetch();
@extract($f);

$result[] = '<tr>';

$result[] = '<td>' . substr($cod, 0, 19) . '</td>';
$result[] = '<td>'.$nome.'</td>';
$result[] = '<td>&euro;'.$prezzo.'</td>';
$result[] = '<br><td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
$result[] = '<td>&euro;'.($prezzo * $quantita).'</td>';
$somma += $prezzo * $quantita;
$result[] = '<td><a href="carrello.php?action=cancella&id='.$id.'">ELIMINA</a></td>';
$result[] = '</tr>';
}

$result[] = '</table>';
$result[] = 'Totale: <b>&euro;'.$somma.'</b></br>';
$result[] = '<button type="submit">Aggiorna il carrello</button>';
$result[] = '</form>';
}else{
$result[] = 'Il carrello è vuoto.<br>';
}
return @join('',$result);
}
?>





ordine.php

<?php

@require('funzioni.php');



top();

?>



<form action="confermaordine.php" method="post" enctype="multipart/form-data">



<h1>Inserire i dati nel form sottostante:</h1>

<table width="400" border="1" cellspacing="0" cellpadding="0">

<tr>

<td><b>COGNOME:</b></td>

<td><input name="cognome" type="text" size="25" maxlength="25"></td>

</tr>

<tr>

<td><b>NOME:</b</td>

<td><input name="nome" type="text" size="25" maxlength="25"></td>

</tr>

<tr>

<td><b>RAGIONE SOCIALE:</b</td>

<td><input name="ragionesociale" type="text" size="25" maxlength="25"></td>

</tr>

<tr>

<td><b>PARTITA IVA/CODICE FISCALE:</b</td>

<td><input name="cod_part" type="text" size="25" maxlength="25"></td>

</tr>

<td><b>INDIRIZZO:</b</td>

<td><input name="indirizzo" type="text" size="25" maxlength="50"></td>

</tr>

<tr>

<td><b>LOCALITA' (PROV):</b</td>

<td><input name="localita" type="text" size="25" maxlength="25"></td>

</tr>

<tr>

<td><b>CAP:</b</td>

<td><input name="cap" type="text" size="25" maxlength="5"></td>

</tr>

<tr>

<td><b>EMAIL:</b</td>

<td><input name="email" type="text" size="25" maxlength="25"></td>

</tr>

<tr>

<td><b>TELEFONO:</b</td>

<td><input name="telefono" type="text" size="25" maxlength="25"></td>

</tr>



</table>

<br>

<br>

<a href="index.php"><img src="btn_backshop.gif\"></a>

<input name="invia il modulo" type="image" src="btn_confermaordine.gif">

</form>

</body>

</html>

<?php bottom(); ?>




confermaordine.php

<?php
@session_start();
require_once 'funzioni.php';





$msg ="Ciao Giuseppe ";

$msg .= "\n";

$msg .= "\n";

$msg .= "\n";

$msg .= $_POST['cognome'];

$msg .= "\n";

$msg .= $_POST['nome'];

$msg .= "\n";

$msg .= $_POST['ragionesociale'];

$msg .= "\n";

$msg .= $_POST['indirizzo'];

$msg .= "\n";

$msg .= $_POST['localita'];

$msg .= "\n";

$msg .= $_POST['email'];

$msg .= "\n";

$msg .= $_POST['telefono'];

$msg .= "\n";

$msg .= $_POST['cod_part'];

$msg .= "\n";

$msg .= $_SESSION[cod];




//if (trim($cognome)=="" or trim($nome)=="" or trim($ragionesociale)=="" or trim($indirizzo)=="" or trim($localita)=="" or trim($email)=="" or trim($telefono)=="" or trim($cod_part)=="") {

//echo "I campi obbligatori devono essere riempiti...torna indietro";



//}else if(!$risultato = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email)){

//echo " <b>$email</b> non è un indirizzo email valido";



//}

//else{

// permetto anche l'inserimento del simbolo ' es: l'altra volta...

$cognome=addslashes(stripslashes($cognome));

$nome=addslashes(stripslashes($nome));

$ragionesociale=addslashes(stripslashes($ragionesociale));

$indirizzo=addslashes(stripslashes($indirizzo));

$localita=addslashes(stripslashes($localita));

$email=addslashes(stripslashes($email));

$telefono=addslashes(stripslashes($telefono));

$cod_part=addslashes(stripslashes($cod_part));





// setto il primo carattere in maiuscolo

$cognome=ucfirst($cognome);

$nome=ucfirst($nome);

$msg .= mostraCarrello();

$header = "From:<xxx@yahoo.it>\n";

$header .= "Reply-To:<xxx@yahoo.it>\n";

$header .= "MIME-Version: 1.0\n";

$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";

$header .= "Content-Transfer-Encoding: 7bit\n\n";



$msg = "<html><body bgcolor=black>

<center><table width=\"803\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=orange>

<tr>

<td><font color=orange><p align=\"left\"><br>Ciao <b>$cognome $nome</b>, Stealk è felice di darti il suo benvenuto

<br><p align=\"justify\">Portando a termine l'iscrizione potrai subito acquistare i nostri prodotti effettuando il login<br>

Per effettare il login basta inserire la username e la password da te scelte negli appositi campi della sezione situata nella colonna sinistra<br>

<br>

<br>

<b>DATI PER LA SPEDIZIONE</b><br>

<br>

COGNOME:<b>$cognome</b><br>

NOME:<b>$nome</b><br>

RAGIONE SOCIALE:<b>$ragionesociale</b><br>

PARTITA IVA/CODICE FISCALE:<b>$cod_part</b><br>

INDIRIZZO:<b>$indirizzo</b><br>

LOCALITA:<b>$localita</b><br>

EMAIL:<b>$email</b><br>

TELEFONO:<b>$telefono</b><br>



<br>

Per non perdere i dati ti consiglio di non cancellare questa email

<br><br>Per completare l'iscrizione non ti resta che cliccare nel collegamento sottostante...Se

il collegamento non funziona, copia l'URL e incollala nella barra degli indirizzi del tuo browser(Internet explorer, firefox)<br>

<br><p align=\"center\">



<p align=\"right\">



Cordiali saluti<br>

<i>Traxsung</i>

</font>

</td>

</tr></table><hr>";





$subject = "Acquisto Prodotti";







mail("xxx@yahoo.it", $subject, $msg, $header );





//}

?>




In pratica questo script è così composto: Scelgo i prodotti li aggiunge al carrello, poi compilo ordine.php ed infine con confermaordine.php mi arriva l'emai con i dati del cliente.

Adesso vorre aggiungere anche la lista dei prodotti ordinati (magari sotto forma di tabella) ma purtroppo non so come si fa


Mi aiutate perfavore??


Grazie

Traxsung

Traxsung
30-08-2007, 17:02
Ragazzi potete aiutarmi perfavore ??

Traxsung
31-08-2007, 11:26
nessuno ??

Traxsung
01-09-2007, 12:38
ragazzi ho veramente bisogno di un aiutino :cry:

Traxsung
02-09-2007, 13:02
ragazzi... ma il php in questo forum non lo usa nessuno ??
Ho veramente bisogno d'aiuto....

shining_grin
02-09-2007, 23:03
$msg .= mostraCarrello();

$header = "From:<xxx@yahoo.it>\n";

$header .= "Reply-To:<xxx@yahoo.it>\n";

$header .= "MIME-Version: 1.0\n";

$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";

$header .= "Content-Transfer-Encoding: 7bit\n\n";



$msg = "<html><body bgcolor=black>
Premetto che di php so poco e niente, però provo a darti una mano cmq...

Da questa parte di codice vedo che alla fine il sottoprogramma mostraCarrello lo chiami e il risultato lo accodi alla variabile $msg.
Poi però quella variabile la sovrascrivi totalmente.
Non sarebbe il caso di provare a chiamare in modo diverso la variabile dove inserisci tutto il codice html e inserirci dentro anche la variabile $msg che hai creato prima?

Traxsung
02-09-2007, 23:23
intanto grazie per la risposta.
Puoi spiegarmi meglio ???

Traxsung
06-09-2007, 23:50
ragazzi cerco aiuto pagando per il disturbo anche

waielsi
10-09-2007, 14:52
ehila...

non so se hai gia' risolto..

cmq io fossi in te mi rivedrei un po' il modo di programmare... HTML innestato con PHP... brrrr.. certo questione di gusti pero' cosi' una qualsiasi "applicazione" e' ingestibile.

anyway.. come ti e' stato suggerito
usa la funzione mostraCarrello(), gli strippi tutto l'html e lo concateni al testo dell'email.

dov'e' la difficolta'??

forse ho capito io male la logica della tua applicazione, ma nn vedo nessuna complicazione o cosa difficile visto che hai fatto tutto il resto :) (l'hai fatto tu vero?)