|
[x]
Posted via EE Mobile
|
||
Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again. |
||
| Question |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: |
<?php // RAY_vcard_mailer.php
// PLACE YOUR NAME AND EMAIL ADDRESS HERE:
$my_name = "FirstNameHere";
$my_email = "me@myself.com";
// PLACE YOUR DOMAIN NAME HERE - NO WWW - LIKE google.com
$my_domain = "domain.com";
// THIS CODE IS ADAPTED FROM http://www.troywolf.com/articles/php/class_vcard/
class vcard {
var $log;
var $data; //array of this vcard contact data
var $filename; //filename for download file naming
var $class; //PUBLIC, PRIVATE, CONFIDENTIAL
var $revision_date;
var $card;
/*
The class constructor. You can set some defaults here if desired.
*/
function vcard() {
$this->data = array(
"display_name"=>null
,"first_name"=>null
,"last_name"=>null
,"additional_name"=>null
,"name_prefix"=>null
,"name_suffix"=>null
,"nickname"=>null
,"title"=>null
,"role"=>null
,"department"=>null
,"company"=>null
,"work_po_box"=>null
,"work_extended_address"=>null
,"work_address"=>null
,"work_city"=>null
,"work_state"=>null
,"work_postal_code"=>null
,"work_country"=>null
,"home_po_box"=>null
,"home_extended_address"=>null
,"home_address"=>null
,"home_city"=>null
,"home_state"=>null
,"home_postal_code"=>null
,"home_country"=>null
,"office_tel"=>null
,"home_tel"=>null
,"cell_tel"=>null
,"fax_tel"=>null
,"pager_tel"=>null
,"email1"=>null
,"email2"=>null
,"url"=>null
,"photo"=>null
,"birthday"=>null
,"timezone"=>null
,"sort_string"=>null
,"note"=>null
);
return true;
}
/*
build() method checks all the values, builds appropriate defaults for
missing values, generates the vcard data string.
*/
function build() {
/*
For many of the values, if they are not passed in, we set defaults or
build them based on other values.
*/
if (!$this->class) { $this->class = "PUBLIC"; }
if (!$this->data['display_name']) {
$this->data['display_name'] = trim($this->data['first_name']." ".$this->data['last_name']);
}
if (!$this->data['sort_string']) { $this->data['sort_string'] = $this->data['last_name']; }
if (!$this->data['sort_string']) { $this->data['sort_string'] = $this->data['company']; }
if (!$this->data['timezone']) { $this->data['timezone'] = date("O"); }
if (!$this->revision_date) { $this->revision_date = date('Y-m-d\TH:i:s'); }
$this->card = "BEGIN:VCARD\r\n";
$this->card .= "VERSION:3.0\r\n";
$this->card .= "CLASS:".$this->class."\r\n";
$this->card .= "PRODID:-//class_vcard from TroyWolf.com//NONSGML Version 1//EN\r\n";
$this->card .= "REV:".$this->revision_date."\r\n";
$this->card .= "FN:".$this->data['display_name']."\r\n";
$this->card .= "N:"
.$this->data['last_name'].";"
.$this->data['first_name'].";"
.$this->data['additional_name'].";"
.$this->data['name_prefix'].";"
.$this->data['name_suffix']."\r\n";
if ($this->data['nickname']) { $this->card .= "NICKNAME:".$this->data['nickname']."\r\n"; }
if ($this->data['title']) { $this->card .= "TITLE:".$this->data['title']."\r\n"; }
if ($this->data['company']) { $this->card .= "ORG:".$this->data['company']; }
if ($this->data['department']) { $this->card .= ";".$this->data['department']; }
$this->card .= "\r\n";
if ($this->data['work_po_box']
|| $this->data['work_extended_address']
|| $this->data['work_address']
|| $this->data['work_city']
|| $this->data['work_state']
|| $this->data['work_postal_code']
|| $this->data['work_country']) {
$this->card .= "ADR;TYPE=work:"
.$this->data['work_po_box'].";"
.$this->data['work_extended_address'].";"
.$this->data['work_address'].";"
.$this->data['work_city'].";"
.$this->data['work_state'].";"
.$this->data['work_postal_code'].";"
.$this->data['work_country']."\r\n";
}
if ($this->data['home_po_box']
|| $this->data['home_extended_address']
|| $this->data['home_address']
|| $this->data['home_city']
|| $this->data['home_state']
|| $this->data['home_postal_code']
|| $this->data['home_country']) {
$this->card .= "ADR;TYPE=home:"
.$this->data['home_po_box'].";"
.$this->data['home_extended_address'].";"
.$this->data['home_address'].";"
.$this->data['home_city'].";"
.$this->data['home_state'].";"
.$this->data['home_postal_code'].";"
.$this->data['home_country']."\r\n";
}
if ($this->data['email1']) { $this->card .= "EMAIL;TYPE=internet,pref:".$this->data['email1']."\r\n"; }
if ($this->data['email2']) { $this->card .= "EMAIL;TYPE=internet:".$this->data['email2']."\r\n"; }
if ($this->data['office_tel']) { $this->card .= "TEL;TYPE=work,voice:".$this->data['office_tel']."\r\n"; }
if ($this->data['home_tel']) { $this->card .= "TEL;TYPE=home,voice:".$this->data['home_tel']."\r\n"; }
if ($this->data['cell_tel']) { $this->card .= "TEL;TYPE=cell,voice:".$this->data['cell_tel']."\r\n"; }
if ($this->data['fax_tel']) { $this->card .= "TEL;TYPE=work,fax:".$this->data['fax_tel']."\r\n"; }
if ($this->data['pager_tel']) { $this->card .= "TEL;TYPE=work,pager:".$this->data['pager_tel']."\r\n"; }
if ($this->data['url']) { $this->card .= "URL;TYPE=work:".$this->data['url']."\r\n"; }
if ($this->data['birthday']) { $this->card .= "BDAY:".$this->data['birthday']."\r\n"; }
if ($this->data['role']) { $this->card .= "ROLE:".$this->data['role']."\r\n"; }
if ($this->data['note']) { $this->card .= "NOTE:".$this->data['note']."\r\n"; }
$this->card .= "TZ:".$this->data['timezone']."\r\n";
$this->card .= "END:VCARD\r\n";
}
/*
download() method streams the vcard to the browser client.
*/
function download() {
if (!$this->card) { $this->build(); }
if (!$this->filename) { $this->filename = trim($this->data['display_name']); }
$this->filename = str_replace(" ", "_", $this->filename);
header("Content-type: text/directory");
header("Content-Disposition: attachment; filename=".$this->filename.".vcf");
header("Pragma: public");
echo $this->card;
return true;
}
// METHOD produce() RETURNS THE CARD DATA INTO THE SCRIPT
function produce() {
if (!$this->card) { $this->build(); }
if (!$this->filename) { $this->filename = trim($this->data['display_name']); }
$this->filename = str_replace(" ", "_", $this->filename);
return $this->card;
}
}
if (empty($_POST)) { // PUT UP FORM
?>
<form method="POST" action="<?=$PHP_SELF?>">
<table class="vcard" border="0" cellspacing="2" border="2">
<tr>
<th class="form_vcard">First Name</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="first_name" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Last Name</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="last_name" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Company</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="company" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Title</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="title" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Street</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="work_address" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">City</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="work_city" size="18" />
,
<input type="text" name="work_state" size="2" />
<input type="text" name="work_postal_code" size="7" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Email Address</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="email1" size="40" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Office Phone</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="office_tel" size="20" />
</span></td>
</tr>
<tr>
<th class="form_vcard">Mobile Phone</th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="text" name="cell_tel" size="20" />
</span></td>
</tr>
<tr>
<th> </th>
<td class="body_text_with_margin"> <span class="form_vcard">
<input type="submit" value="Get Updates!" />
</span></td>
</tr>
</table>
</form>
<?php
}
else // PROCESS FORM INPUT
{
// PRODUCE AND MAIL A VCARD
// THIS CODE IS ADAPTED FROM http://www.troywolf.com/articles/php/class_vcard/
$vc = new vcard();
foreach ($_POST as $key=>$val) {
$vc->data[$key] = $val;
}
$vcardtext = $vc->produce();
// var_dump($vcardtext);
// SET UP THE EMAIL BASIC INFORMATION
$to = "$my_name <$my_email>";
$from = "WWW Robot <wwwrobot@$my_domain>";
$subj = "Here is a vCard";
$hdrs = "From: $from";
// CREATE THE FILE NAME
$msg_file_name = $vc->filename . '.vcf';
// SET UP THE MIME BOUNDARIES
$semi_rand = md5( time() );
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// APPEND TO THE EMAIL HEADERS
$hdrs .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// SET UP THE MESSAGE
$message = "vCard attached: $msg_file_name";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// ENCODE THE ATTACHMENT
$coded_vcard = chunk_split( base64_encode( $vcardtext ) );
// ADD INFORMATION TO THE MESSAGE STRING
$message .= "--{$mime_boundary}\n" .
"Content-type: text/x-vCard;\n" .
" name=\"$msg_file_name\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"$msg_file_name\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$coded_vcard . "\n\n" .
"--{$mime_boundary}--\n";
// SEND THE VCARD
mail ($to, $subj, $message, $hdrs);
echo "<p class=\"header\">Thanks! Your vCard has been sent to $my_name</p>\n";
}
?>
|
Advertisement
| Hall of Fame |