Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@codler
Last active November 20, 2015 17:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codler/4fc15c610832f845511d to your computer and use it in GitHub Desktop.
Save codler/4fc15c610832f845511d to your computer and use it in GitHub Desktop.
Aktie SMS notifikation 2010-04-10
<?php
require_once("connection.php");
$data = urldecode($_POST['data']);
$data = explode("|", $data);
$arr = array();
$alert = array();
foreach ($data AS $v) {
$a = explode("=", $v);
if (is_numeric($a[1])) {
$arr[] = "('" . mysql_real_escape_string($a[0]) . "', " . str_replace(",", ".", $a[1]) . ")";
// alert
$alert[] = array('name' => mysql_real_escape_string($a[0]), 'course' => str_replace(",", ".", $a[1]));
}
}
mysql_query("TRUNCATE TABLE `aktie_kurs`;");
mysql_query("INSERT INTO aktie_kurs (name,course) VALUES ". implode(",", $arr));
?>
<?php
$result = mysql_query("SELECT * FROM aktie_alert");
$send_alert = false;
while ($row = mysql_fetch_assoc($result)) {
foreach($alert AS $v) {
if ($v['name'] == $row['name']) {
// 1 = above
if ($row['range'] == 1 && $v['course'] >= $row['course']) {
$send_alert = $row;
} elseif($row['range'] == 0 && $v['course'] <= $row['course']) {
$send_alert = $row;
}
}
}
}
if ($send_alert) {
$range = ($send_alert['range']==1)? "over" : "under";
$data = "Aktien " . $send_alert['name'] . " ar " . $range . " " . $send_alert['course'];
mysql_query("DELETE FROM aktie_alert WHERE id = " . $send_alert['id']);
} else {
die();
}
/*
------------------------------------------------------------------------------
LIST_SEND.PHP
------------------------------------------------------------------------------
Detta skript anropar http://www.mosms.com/se/list-send.php på MO-SMS och
skickar ett text-SMS till en telefonlista med namn 'test'.
Notera att själva list-send.php-skriptet kan köra en längre tid om antalet
medlemmar i listan är väldigt stort. Statuskoden "0" returneras dock direkt
så fort alla tester har utförts och uppköande av SMS påbörjas. Det räcker
alltså att endast läsa in det första tecknet som returneras för att veta att
utskicket har börjat bearbetas.
Data skall skickas till MO-SMS i ISO 8859-1
------------------------------------------------------------------------------
*/
// Sätt ditt användarnamn, lösenord och MO-SMS anropsadress
$mosms_username = "";
$mosms_password = "";
$mosms_url = "http://www.mosms.com/se/list-send.php";
// Sätt listans namn
$mosms_list = "aktie_alert";
// Sätt SMS-meddelandet som skall skickas
$mosms_data = $data;
// Anropa MO-SMS och skicka SMS:en
$mosms_data = rawurlencode($mosms_data);
$fp = fopen($mosms_url . "?username=" . $mosms_username
. "&password=" . $mosms_password . "&list=" . $mosms_list . "&data="
. $mosms_data,"r");
// Läs bara in första tecknet
$result = fread($fp, 1);
fclose($fp);
// Kontrollera felkod från MO-SMS
if ($result <> "0") {
// Fel
echo "Fel vid anrop: $result";
} else {
// Ej fel
echo "SMS skickat korrekt!";
}
?>
<?php
require_once("connection.php");
$i = 1;
$names = array();
$items = array();
while (isset($_GET['n'.$i])) {
$items[] = mysql_real_escape_string(urldecode($_GET['n'.$i]));
$names[] = "name = '" . mysql_real_escape_string(urldecode($_GET['n'.$i])) . "'";
$i++;
}
if (sizeof($names)>0) {
$result = mysql_query("
SELECT *
FROM `aktie_kurs`
WHERE `id` = (
SELECT `id`
FROM `aktie_kurs` as `alt`
WHERE `alt`.`name` = `aktie_kurs`.`name`
AND (" . implode(" OR ", $names) . ")
ORDER BY `time` DESC
LIMIT 1
);");
}
date_default_timezone_set('Europe/Stockholm');
header("Content-Type: application/rss+xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
?>
<rss version="2.0">
<channel>
<title><?php echo implode(",", $items); ?></title>
<link>http://www.zencodez.net/aktie_rss.php</link>
<description></description>
<language>sv-se</language>
<lastBuildDate><?php echo date("D, d M Y H:i:s T"); ?></lastBuildDate>
<generator>http://www.zencodez.net/</generator>
<?php while ($row = mysql_fetch_assoc($result)) : ?>
<item>
<title><?php echo $row['course']; ?></title>
<link>http://www.zencodez.net/aktie_rss.php</link>
<guid>http://www.zencodez.net/aktie_rss.php</guid>
<description><?php echo strip_tags($row['course']); ?></description>
<pubDate><?php echo date("D, d M Y H:i:s T"); ?></pubDate>
</item>
<?php endwhile; ?>
</channel>
</rss>
--
-- Tabellstruktur `aktie_alert`
--
CREATE TABLE IF NOT EXISTS `aktie_alert` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`course` double NOT NULL,
`range` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Tabellstruktur `aktie_kurs`
--
CREATE TABLE IF NOT EXISTS `aktie_kurs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`course` double NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=79 ;
--
-- Dumpning av Data i tabell `aktie_kurs`
--
INSERT INTO `aktie_kurs` (`id`, `name`, `course`, `time`) VALUES
(1, 'ABB Ltd', 144.3, '2011-03-16 10:20:13'),
(2, 'Alfa Laval', 122.8, '2011-03-16 10:20:13'),
(3, 'Alliance Oil Company SDB', 116, '2011-03-16 10:20:13'),
(4, 'ASSA ABLOY B', 169, '2011-03-16 10:20:13'),
(5, 'AstraZeneca', 292.9, '2011-03-16 10:20:13'),
(6, 'Atlas Copco A', 153.1, '2011-03-16 10:20:13'),
(7, 'Atlas Copco B', 136.8, '2011-03-16 10:20:13'),
(8, 'Autoliv SDB', 446.1, '2011-03-16 10:20:13'),
(9, 'Axfood', 244.4, '2011-03-16 10:20:13'),
(10, 'Boliden', 122.9, '2011-03-16 10:20:13'),
(11, 'Castellum', 90.25, '2011-03-16 10:20:13'),
(12, 'Electrolux A', 205, '2011-03-16 10:20:13'),
(13, 'Electrolux B', 152.8, '2011-03-16 10:20:13'),
(14, 'Elekta B', 235, '2011-03-16 10:20:13'),
(15, 'Ericsson A', 73.1, '2011-03-16 10:20:13'),
(16, 'Ericsson B', 75.85, '2011-03-16 10:20:13'),
(17, 'Fabege', 66.55, '2011-03-16 10:20:13'),
(18, 'Getinge B', 147.7, '2011-03-16 10:20:13'),
(19, 'Hakon Invest', 103, '2011-03-16 10:20:13'),
(20, 'Handelsbanken A', 202.4, '2011-03-16 10:20:13'),
(21, 'Handelsbanken B', 202.2, '2011-03-16 10:20:13'),
(22, 'Hennes & Mauritz B', 200.8, '2011-03-16 10:20:13'),
(23, 'Hexagon B', 137, '2011-03-16 10:20:13'),
(24, 'Holmen A', 217, '2011-03-16 10:20:13'),
(25, 'Holmen B', 212.1, '2011-03-16 10:20:13'),
(26, 'Hufvudstaden A', 73.4, '2011-03-16 10:20:13'),
(27, 'Hufvudstaden C', 124.1, '2011-03-16 10:20:13'),
(28, 'Husqvarna A', 48.86, '2011-03-16 10:20:13'),
(29, 'Husqvarna B', 48.71, '2011-03-16 10:20:13'),
(30, 'Industrivärden A', 111, '2011-03-16 10:20:13'),
(31, 'Industrivärden C', 102.5, '2011-03-16 10:20:13'),
(32, 'Investor A', 139.4, '2011-03-16 10:20:13'),
(33, 'Investor B', 142.8, '2011-03-16 10:20:13'),
(34, 'Kinnevik A', 135.7, '2011-03-16 10:20:13'),
(35, 'Kinnevik B', 134.4, '2011-03-16 10:20:13'),
(36, 'Latour B', 126.1, '2011-03-16 10:20:13'),
(37, 'Lundbergföretagen B', 463.3, '2011-03-16 10:20:13'),
(38, 'Lundin Mining Corp. SDB', 45.72, '2011-03-16 10:20:13'),
(39, 'Lundin Petroleum', 78.6, '2011-03-16 10:20:13'),
(40, 'Meda A', 53.8, '2011-03-16 10:20:13'),
(41, 'Melker Schörling', 168.5, '2011-03-16 10:20:13'),
(42, 'Millicom Int. Cellular SDB', 551, '2011-03-16 10:20:13'),
(43, 'Modern Times Group A', 445, '2011-03-16 10:20:13'),
(44, 'Modern Times Group B', 435, '2011-03-16 10:20:13'),
(45, 'NCC A', 165.5, '2011-03-16 10:20:13'),
(46, 'NCC B', 165.2, '2011-03-16 10:20:13'),
(47, 'Nordea Bank', 66.3, '2011-03-16 10:20:13'),
(48, 'Oriflame SDB', 342.1, '2011-03-16 10:20:13'),
(49, 'Peab B', 52.7, '2011-03-16 10:20:13'),
(50, 'Ratos A', 236, '2011-03-16 10:20:13'),
(51, 'Ratos B', 234, '2011-03-16 10:20:13'),
(52, 'SAAB B', 129.5, '2011-03-16 10:20:13'),
(53, 'Sandvik', 113.7, '2011-03-16 10:20:13'),
(54, 'SCA A', 101.4, '2011-03-16 10:20:13'),
(55, 'SCA B', 101.5, '2011-03-16 10:20:13'),
(56, 'SCANIA A', 127, '2011-03-16 10:20:13'),
(57, 'SCANIA B', 128.8, '2011-03-16 10:20:13'),
(58, 'SEB A', 54.1, '2011-03-16 10:20:13'),
(59, 'SEB C', 53.2, '2011-03-16 10:20:13'),
(60, 'Seco Tools B', 106.8, '2011-03-16 10:20:13'),
(61, 'Securitas B', 71.65, '2011-03-16 10:20:13'),
(62, 'Skanska B', 123, '2011-03-16 10:20:13'),
(63, 'SKF A', 166.3, '2011-03-16 10:20:13'),
(64, 'SKF B', 166.7, '2011-03-16 10:20:13'),
(65, 'SSAB A', 94.75, '2011-03-16 10:20:13'),
(66, 'SSAB B', 82.15, '2011-03-16 10:20:13'),
(67, 'Stora Enso A', 69.85, '2011-03-16 10:20:13'),
(68, 'Stora Enso R', 67.85, '2011-03-16 10:20:13'),
(69, 'Swedbank A', 106.4, '2011-03-16 10:20:13'),
(70, 'Swedbank pref', 108.5, '2011-03-16 10:20:13'),
(71, 'Swedish Match', 197.3, '2011-03-16 10:20:13'),
(72, 'Tele2 A', 164, '2011-03-16 10:20:13'),
(73, 'Tele2 B', 133, '2011-03-16 10:20:13'),
(74, 'TeliaSonera', 51.85, '2011-03-16 10:20:13'),
(75, 'Tieto Oyj', 119, '2011-03-16 10:20:13'),
(76, 'Trelleborg B', 59.5, '2011-03-16 10:20:13'),
(77, 'Volvo A', 99.75, '2011-03-16 10:20:13'),
(78, 'Volvo B', 100.5, '2011-03-16 10:20:13');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment