E-mail con php

Ciao a tutti ragazzi,

oggi vediamo insieme la funzione mail(); del sacrosanto linguaggio per il web: il php.

Introduzione

Tutto è molto semplice,

tutto ricorda molto l’inglese.

Con questa funzione si possiamo inviare tramite il nostro browser una email a qualsiasi destinatario.

Come tutte le funzioni la funzione mail(); ha alcuni parametri che sono obbligatori,

altri che sono facoltativi.

Vediamo insieme come usarla:

 

<?php
mail($to, $subject, $message);
?>

Questa che vediamo qui sopra è un esempio di utilizzo della funzione mail con davvero il minimo indispensabile!:)

Notiamo in perfetto ordine tre variabili che sono i tre parametri obbligatori di questa funzione:

$to,è la variabile che rappresenta il destinatario dell’email

$subject,è l’oggetto dell’email

$message, è il messaggio dell’email

Possiamo definire queste variabili ottenendo questo codice:

<?php

$to=”matteoiamma@hotmail.it“;

$subject=”Test”;

$message=”Ciao,messaggio di prova”;
mail($to, $subject, $message);
?>

Dato che i parametri gli abbiamo messi in variabili possiamo comportarci come vogliamo!

La cosa più ovvia da fare adesso è uno semplice script che consente di farci contattare dai visitatori del nostro sito.

Come?

Molto semplice.

Ecco in teoria cosa dovremmo fare:

-Una semplice pagina statica(html) contenente un modulo(form) con campi di testo basilari(Nome,Email,Messaggio). Questo modulo punterà alla nostra pagina php d’azione:.)

-Una pagina php d’azione. In questa pagina,innanzitutto metteremo in una variabile i dati richiamati(Con metodo post) dai campi di testo prrima visti, dopodichè useremo la magica funzione mail(); mettendo come attributi le variabili prima definite

Vediamo i codici.

form.html

 <form id=”email” action=”send.php” method=”post” name=”email”>
   <div align=”center”>
    <br />
    Tuo Nome<br />
    <input type=”text” name=”nome” size=”24″ /><br />
    <br />
    Tua Email<br />
    <input type=”text” name=”email” size=”24″ /><br />
    <br />
    Messaggio <br />
    <textarea name=”messaggio” rows=”4″ cols=”40″></textarea><br />
    <br />
    <input type=”submit” name=”mail” value=”Contattami” /></div>
  </form>

send.php

<?php
//VERY VERY SIMPLE MAIL CODE BY MATTEOIAMMA -WWW.MATTEOIAMMARRONE.COM
//METTIAMO I DATI DI OGNI SINGOLO CAMPO DI TESTO CONTENUTO NEL FORM HTML IN UNA VARIABILE
$nome=$_POST[‘nome’];
$email=$_POST[‘email’];
$messaggio=$_POST[‘messaggio’];
//INVIAMO L’EMAIL USANDO LA FUNZIONE EMAIL
//E RICHIAMANDO LE VARIABILI
mail(“miacasella@miosito.it“, “Contatto dal mio sito”, ”
Un utente dal mio sito mi ha contattato.
Dati utente.

Nome: $nome
Email: $email
Messaggio:
$messaggio
“);

?>

Quello sovrastante è uno script basilare(ma comunque utilissimo e funzionale) per l’invio di email dal nostro sito.

Se siete esperti di programmazione potete modificarlo,estenderlo,altrimenti limitatevi a personalizzare la grafica.

Esempi di personalizzazione

Vogliamo ad esempio rendere obbligatorio il campo email?

Semplice.

Inseriamo questo codice prima della funzione mail() del codice che abbiamo visto prima.

if ($messaggio == “”){        //SE LA VARIABILE MESSAGGIO E’ VUOTA,CIOè è UGUALE A “”(UGUALE A NIENTE,VUOTA)

echo “E’ obbligatorio inserire un messaggio!”;

}

Possiamo anche mettere quest’altro controllo:

