Back to top

Autore Topic: form personalizzata  (Letto 2410 volte)

Offline bux23

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
form personalizzata
« il: 24 Nov 2010, 08:10:27 »
Salve a tutti :)

Premetto che sono nuovo di joomla e neanche troppo esperto di php... ^^
Ho creato una form html che ho inserito dentro un articolo, questa form agisce su una pagina che ho messo dentro la root del mio sito. Questa pagina dovrebbe mandare un email contenete i valori dei campi riempiti nella form, assieme ai dati di registrazione di virtuemart dell'utente che sta rimependo la form, e inserire tutti questi dati in una tabella del db creata da me.

Non riesco ad accedere ai dati relativi al user. ho provato vari metodi ma sono rimasto confuso tra quelli di joomla 1 e 1.5, ne ho provati un po , ma l'errore è sempre quasi lo stesso:
Restricted access
Dovrei fare una query come nel codice sottoscritto per accedere al db dei user di virtuemart? sbaglio tutto?
Ho provato a creare la form con chronoform che rende facile anche limplementazione con il db, ma anche qui non so ocme accedere ai dati di registrazione di virtuemart, e come poterli far mandare nell'email, aggiungerli al db, ma non farli vedere allutente nella form.

Aiuto  ::)

Grazie in anticipo

Non scrivo il codice della form perche è una semplice form html con action sulla pagina php
ecco il codice della pagina php:
Codice: [Seleziona]
<?php

define
'_VALID_MOS');
require_once( 
'configuration.php' );
require_once( 
'includes/joomla.php' );
require_once( 
'includes/frontend.php' );
require_once( 
'globals.php' );

define'_JEXEC'); 
define('JPATH_BASE'dirname(__FILE__)); 
define'DS'DIRECTORY_SEPARATOR ); 
require_once ( 
JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
require_once ( 
JPATH_BASE .DS.'includes'.DS.'framework.php' );  
$mainframe =& JFactory::getApplication('site');
$curuserId JFactory::getUser()->username;


// input vars

$prodotto $_POST['prodotto'];
$marca $_POST['marca'];
$modello $_POST['descrizione'];
$garanzia $_POST['garanzia'];
$passwordos $_POST['passwordos'];
$note $_POST['note'];
$accessori $_POST["accessori"];
$difetto $_POST["difetto"];
$serialnum $_POST["serialnum"];

// current user vars and query

$link mysql_connect('$host','$user','$password');
mysql_select_db('$db',$link);


 
$query "SELECT * FROM #__jos_vm_user_info WHERE id =".$curuserId."";
$result mysql_query($query) or die(mysql_error());
$row mysql_fetch_array($result) or die(mysql_error());

$nome $row['firt_name'];
$cognome $row['las_name'];
$usrmail $row['user_email'];
$tel1 $row['phone_1'];
$tel2 $row['phone_2'];
$fax $row['fax'];
$indirizzo $row['address_1'];
$zipcode $row['zip'];
$citta $row['city'];
$nazione =$row['country'];
$piva $row['extra_field_1'];
$cf  $row['extra_field_1'];
$ragionesociale $row['company'];

mysql_close();

//mail vars

$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$headers .= 'From: Richieste Online <richiesteOnline>' "\r\n";
$to "richieste@vanguardpc.com";
$subject "ritiro".$prodotto;
$body "
<html>
<head>
</head>
<body>
<table>
<tr>
<td>
Richiedente: ID web: "
.$curuserId." ".$nome."<br />".$cognome." ".$usrmail."<br />".$telefono."<br />".$telefono2."<br />".$indirizzo."<br />".$citta."<br />

Prodotto: "
.$prodotto."<br />marca: ".$marca."<br />Modello: ".$modello."<br />Garanzia: ".$garanzia."<br />Password OS: ".$passwordos." <br />Numero seriale: ".$serialnum." <br />
Accessori: "
.$accessori."<br />Difetto: ".$difetto."Note: ".$note."
</td>
</tr>
</table>
</body>
"
;



 
if (
$marca!="" && $modello!="" && $difetto!="") {
if(mysql_query("INSERT INTO #__jos_crm (numerintervento,dataingresso,id,cognome,nome,email,tel1,tel2,tel3,fax,indirizzo,citta,cap,nazione,ragionesociale,piva,cf,prodotto,marca,modello,garanzia,seriale,passwordos,accessori,difetto,note,status,diagnostica,lavfare,lavfatte,notifica,sostituzioni,spese,totale) VALUES('NULL','NULL','".$curuserId."', '".$cognome."','".$nome."','".$usrmail."','".$tel1."','".$tel2."','NULL','".$fax."','".$indirizzo."','".$citta."','".$cap."','".$nazione."','".$ragionesociale."','".$piva."','".$cf."','".$prodotto."','".$marca."','".$modello."','".$garanzia."','".$seriale."','".$passwordos."','".$accessori."','".$difetto."','".$note."','".$status."','".$diagnostica."','".$lavfare."','".$lavfatte."','".$notifica."','".$sostituzioni."','".$spese."','".$totale."' ) ")){

mail($to$subject$body$headers);
echo '<script type="text/javascript">alert("Richiesta Inoltrata")</script>
<script>window.location = "index.php?option=com_content&view=article&id=8"</script>'
;
}
}
else {
echo '<script type="text/javascript">alert("Compilare tutti i campi richiesti")</script> ';
sleep(1);
echo '<script type="text/JavaScript"> javascript:history.go(-1) </script>';
}

  
?>



Offline bux23

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:form personalizzata
« Risposta #1 il: 24 Nov 2010, 16:35:58 »
Codice aggiornato con query di joomla, pero sempre errore restricted access.
sicuramente sbaglio nelle query?

nuovo codice:
Codice: [Seleziona]
<?php

define
'_VALID_MOS');
require_once( 
'configuration.php' );
require_once( 
'includes/joomla.php' );
require_once( 
'includes/frontend.php' );
require_once( 
'globals.php' );

define'_JEXEC'); 
define('JPATH_BASE'dirname(__FILE__)); 
define'DS'DIRECTORY_SEPARATOR ); 
require_once ( 
JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
require_once ( 
JPATH_BASE .DS.'includes'.DS.'framework.php' );  
$mainframe =& JFactory::getApplication('site');
$curuserId JFactory::getUser()->username;



// input vars

$prodotto $_POST['prodotto'];
$marca $_POST['marca'];
$modello $_POST['descrizione'];
$garanzia $_POST['garanzia'];
$passwordos $_POST['passwordos'];
$note $_POST['note'];
$accessori $_POST["accessori"];
$difetto $_POST["difetto"];
$serialnum $_POST["serialnum"];

// current user vars and query

$dbx =& JFactory::getDBO();
$queryusr "SELECT * FROM #__jos_vm_user_info WHERE id =".$curuserId."";
$dbx->setQuery($queryusr);
$row $dbx->loadRow();

$nome $row['firt_name'];
$cognome $row['las_name'];
$usrmail $row['user_email'];
$tel1 $row['phone_1'];
$tel2 $row['phone_2'];
$fax $row['fax'];
$indirizzo $row['address_1'];
$zipcode $row['zip'];
$citta $row['city'];
$nazione =$row['country'];
$piva $row['extra_field_1'];
$cf  $row['extra_field_1'];
$ragionesociale $row['company'];

mysql_close();

//mail vars

$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$headers .= 'From: Richieste Online <richiesteOnline>' "\r\n";
$to "richieste@vanguardpc.com";
$subject "ritiro".$prodotto;
$body "
<html>
<head>
</head>
<body>
<table>
<tr>
<td>
Richiedente: ID web: "
.$curuserId." ".$nome."<br />".$cognome." ".$usrmail."<br />".$telefono."<br />".$telefono2."<br />".$indirizzo."<br />".$citta."<br />

Prodotto: "
.$prodotto."<br />marca: ".$marca."<br />Modello: ".$modello."<br />Garanzia: ".$garanzia."<br />Password OS: ".$passwordos." <br />Numero seriale: ".$serialnum." <br />
Accessori: "
.$accessori."<br />Difetto: ".$difetto."<br />Note: ".$note."
</td>
</tr>
</table>
</body>
"
;



 
if (
$marca!="" && $modello!="" && $difetto!="") {
$queryinsert "INSERT INTO #__jos_crm (numerintervento,dataingresso,id,cognome,nome,email,tel1,tel2,tel3,fax,indirizzo,citta,cap,nazione,ragionesociale,piva,cf,prodotto,marca,modello,garanzia,seriale,passwordos,accessori,difetto,note,status,diagnostica,lavfare,lavfatte,notifica,sostituzioni,spese,totale) VALUES('NULL','NULL','".$curuserId."', '".$cognome."','".$nome."','".$usrmail."','".$tel1."','".$tel2."','NULL','".$fax."','".$indirizzo."','".$citta."','".$cap."','".$nazione."','".$ragionesociale."','".$piva."','".$cf."','".$prodotto."','".$marca."','".$modello."','".$garanzia."','".$seriale."','".$passwordos."','".$accessori."','".$difetto."','".$note."','".$status."','".$diagnostica."','".$lavfare."','".$lavfatte."','".$notifica."','".$sostituzioni."','".$spese."','".$totale."' ) ";
if ($dbx->setQuery($queryinsert)){
mail($to$subject$body$headers);
echo '<script type="text/javascript">alert("Richiesta Inoltrata")</script>
<script>window.location = "index.php?option=com_content&view=article&id=8"</script>'
;
}
}
else {
echo '<script type="text/javascript">alert("Compilare tutti i campi richiesti")</script> ';
sleep(1);
echo '<script type="text/JavaScript"> javascript:history.go(-1) </script>';
}

  
?>


Offline bux23

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:form personalizzata
« Risposta #2 il: 24 Nov 2010, 21:57:02 »
risolto finserendo la mia form html dentro un modulo jumi, dal modulo richiesta user id con jfactory e passata alla pagina esterna con campo hidden.
La pagina esterna non dovendosi piu legare a joomla non da errori.

Offline ilvanni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 7038
  • Sesso: Maschio
  • Giovanni Vacca
    • Mostra profilo
Re:form personalizzata
« Risposta #3 il: 24 Nov 2010, 22:34:21 »
ciao bux23, ti ringrazio per aver condiviso la soluzione. :)

 



Web Design Bolzano Kreatif