Basic website
This commit is contained in:
BIN
_blank.gif
Normal file
BIN
_blank.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 B |
3
bsd/index.php
Normal file
3
bsd/index.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
header("Location: http://photos.oav.net/");
|
||||||
|
?>
|
||||||
162
css/base.css
Normal file
162
css/base.css
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
body { margin:0px; background-color:#fff; height:100% }
|
||||||
|
html { height:100% }
|
||||||
|
img { margin:0px; border-style:none }
|
||||||
|
button { margin:0px; border-style:none; padding:0px; background-color:transparent; vertical-align:top }
|
||||||
|
p:first-child { margin-top:0px }
|
||||||
|
table { empty-cells:hide }
|
||||||
|
em { font-style:italic }
|
||||||
|
h1 { font-size:18px }
|
||||||
|
h1:first-child { margin-top:0px }
|
||||||
|
strong { font-weight:bold }
|
||||||
|
.lapage {
|
||||||
|
color:#585769;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:center;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuhaut {
|
||||||
|
color:#000000;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menubas {
|
||||||
|
color:#000000;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuon {
|
||||||
|
color:#585769;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuoff {
|
||||||
|
color:#828098;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textetitre {
|
||||||
|
color:#eb6e08;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
font-weight:bold;
|
||||||
|
text-align:left;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.texte {
|
||||||
|
color:#585769;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:center;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.letrait {
|
||||||
|
position:absolute;
|
||||||
|
left:300px;
|
||||||
|
top:0px;
|
||||||
|
width:39px;
|
||||||
|
height:768px;
|
||||||
|
z-index:1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
position:absolute;
|
||||||
|
left:38px;
|
||||||
|
top:338px;
|
||||||
|
width:262px;
|
||||||
|
height:92px;
|
||||||
|
z-index:2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.illustration {
|
||||||
|
position:absolute;
|
||||||
|
left:699px;
|
||||||
|
top:0px;
|
||||||
|
width:325px;
|
||||||
|
height:768px;
|
||||||
|
z-index:3;
|
||||||
|
}
|
||||||
|
.divmenuhaut {
|
||||||
|
position:absolute;
|
||||||
|
left:38px;
|
||||||
|
top:0px;
|
||||||
|
width:262px;
|
||||||
|
height:338px;
|
||||||
|
z-index:4;i
|
||||||
|
padding-top: 38px;
|
||||||
|
overflow:visible;
|
||||||
|
line-height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divmenubas {
|
||||||
|
position:absolute;
|
||||||
|
left:38px;
|
||||||
|
top:430px;
|
||||||
|
width:262px;
|
||||||
|
height:338px;
|
||||||
|
z-index:5;
|
||||||
|
padding-top: 10px;
|
||||||
|
overflow:visible;
|
||||||
|
line-height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textebox {
|
||||||
|
position:absolute;
|
||||||
|
left:339px;
|
||||||
|
top:0px;
|
||||||
|
zzzwidth:360px;
|
||||||
|
width:685px;
|
||||||
|
zzheight:768px;
|
||||||
|
z-index:6;
|
||||||
|
padding-top: 38px;
|
||||||
|
overflow:visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textebox li {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textebox a {
|
||||||
|
color:#eb6e08;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
font-size: 13px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textebox a:hover {
|
||||||
|
color:#eb6e08;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
list-style-type: none;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu li {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu a {
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu a:hover {
|
||||||
|
color:#585769;
|
||||||
|
font-family:arial, helvetica;
|
||||||
|
text-align:right;
|
||||||
|
font-size: 20px;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
3
energy/index.php
Normal file
3
energy/index.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
header("Location: http://photos.oav.net/");
|
||||||
|
?>
|
||||||
BIN
favicon.ico
Normal file
BIN
favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 318 B |
4
include/bottom.inc.php
Normal file
4
include/bottom.inc.php
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
193
include/function.inc.php
Normal file
193
include/function.inc.php
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Test si le fichier est appell<6C> "seul"
|
||||||
|
//if (preg ("function.inc.php", $_SERVER['PHP_SELF']))
|
||||||
|
//{
|
||||||
|
// header("Location: /");
|
||||||
|
// exit;
|
||||||
|
//}
|
||||||
|
|
||||||
|
function printheader($titre){
|
||||||
|
if(!strlen($titre)) {
|
||||||
|
$titre = "Homepage";
|
||||||
|
}
|
||||||
|
require("header.inc.php");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getimage() {
|
||||||
|
$curdir=basename(dirname($_SERVER['SCRIPT_NAME']));
|
||||||
|
if(empty($curdir)) {
|
||||||
|
return "intro";
|
||||||
|
} else {
|
||||||
|
return $curdir;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Captcha (cf http://www.webelix.net/trucs_et_astuces-(PHP)_Anti_Robots_Spammeurs.html)
|
||||||
|
|
||||||
|
function aff_captcha()
|
||||||
|
{
|
||||||
|
// Tableau de valeurs
|
||||||
|
$input = array(2, 35, 15, 6, 40, 4, 8, 22, 11, 5, 32, 10, 1, 12, 26, 16, 55, 17);
|
||||||
|
// Extraction al<61>atoire de deux valeurs du tableau
|
||||||
|
$rand_keys = array_rand($input, 2);
|
||||||
|
// Creation et calcul de la somme des deux valeurs
|
||||||
|
$question = 'Quelle est la somme de <strong>'.$input[$rand_keys[0]].' + '.$input[$rand_keys[1]].' = </strong>';
|
||||||
|
$add = md5($input[$rand_keys[0]] + $input[$rand_keys[1]]);
|
||||||
|
|
||||||
|
echo '<table cellspacing="0" cellpadding="6" style="border: 1px solid red">
|
||||||
|
<tr>
|
||||||
|
<td><strong>Anti-Spam : </strong>'. $question .'</td>
|
||||||
|
<td><input name="reponse" type="text" size="3" maxlength="3" value="" style="font-weight: bold" />
|
||||||
|
<input name="captcha" type="hidden" value="'. $add .'" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function valid_captcha()
|
||||||
|
{
|
||||||
|
// if (md5($_POST['reponse']) == $_POST['captcha'])
|
||||||
|
if (md5(get_post('reponse')) == get_post('captcha'))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// escape_string
|
||||||
|
// Action: Escape a string
|
||||||
|
// Call: escape_string (string string)
|
||||||
|
//
|
||||||
|
function escape_string ($string)
|
||||||
|
{
|
||||||
|
if (get_magic_quotes_gpc () == 0)
|
||||||
|
{
|
||||||
|
$search = array ("/'/", "/\"/", "/;/");
|
||||||
|
$replace = array ("\\\'", "\\\"", "\\;");
|
||||||
|
$escaped_string = preg_replace ($search, $replace, $string);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$escaped_string = $string;
|
||||||
|
}
|
||||||
|
return $escaped_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// get_post
|
||||||
|
// Action: Get a variable from POST
|
||||||
|
// Call: get_post('var');
|
||||||
|
//
|
||||||
|
function get_post ($string)
|
||||||
|
{
|
||||||
|
if (($_SERVER['REQUEST_METHOD'] == "POST") && isset($_POST[$string]))
|
||||||
|
{
|
||||||
|
return escape_string($_POST[$string]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// get_get
|
||||||
|
// Action: Get a variable from GET
|
||||||
|
// Call: get_get('var');
|
||||||
|
//
|
||||||
|
function get_get ($string)
|
||||||
|
{
|
||||||
|
if (($_SERVER['REQUEST_METHOD'] == "GET") && isset($_GET[$string]))
|
||||||
|
{
|
||||||
|
return escape_string($_GET[$string]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pour le menu parse_ini_file();
|
||||||
|
|
||||||
|
function searchini() {
|
||||||
|
return dirname(__FILE__)."/menu.ini";
|
||||||
|
}
|
||||||
|
|
||||||
|
function domenu() {
|
||||||
|
$menu = parse_ini_file(searchini(),true);
|
||||||
|
$topmenu = $menu['topmenu'];
|
||||||
|
$out = ""; // Out text for menu
|
||||||
|
if (count($topmenu)> 10) {
|
||||||
|
return "Error Too mutch lines in top menu (max 4)";
|
||||||
|
}
|
||||||
|
// Top menu
|
||||||
|
$out .= "<div class=\"divmenuhaut\">\n";
|
||||||
|
//$out .= "<p> </p><p> </p>\n";
|
||||||
|
$out .= "<p> </p>\n";
|
||||||
|
$out .= "<ul class=\"menu\">\n";
|
||||||
|
foreach ($topmenu as $line => $val) {
|
||||||
|
$out .= "<li><a class=\"";
|
||||||
|
if ($line == getimage()) {
|
||||||
|
$out .= "menuon";
|
||||||
|
} else {
|
||||||
|
$out .= "menuoff";
|
||||||
|
}
|
||||||
|
$out .= "\" href=\"/";
|
||||||
|
if ($line != "intro") {
|
||||||
|
$out .= $line."/";
|
||||||
|
}
|
||||||
|
$out .= "\" >";
|
||||||
|
if ($line == getimage()) {
|
||||||
|
$out .= "> ";
|
||||||
|
}
|
||||||
|
$out .= $val."</a></li>";
|
||||||
|
}
|
||||||
|
$out .= "</ul></div>\n";
|
||||||
|
// Bottom menu
|
||||||
|
/*
|
||||||
|
$out .= "<div class=\"divmenubas\">\n";
|
||||||
|
$out .= "<ul class=\"menu\">\n";
|
||||||
|
foreach ($bottommenu as $line => $val) {
|
||||||
|
$out .= "<li><a class=\"";
|
||||||
|
if ($line == getimage()) {
|
||||||
|
$out .= "menuon";
|
||||||
|
} else {
|
||||||
|
$out .= "menuoff";
|
||||||
|
}
|
||||||
|
$out .= "\" href=\"/";
|
||||||
|
if ($line != "intro") {
|
||||||
|
$out .= $line."/";
|
||||||
|
}
|
||||||
|
$out .= "\" >";
|
||||||
|
if ($line == getimage()) {
|
||||||
|
$out .= "> ";
|
||||||
|
}
|
||||||
|
$out .= $val."</a></li>";
|
||||||
|
}
|
||||||
|
$out .= "</ul></div>\n";
|
||||||
|
*/
|
||||||
|
|
||||||
|
print $out;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Page
|
||||||
|
// Do the page with the right title
|
||||||
|
function page($titre) {
|
||||||
|
printheader($titre);
|
||||||
|
domenu();
|
||||||
|
print "<div class=\"textebox\">\n";
|
||||||
|
}
|
||||||
|
function page2($titre) {
|
||||||
|
printheader2($titre);
|
||||||
|
domenu();
|
||||||
|
print "<div class=\"textebox\">\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// finpage
|
||||||
|
// ajoute les tags en fin de page
|
||||||
|
function finpage(){
|
||||||
|
require("bottom.inc.php");
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
17
include/header.inc.php
Normal file
17
include/header.inc.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||||
|
<meta name="ROBOTS" content="ALL">
|
||||||
|
<meta name="REVISIT-AFTER" content="15 DAYS">
|
||||||
|
<meta name="RATING" content="Internet">
|
||||||
|
<meta name="AUTHOR" content="Xavier Beaudouin">
|
||||||
|
<meta name="SUBJECT" content="RIS LSI Consulting SASU">
|
||||||
|
<meta name="keywords" content="Consulting, FreeLance, Smart Contracts, C, BSD, FreeBSD, NetBSD, UNIX, Cloud Computing, Linux, git, Linux, DevOps, NetOps, Python, Cisco, Networking, Juniper, Mikrotik, RIPE, IPv4, IPv6, Routing, ZFS, Storage, Victron Energy">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>RIS LSI Consulting - <?php print "$titre"; ?></title>
|
||||||
|
<link rel=stylesheet type="text/css" href="/css/base.css">
|
||||||
|
</head>
|
||||||
|
<body class="lapage">
|
||||||
|
<div style="position:relative; min-height:100%">
|
||||||
15
include/menu.ini
Normal file
15
include/menu.ini
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
; menu file
|
||||||
|
;
|
||||||
|
|
||||||
|
[topmenu]
|
||||||
|
; / = intro
|
||||||
|
intro=RIS LSI
|
||||||
|
bsd=BSD Unix
|
||||||
|
linux=GNU/Linux
|
||||||
|
network=Networking
|
||||||
|
energy=Energy Storage
|
||||||
|
|
||||||
|
[bottommenu]
|
||||||
|
faq=FAQ
|
||||||
|
|
||||||
|
|
||||||
390
include/send_mail.inc.php
Normal file
390
include/send_mail.inc.php
Normal file
@ -0,0 +1,390 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// send_mail
|
||||||
|
// Action: send a mail
|
||||||
|
// Return if mail has been sent
|
||||||
|
// Call: send_mail(string from, string to, string subject, string message, string cc, string bcc)
|
||||||
|
// Details of calls :
|
||||||
|
// $from = mail from
|
||||||
|
// $to = recipient for the mail
|
||||||
|
// $subject = subject of the mail
|
||||||
|
// $message = message body
|
||||||
|
// $cc = Carbon Copy
|
||||||
|
function send_mail($from, $to, $subject="", $message="(empty message)", $cc="",$format="text")
|
||||||
|
{
|
||||||
|
|
||||||
|
$smail = new SMTP("mail.oav.net"); //Initiate class into object.
|
||||||
|
if ($smail->errno)
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->SetFrom("$from"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->SetToTitle("$to"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->SetTo("$to"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
// if (!$smail->SetTo('somebody@somewhere.com')) die ($smail->errmsg());
|
||||||
|
if ($cc) {
|
||||||
|
if (!$smail->SetCC("$cc"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
// if (!$smail->SetCC('somebody@something.com')) die ($smail->errmsg());
|
||||||
|
}
|
||||||
|
if (!$smail->SetSubject("$subject"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->SetText("$message"))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->sendmail($format))
|
||||||
|
die ($smail->errmsg());
|
||||||
|
if (!$smail->end())
|
||||||
|
die ($smail->errmsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
Class SMTP {
|
||||||
|
// global variables
|
||||||
|
|
||||||
|
Var $errno = 0;
|
||||||
|
Var $errmsg = '';
|
||||||
|
Var $errors=Array(
|
||||||
|
1 => 'Invalid Input',
|
||||||
|
2 => 'Unable to establish connection',
|
||||||
|
3 => 'Connection timed out',
|
||||||
|
4 => 'SMTP Error returned',
|
||||||
|
);
|
||||||
|
|
||||||
|
Var $server = "";
|
||||||
|
Var $user = "";
|
||||||
|
Var $sock = false;
|
||||||
|
Var $readlength = 1024;
|
||||||
|
|
||||||
|
Var $mailto = array();
|
||||||
|
Var $mailcc = array();
|
||||||
|
Var $mailfrom = "";
|
||||||
|
Var $mailfromtitle = '';
|
||||||
|
Var $mailsubject = "";
|
||||||
|
Var $mailtext = "";
|
||||||
|
Var $attachments = array();
|
||||||
|
|
||||||
|
Var $deadmsg = "";
|
||||||
|
Var $verbose = "0";
|
||||||
|
//Modify this for verbose output of the transaction..
|
||||||
|
//1 for verbose
|
||||||
|
//0 for silent
|
||||||
|
|
||||||
|
Function SMTP($server, $smtpport=25, $timeout=10)
|
||||||
|
{
|
||||||
|
// Return false if we can't get an SMTP connection...
|
||||||
|
|
||||||
|
if (strlen($server)<=0)
|
||||||
|
return $this->error(1, 'server');
|
||||||
|
else $this->server=$server;
|
||||||
|
|
||||||
|
if (!$this->sock = fsockopen($server, $smtpport, &$errno, &$errstr, $timeout))
|
||||||
|
return $this->error(2);
|
||||||
|
|
||||||
|
if (!socket_set_blocking($this->sock, true))
|
||||||
|
return $this->error(4, 'set blocking');
|
||||||
|
|
||||||
|
if (!$this->GetFeedback())
|
||||||
|
return $this->error(2, 'during onset');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function Error($errno, $message)
|
||||||
|
{
|
||||||
|
$this->errno=$errno;
|
||||||
|
$this->errmsg.=$message;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function ErrMsg($error=false)
|
||||||
|
{
|
||||||
|
if (false===$error)
|
||||||
|
{
|
||||||
|
$errno=$this->errno;
|
||||||
|
return $this->$errors[$errno].' '.$this->errmsg;
|
||||||
|
}
|
||||||
|
else return $this->$errors[$error];
|
||||||
|
}
|
||||||
|
|
||||||
|
Function ErrNo()
|
||||||
|
{
|
||||||
|
return $this->errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function SetSubject($subject)
|
||||||
|
{
|
||||||
|
if (strlen($subject)<=0)
|
||||||
|
return $this->Error(1, 'subject');
|
||||||
|
$this->mailsubject = ereg_replace("\n"," ",$subject);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function setText($text)
|
||||||
|
{
|
||||||
|
if (strlen($text)<=0)
|
||||||
|
return $this->Error(1, 'message body');
|
||||||
|
$text = ereg_replace("\n.\n", "\n. \n", $text);
|
||||||
|
$text = ereg_replace("\n.\r", "\n. \r", $text);
|
||||||
|
$this->mailtext = $text;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function SetTo($to)
|
||||||
|
{
|
||||||
|
// THIS CAN BE USED TO SET AS MANY "BCC" RECIPIENTS AS YOU LIKE.
|
||||||
|
if (strlen($to)<=0)
|
||||||
|
return $this->Error(1, '"to" too short');
|
||||||
|
if (strlen($to)>=129)
|
||||||
|
return $this->Error(1, '"to" too long');
|
||||||
|
$this->mailto[]=$to;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function SetToTitle($title)
|
||||||
|
{
|
||||||
|
if (strlen($title)<=0)
|
||||||
|
return $this->Error(1, 'totitle too short');
|
||||||
|
if (strlen($title)>=128)
|
||||||
|
return $this->Error(1, 'totitle too long');
|
||||||
|
$this->mailtotitle="<$title>";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetCC($to)
|
||||||
|
{
|
||||||
|
// THIS WORKS LIKE "SETTO" ABOVE, BUT TELLS EVERYBODY WHO'S INVOLVED.
|
||||||
|
// This is a potential privacy issue...
|
||||||
|
|
||||||
|
if (!$this->setto($to))
|
||||||
|
return false;
|
||||||
|
$this->mailcc[]=$to;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function SetFrom($from)
|
||||||
|
{
|
||||||
|
if (strlen($from)<=0)
|
||||||
|
return $this->Error(1, 'from too short');
|
||||||
|
if (strlen($from)>=128)
|
||||||
|
return $this->Error(1, 'from too long');
|
||||||
|
$this->mailfrom=$from;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function SetFromTitle($title)
|
||||||
|
{
|
||||||
|
if (strlen($title)<=0)
|
||||||
|
return $this->Error(1, 'fromtitle too short');
|
||||||
|
if (strlen($title)>=128)
|
||||||
|
return $this->Error(1, 'fromtitle too long');
|
||||||
|
$this->mailfromtitle=$title;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function AddAttachment($type, $data, $name)
|
||||||
|
{
|
||||||
|
// THIS WILL TAKE ATTACHMENTS, BUT WON'T YET MAIL THEM.
|
||||||
|
$insert=sizeof($this->attachements);
|
||||||
|
$this->attachements[$insert][data]=$data;
|
||||||
|
$this->attachements[$insert][type]=$type;
|
||||||
|
$this->attachements[$insert][name]=$name;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function BuildBody($MIMEType)
|
||||||
|
{
|
||||||
|
$return = "";
|
||||||
|
// Take the text, add any attachements, doc type, etc.
|
||||||
|
// attachments currently don't work.
|
||||||
|
|
||||||
|
// SET MIME TYPE
|
||||||
|
if ($MIMEType=='text')
|
||||||
|
$return.="Content-Type: text/plain; charset=iso-8859-1\r\n";
|
||||||
|
elseif($MIMEType=='html')
|
||||||
|
$return.="Content-Type: text/html; charset=iso-8859-1\r\n";
|
||||||
|
else
|
||||||
|
$return.="Content-Type: text/plain; charset=iso-8859-1\r\n";
|
||||||
|
|
||||||
|
// SET TO HEADER
|
||||||
|
if (strlen($this->mailtotitle)>=1)
|
||||||
|
$return.="To: ".$this->mailtotitle."\r\n";
|
||||||
|
|
||||||
|
// SET FROM HEADER
|
||||||
|
if (strlen($this->mailfromtitle)>=1)
|
||||||
|
$return.="From: ".$this->mailfromtitle." <".$this->mailfrom.">\r\n";
|
||||||
|
else $return.="From: ".$this->mailfrom."\r\n";
|
||||||
|
|
||||||
|
if (sizeof($this->mailcc)>=1)
|
||||||
|
{
|
||||||
|
$return.="Cc:";
|
||||||
|
for ($i=0; $i<sizeof($this->mailcc); $i++)
|
||||||
|
{
|
||||||
|
if ($i)
|
||||||
|
$return.=", ";
|
||||||
|
$return.=$this->mailcc[$i];
|
||||||
|
}
|
||||||
|
$return.="\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strlen($this->mailsubject)>=1)
|
||||||
|
$return.="Subject: ".$this->mailsubject."\r\n";
|
||||||
|
|
||||||
|
$return .="X-Priority: 3\r\n";
|
||||||
|
$return .= "\r\n" . $this->mailtext;
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function sendmail($text_type='html')
|
||||||
|
{
|
||||||
|
if (!$this->sock)
|
||||||
|
return $this->error(2);
|
||||||
|
else {
|
||||||
|
if (!$body=$this->BuildBody($text_type))
|
||||||
|
return $this->Error(1, 'BuildBody Failed');
|
||||||
|
|
||||||
|
$head[]="HELO ".$this->server;
|
||||||
|
$head[]="MAIL FROM:<".$this->mailfrom.">";
|
||||||
|
while (list($key, $value)= each($this->mailto))
|
||||||
|
{
|
||||||
|
$head[]="RCPT TO:<$value>";
|
||||||
|
}
|
||||||
|
$head[]='DATA';
|
||||||
|
|
||||||
|
reset ($head);
|
||||||
|
|
||||||
|
while (list($key, $value)=each ($head))
|
||||||
|
{
|
||||||
|
fputs($this->sock, $value."\r\n");
|
||||||
|
if (!$this->GetFeedback())
|
||||||
|
return $this->error($this->errno(), "($value)");
|
||||||
|
}
|
||||||
|
|
||||||
|
fputs($this->sock, "$body\r\n.\r\n");
|
||||||
|
if (!$this->GetFeedback())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$this->ResetData();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ResetData()
|
||||||
|
{
|
||||||
|
$mailto = array();
|
||||||
|
$mailfrom = "";
|
||||||
|
$mailfromtitle = '';
|
||||||
|
$mailsubject = "";
|
||||||
|
$mailtext = "";
|
||||||
|
$attachments = array();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Function GetFeedback()
|
||||||
|
{
|
||||||
|
if (!$response=fgets($this->sock, $this->readlength))
|
||||||
|
return false;
|
||||||
|
if ($this->IsOK($response))
|
||||||
|
return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Function IsOK ($input)
|
||||||
|
{
|
||||||
|
// Extract the return code from the SMTP server, and make sure it's a
|
||||||
|
// 'yahoo' instead of a 'shucks'.
|
||||||
|
|
||||||
|
if (!ereg("((^[0-9])([0-9]*))", $input, $regs))
|
||||||
|
return $this->error(1, 'input');
|
||||||
|
|
||||||
|
$code=$regs[1];
|
||||||
|
|
||||||
|
switch ($code)
|
||||||
|
{
|
||||||
|
case '220':
|
||||||
|
case '221':
|
||||||
|
case '250':
|
||||||
|
case '251':
|
||||||
|
case '354':
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return $this->error(4, $input);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Function end()
|
||||||
|
{
|
||||||
|
if (!$this->sock)
|
||||||
|
return $this->error(3, 'function end');
|
||||||
|
|
||||||
|
fputs($this->sock, "QUIT\r\n");
|
||||||
|
|
||||||
|
if ($this->GetFeedback())
|
||||||
|
{
|
||||||
|
fclose($this->sock);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // END OF CLASS...
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
I wanted a class that could be easily stretched into doing attachements
|
||||||
|
(intelligently!) wasn't cumbersome, and verified that stuff being flung
|
||||||
|
at the SMTP server made it.
|
||||||
|
|
||||||
|
Something that would allow for intelligent error reporting and would
|
||||||
|
reliably fail
|
||||||
|
if something goes wrong, and do so w/o waiting for the PHP timeout...
|
||||||
|
|
||||||
|
This has:
|
||||||
|
|
||||||
|
- Bcc: support - now send the same mail to 100 people w/o sending
|
||||||
|
100 emails! (repeatedly use function SetTo())
|
||||||
|
|
||||||
|
- Error code control - If the SMTP server complains, we trap that
|
||||||
|
and report the error - so the application can act on it properly.
|
||||||
|
|
||||||
|
- MIME Support is but a small breath away - need to update only the
|
||||||
|
BuildBody() function as soon as an effective algorithm is figured out...
|
||||||
|
|
||||||
|
- Broke out alot of the settings functions because I could never remember
|
||||||
|
what went where... feel free to create "wrapper" functions to set a bunch
|
||||||
|
all at once.
|
||||||
|
|
||||||
|
- Greatly improved header support - though still not fully complete. (MIME
|
||||||
|
only partially supported)
|
||||||
|
|
||||||
|
- block read support - to trap the SMTP server replies.
|
||||||
|
|
||||||
|
- connection timeout() should be implemented - but I don't have a slow or
|
||||||
|
unreliable mailserver to test it on...
|
||||||
|
|
||||||
|
- We can now send multiple e-mails with a single connection... when a mail
|
||||||
|
is sent, you can simply set the fields and send another! This **SHOULD** result
|
||||||
|
in better performance when sending alot of emails. This functionality should
|
||||||
|
mirror the "reset" SMTP command...
|
||||||
|
|
||||||
|
- Lots of incrememental improvements - loops and functions used to turn
|
||||||
|
recycled code into reused code, etc.
|
||||||
|
|
||||||
|
- CC: Support - works just like SetTo() but also writes the header(s)
|
||||||
|
in the e-mail body.
|
||||||
|
|
||||||
|
CHANGES:
|
||||||
|
|
||||||
|
v1.3.1 16 Sep 01 James McGlinn <james@mcglinn.org>
|
||||||
|
Fixed bug in routine setting mail from title
|
||||||
|
v1.3.2 16 Sep 01 James McGlinn <james@mcglinn.org>
|
||||||
|
Added new blank line between headers and message text to
|
||||||
|
prevent remote
|
||||||
|
server from inserting headers into middle of message
|
||||||
|
*/
|
||||||
|
?>
|
||||||
|
|
||||||
16
index.php
16
index.php
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
require_once("include/function.inc.php");
|
||||||
|
page("Homepage");
|
||||||
|
?>
|
||||||
|
<p class="textetitre">RIS LSI Consulting SASU</p>
|
||||||
|
<p class="texte">
|
||||||
|
</p>
|
||||||
|
<p class="textetitre">Who I am ?</p>
|
||||||
|
<p class="texte">
|
||||||
|
</p>
|
||||||
|
<p class="textetitre">Social Media</p>
|
||||||
|
<p class="texte">
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
finpage();
|
||||||
|
?>
|
||||||
|
|||||||
3
linux/index.php
Normal file
3
linux/index.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
header("Location: http://photos.oav.net/");
|
||||||
|
?>
|
||||||
3
network/index.php
Normal file
3
network/index.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
header("Location: http://photos.oav.net/");
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user