if ($funzione){ //SE FUNZIONE SIGNIFICA: SE LA VARIABILE FUNZIONE C’è,VIENE ESEGUITA
echo “Email inviata con successo!”;
} else { //ALTRIMENTI
echo “C’è stato un problema nell’invio dell’email”;
}

Se dobbiamo mettere il controllo sovrastante,però dobbiamo modificare la funzione mail(); vista prima mettendola in una variabile(in questo modo $funzione = mail..ecc(il resto uguale:))

Vi ringrazio per l’attenzione.

Speriamo bene e buon natale:)
Matteo.

Unire due forums bbtonuke

Salve gente bene vi mostro la mia piccola guida per unire 2 forums.

Scaricate il converter conv_nuke_1_2_14.zip

Installate i forums phpbb 2, potete prelevarli da qui:
http://www.phpbb.com/downloads/legacy.php

Un forum phpbb nella root del vostro phpnuke chiamandola forum e installandolo con tabelle phpbb_

Installate l’altro forum da unire nella root dell’altro phpnuke con tabelle phpbb2_

Create un file .php chiamatelo merge.php e incollate il seguente codice: (inserendo i dati giusti)

 

<?

// di solito la path che segue è forum ma voi mettete la path dove avete il forum principale
$dbms = ‘mysql’;
$phpbb_root_path = ‘../forum/’;

$dbhost = ‘localhost’;
$dbuser = ‘nome_database principale dove verrà creato il database unito dei 2 forum’;
$dbpasswd = ‘tua passw’;

// Name and prefix for the database that should keep the original IDs
$dbname1 = ‘nome_database dove avete installato il backup del primo forum’;
$table_prefix1 = ‘phpbb_’;

// Name and prefix for the database that is going to be added
// to DB1.
$dbname2 = ‘nome_database dove avete installato il backup del secondo forum’;
$table_prefix2 = ‘phpbb2_’;

# NO NEED TO MODIFY CODE BELOW
# MODIFY ONLY IF U KNOW WHAT U R DOING

define(‘IN_PHPBB’, true);
// Use DB1 for the initial config table etc.
$dbname = $dbname1;
$table_prefix = $table_prefix1;
include($phpbb_root_path . ‘extension.inc’);
include($phpbb_root_path . ‘includes/constants.’.$phpEx);
include($phpbb_root_path . ‘includes/db.’.$phpEx);

// These tables can be dropped from DB2 (not used in this script)
$drop_tables = array(
   “config”,
   “banlist”, // This one could be converted
   “disallow”,
   “search_results”,
   “search_wordlist”,
   “search_wordmatch”,
   “sessions”,
   “smilies”,
   “themes”,
   “themes_name”,
   “words”
   );
   
// All tables in DB2 that should shift ID.
//  – table that needs shifting (categories)
//  – id in table (cat_id)
//    nested array:
//    – table that depends on id (forums)
//    – id that corresponds to id in original table (cat_id)
$shift_tables = array(
   “categories” => array(
      “cat_id”,
      array(
         array(“forums”, “cat_id”)
      )
   ),
   “forums” => array(
      “forum_id”,
      array(
         array(“posts”, “forum_id”),
         array(“topics”, “forum_id”),
         array(“forum_prune”, “forum_id”),
         array(“auth_access”, “forum_id”)
      )
   ),
   “forum_prune” => array(
      “prune_id”,
      array()
   ),
   “groups” => array(
      “group_id”,
      array(
         array(“user_group”, “group_id”),
         array(“auth_access”, “group_id”)
      )
   ),
   “posts” => array(
      “post_id”,
      array(
         array(“posts_text”, “post_id”),
         array(“topics”, “topic_first_post_id”),
         array(“topics”, “topic_last_post_id”),
         array(“forums”, “forum_last_post_id”)
      )
   ),
   “privmsgs” => array(
      “privmsgs_id”,
      array(
         array(“privmsgs_text”, “privmsgs_text_id”),
         array(“users”, “user_last_privmsg”)
      )
   ),
   “topics” => array(
      “topic_id”,
      array(
         array(“posts”, “topic_id”),
         array(“topics_watch”, “topic_id”),
         array(“vote_desc”, “topic_id”)
      )
   ),
   “users” => array(
      “user_id”,
      array(
         array(“user_group”, “user_id”),
         array(“groups”, “group_moderator”),
         array(“posts”, “poster_id”),
         array(“topics”, “topic_poster”),
         array(“privmsgs”, “privmsgs_to_userid”),
         array(“privmsgs”, “privmsgs_from_userid”),
         array(“topics_watch”, “user_id”),
         array(“vote_voters”, “vote_user_id”)
      )
   ),
   “ranks” => array(
      “rank_id”,
      array(
         array(“users”, “user_rank”)
      )
   ),
   “vote_desc” => array(
      “vote_id”,
      array(
         array(“vote_voters”, “vote_id”),
         array(“vote_results”, “vote_id”)
      )
   )
);

$bla_tables = array(
   “auth_access”,
   “user_group”,
   “posts_text”,
   “privmsgs_text”,
   “topics_watch”,
   “vote_results”,
   “vote_voters”
   );

// Traverse the shift_tables array

foreach($shift_tables as $key => $value)
{
   $table = $key;
   $merge_tables[$table] = 0; // keep an array with all tables that need merging
   $column = $value[0]; // Column with ID that needs to be shifted
   $ref = $value[1]; // Tables that are using the mentioned ID.
   print “Shifting IDs in table $table<br />\n”;
   $max = shift_ids($table, $column);
   flush();
   // Do the dependent tables
   foreach($ref as $key => $value)
   {
      $d_table = $value[0];
      $merge_tables[$d_table] = 0;
      $d_column = $value[1];
      print “&nbsp; Altering dependent table: $d_table : $d_column (offset = $max)<br />\n”;
      flush();
      shift_ids($d_table, $d_column, $max);
   }
   
   print “<br />\n”;
   flush();
}

foreach($merge_tables as $table => $value)
{
   print “Merging $table table: “;
   if(merge_tables($table))
   {
      print ” OK<br />\n”;
   }
   else
   {
      print ” FAILED!<br />\n”;
   }
}

print “Merging users (username and either password or email are the same).<br />”;
$sql = ”
   SELECT
      u1.user_id as id1,
      u2.user_id as id2,
      u1.username
   FROM
      ” . USERS_TABLE . ” u1,
      ” . USERS_TABLE . ” u2
   WHERE
      u1.username = u2.username
      && (u1.user_password = u2.user_password
         || u1.user_email = u2.user_email)
      && u1.user_id != u2.user_id
      && u1.user_id < u2.user_id”;
if(!$result = $db->sql_query($sql))
{
    message_die(GENERAL_ERROR, ‘Could not query for double user records.’, ”, __LINE__,

__FILE__, $sql);
}

print “<table cellpadding=’0′ cellspacing=’0′>”;
while($row = $db->sql_fetchrow($result))
{
   print “<tr><td> “.$row[‘id1’].”&nbsp;</td><td> “.$row[‘id2’].”&nbsp;</td><td>

“.$row[‘username’].”&nbsp;</td><td> “;
   merge_users($row[‘id1’], $row[‘id2’]);
   print ” </td></tr>\n”;
}
print “</table>”;

function merge_users($user_id1, $user_id2)
{
   global $db;
   global $shift_tables;
   global $table_prefix1;
   
   $user_deps = $shift_tables[‘users’][1];

   // The users table should be skipped and the user_posts column should be updated.
   
   foreach($user_deps as $key => $value)
   {
      $d_table = $value[0];
      $d_column = $value[1];
      $sql = “UPDATE $table_prefix1$d_table SET $d_column = $user_id1 WHERE $d_column =

$user_id2″;
      if(!$result = $db->sql_query($sql))
      {
          message_die(GENERAL_ERROR, ‘Could not update user_id.’, ”, __LINE__, __FILE__, $sql);
      }
   }
   
   $sql = “DELETE FROM ” . $table_prefix1 . “users WHERE user_id = $user_id2″;
   if(!$result = $db->sql_query($sql))
   {
       message_die(GENERAL_ERROR, ‘Could not delete user2.’, ”, __LINE__, __FILE__, $sql);
   }

   print “OK”;
   return;
}

function double_users()
{
   global $db;
   global $table_prefix1;

   $users_table = $table_prefix1 . “users”;

   $sql = “SELECT user_id, “;
}

function merge_tables($table)
{

echo “<H1>Merging table : $table </H1>”;

   global $db;
   global $dbname1, $table_prefix1, $dbname2, $table_prefix2;

   
   $sql = “SHOW FIELDS FROM $table_prefix1$table”;
   if(!$result = $db->sql_query($sql))
   {
       message_die(GENERAL_ERROR, ‘Could not get field info from $table.’, ”, __LINE__,

__FILE__, $sql);
   }
   
   $fields = array();
   while($row = $db->sql_fetchrow($result))
   {
      $fields[] = $row[‘Field’];
   }
   $fieldlist = implode($fields, ‘, ‘);
   

   if($table == ‘users’)
   {
      $where = ” WHERE $dbname2.$table_prefix2″ . $table . “.user_id > 0″;
   }
   else
   {
      $where = ”;
   }

   echo “$table”;
   
   $sql = “INSERT INTO $dbname1.$table_prefix1″.$table.” ($fieldlist) SELECT $fieldlist from

$dbname2.$table_prefix2″ . $table . $where;
   if(!$db->sql_query($sql))
   {
       message_die(GENERAL_ERROR, ‘Could not merge $table.’, ”, __LINE__, __FILE__, $sql);
   }

   return TRUE;
}

// Shift all ID’s in column $id in table $table in
// database 2 by MAX($id) or (if not 0) by $offset
function shift_ids($table, $id, $offset = 0)
{
   global $db;
   global $dbname1, $table_prefix1;
   global $dbname2, $table_prefix2;

   // Offset hasn’t been given, we’re going to figure it out ourselfs
   if($offset == 0)
   {
      if(!$offset = getmax($dbname1, $table_prefix1.$table, $id))
      {
         // Empty table, no need to shift IDs
         print “Empty table? Skipping…<br />\n”;
         return;
      }
   }

   // What’s the max_id in the current table?
   $max2 = getmax($dbname2, $table_prefix2.$table, $id);
$max2 = intval($max2); // Make sure that max2 contains a number, make it 0 if this table is empty.

// First we add the offset + the max of the current table
   // Treat values of 0 and lower as special values.
   $sql = “UPDATE $dbname2.” . $table_prefix2 . $table . ” SET $id = $id + $max2 + $offset WHERE

$id > 0″;
   print “$sql<br />\n”;
   if(!$result = $db->sql_query($sql) )
   {
       message_die(GENERAL_ERROR, ‘Could not fetch max(id).’, ”, __LINE__, __FILE__, $sql);
   }
   
   // Then we subtract the max of the current table again.
   // We do this to prevent problems with key constrains from happening
   // i.e. if we do id=id+20 on key 1 when key 21 already exists we would get an error
   $sql = “UPDATE $dbname2.” . $table_prefix2 . $table . ” SET $id = $id – $max2 WHERE $id > 0″;
   print “$sql<br />\n”;
   if(!$result = $db->sql_query($sql) )
   {
       message_die(GENERAL_ERROR, ‘Could not fetch max(id).’, ”, __LINE__, __FILE__, $sql);
   }

   return $offset;
}

function getmax($dbname, $table, $id)
{
   global $db;
      $sql = “SELECT MAX($id) as max_id FROM $dbname.” . $table;
      if(!$result = $db->sql_query($sql) )
      {
          message_die(GENERAL_ERROR, ‘Could not fetch max(id).’, ”, __LINE__, __FILE__, $sql);
      }
      if($max = $db->sql_fetchrow($result))
      {
         return($max[‘max_id’]);
      }
      else
      {
         // Probably no rows where returned.. Empty table.
         return FALSE;
      }
}

function message_die($msg_code, $msg_text = ”, $msg_title = ”, $err_line = ”, $err_file = ”,

$sql = ”)
{
   global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path, $nav_links,

$gen_simple_header;
   global $userdata, $user_ip, $session_length;
   global $starttime;

   $sql_store = $sql;
   
   //
   // Get SQL error if we are debugging. Do this as soon as possible to prevent
   // subsequent queries from overwriting the status of sql_error()
   //
   $sql_error = $db->sql_error();

   $debug_text = ”;

   if ( $sql_error[‘message’] != ” )
   {
      $debug_text .= ‘<br /><br />SQL Error : ‘ . $sql_error[‘code’] . ‘ ‘ .

$sql_error[‘message’];
   }

   if ( $sql_store != ” )
   {
      $debug_text .= “<br /><br />$sql_store”;
   }

   if ( $err_line != ” && $err_file != ” )
   {
      $debug_text .= ‘</br /><br />Line : ‘ . $err_line . ‘<br />File : ‘ . $err_file;
   }

   print $debug_text;

   exit;
}

echo “Done”;

?>

 

Quindi uppate merge.php nella root del vostro forum

Ora convertite i vostri bbtonuke in phpbb2 con il converter sopra fornito.

Fate il backup del database del forum secondario con i prefix phpbb2_ e uppatelo nel database principale dove avete i prefix phpbb_

Quindi in definitiva dovremo avere il forum principale con i prefix phpbb_ e quello secondario con i prefix phpbb2_

Ora dal nostro brower lanciamo lo script http://www.tuosito.com/forum/merge.php

In base alla dimensione del vostro database c’impiegherà un po di tempo.

Al termine vi dirà l’esito della vostra fusione.
Quindi vi troverete con post, topic, sezioni, user uniti in un unico grande forum.

Guida liberamente tratta dal forum di weblord:

http://www.weblord.it/web/postt23110.html

scritta da mhorpheox

Arrivano bellissime battute per il web da Smemoranda

Ecco a voi alcune battute e “barze” tratte dai diari 2008 di “Smemoranda:)”. Battute che fanno satira

su argomenti quali il web,internet,cellulari e telecomunicazioni.

 

Mike: Oggi mi è arrivata una lettera di mia zia

John: Non poteva inviartela via email?

Mike: Quando l’ha imbucata non avevano ancora inventato il computer!

——

Un ragazzo ad un anziano

Ma quando non si potevano digitare i messaggini voi che ne facevate del pollice?

——————

Mario: Ci siamo conosciuti in un forum,frequentati nel newsgroup e messi insieme in chat. Ora non so come scaricarla.

John: Prova con il download!

——————————

Michela: MI sono fidanzata grazie ad internet….

con il tecnico che veniva ogni giorn a riparare il modem!

—————–

Un programmatore racconta ai suoi compagni:

“Ieri ho conosciuto una ragazza veramente gnocca in discoteca!”

I compagni: “Ma va’”

“La invito a casa mia,le offro una cosa da bere e comincio a baciarla”

“Dai!”

“lei mi fa: “Spogliami!””

“Nooooo!” Rispondo io.

“Al che io la sollevo e la faccio sedere sulla tastiera del mio nuovo pc e…”

I compagni: “Hai un pc nuovo?Figata!Che processore?”

——————————

Marco: Usciamo insieme?

Maria: Se compili correttamente il form

—————

Giulia: Siamo stati promossi!

Alessandro: YAHOO!

———————-

Silvia: Ho smesso con la chat.

A forza di cmabiare nick per conoscere gente una sera ho finito per invitare a cena me stessa!

—————

Antonio: Abbiamo un pc,un telefono fisso e due cellulari…

Maria: E niente da dirci..:(

—————-

Giulio: Mi hai tradito con tutti!

Antonella: Non è colpa mia…era una community!:)

 

Queste battute sono tratte dal diario smemoranda 2008,le ho fedelmente ricopiate e leggermente modificate/adattate.

Pensare dunque essere