'mitt_script.php' måste vara körbart, detta åstadkommer du med kommandot:

Relevanta dokument
Handbok SSCd. Peter H. Grasch

Filbeskrivningar Eller på särskild CD skiva

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Karlstads Universitet, Datavetenskap 1

Installation av F13 Bråvalla

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 30/5 Tid

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Skicka drivrutin. Administratörshandbok

Quick Start Guide Snabbguide

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Policy för öppen källkod RIV Tekniska Anvisningar

Introduktion HTML och PHP 732G16 Databaser design och programmering

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Skapa din egen MediaWiki

2.1 Installation of driver using Internet Installation of driver from disk... 3

Kunskapsbank ICARUS DB

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Webbprogrammering. Sahand Sadjadee

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Din egen webserver med Apache

Webbservrar, severskript & webbproduktion

Telia Centrex IP Administratörswebb. Handbok

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Installationshandbok.

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

Handbok KAppTemplate. Anne-Marie Mahfouf Översättare: Stefan Asserhäll

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

JobOffice SQL databas på server

Översättning av galleriet. Hjälp till den som vill...

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Avancerade Webbteknologier

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

KPMG Secure File Transfer Handledning

E-posthantering med Novell Groupwise WebAccess

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Användarguide. Certifikatsansökan

Office Quick 7.5. Handbok , Rev C CUSTOMERS, PARTNERS

Dubbelt seende, dubbla skördar?

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås

Installationsguide för mysql och OLA Server/OLA Klient

printenv sort pager printenv grep args sort pager

Starta en webbläsare (t ex Internet Explorer, Mozilla Firefox, Safari) Skriv in nedan adress:

Workshop IBA internet based assessment

INLOGGNING 1 (6) Det finns två sätt att logga in i Privera: Med engångslösenord till mobiltelefon Med engångslösenord till e-post

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Open Source - Utmaningar och fördelar

Stored procedure i ASP.NET

Lektion 5 HTML, CSS, PHP och MySQL

1. Unpack content of zip-file to temporary folder and double click Setup

Om konsolporten. Beskrivning av portarna

Beijer Electronics AB 2000, MA00336A,

PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE. Version Revidering A December 2013

Innehåll. MySQL Grundkurs

Kunskapsbank ICARUS DB

Handbok Simond. Peter H. Grasch

Tentamen PC-teknik 5 p

PC-teknik, 5 p LABORATION FILHANTERING

Nintex Workflow 2007 måste installeras på Microsoft Windows Server 2003 eller 2008.

Installation av VDI för PC TIPS! Skriv ej ut använd hellre ipad. Nya lathundar publiceras regelbundet Version 1.0

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

BaraTrav Prenumeration och Installation Version 1.3.4

Nya webbservern Dvwebb.mah.se

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Uppstart Agda PS Hosting

Preschool Kindergarten

Citation for published version (APA): Gill-Pedro, E. (2017). Remissyttrande: Genomförande av ICT-direktivet (Ds 2017:3).

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

Manual Godman Redovisning

UPPDATERA DIN UNICO-ORGELS OPERATIVSYSTEM!

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller

Förslag på svar Tentamen etjänster och webb- programmering

E-tentavakt - Invigilator

Drag och Släpp & Spara till Server. Säkerhetsinställningar. Version 5.0

Installationsanvisningar VISI Klient

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Installationsanvisningar. till IST Analys

Webbprogrammering - 725G54 PHP. Foreläsning II

PHP-presentation Dataföreningens Open Source-nätverk

Stored procedure i ASP.NET

För att öppna galleriet, ange adressen

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Objektorienterad programmering i Java I

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

Ditt Medarbetarskap: Ett analysinstrument om relationerna på din arbetsplats (kort version 1.2) Bertlett, Johan

INTRODUKTION TILL JDBC

Tidstrender för perfluorerade ämnen i plasma från svenska kvinnor

Kapitel 4 Arkivmenyn Innehåll

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Certifikattjänsten - testbädd. Anläggningsprojekt för ett nationellt inkomstregister

Handbok Färgredigeraren. Artur Rataj Översättare: Stefan Asserhäll

Övningar i SQL. SQLAccess.doc Ove Lundgren

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Transkript:

v. 2 [2006-09-13] Förutsättningar Jag har använt Sendmail, PHP och MySQL. Du måste kunna komma åt inställningarna för Sendmail. Kunna köra någon databas och servern måste ha PHP installerat. PHP skall vara kompilerat för CLI, 'Command Line Interface'. Är det kompilerat för CGI gör man på ett annat sätt. Det tar jag inte upp här. (Det liknar hur man gör med till exempel Perl) För att ta reda på hur PHP är kompilerat kör du: $>php -v Står det sedan något som liknar: PHP (cli) (built: May 8 2006 23:54:39) Är allt OK. Inställningar på servern Sendmail Du lägger till ett e-postalias i filen '/etc/mail/aliases' tst: " /usr/local/bin/php /path_to_script/mitt_script.php" Apostroferna skall vara med. Du skapar ett e-postalias 'tst', all post till 'tst@my_domain.com' kommer nu med hjälp av ' ' (pipe) tecknet att skickas till skriptet 'mitt_script.php'. sedan måste du köra: $>newaliases För att generera en databasfil ('aliases.db') från textfilen 'aliases'. Glöm inte att starta om sendmail efteråt. (Slackware: '/etc/rc.d/rc.sendmail restart'). PHP 'mitt_script.php' måste vara körbart, detta åstadkommer du med kommandot: $>chmod 755 mitt_script.php lägg om möjligt skriptet i en katalog som inte andra kommer åt. Inte i 'public_html' där det kan nås av hela världen.

Skriptet Överst i 'mitt_script.php' skall det stå: #!/usr/local/bin/php Detta för att tala om vilket program som skall köra skriptet. (Pröva med "$>whereis php" för att kolla var php finns i din distrubition) Innanför <?php och?> skriver du själva skriptet. // För PHP > 5 (OBS! har du äldre php så får du skriva lite annorlunda) $fd = fopen("php://stdin", "r"); //Öppnar en ström för läsning $alltx = stream_get_contents($fd); //hela e-postbrevet hamnar i '$alltx' $allt=utf8_decode($alltx); //jag får min e-post kodad enligt UTF-8 //Nu skall den dekodas innan den hamnar i databasen fclose($fd) //Strömmen stängs Sedan söker jag efter markörer i texten för att hitta det som är intressant, i detta fall själva bilden: $bild_start = strpos($alltx,"/9j"); //Första positionen för '/9j' $bild_slut = strpos($alltx,"/9k"); //Första positionen för '/9k' $bild = trim(substr($alltx,$bild_start-1,($bild_slut-$bild_start+4))); //Bilden börjar och slutar med detta, så däremellan ligger bilden //Observera att här används '$allt' inte '$alltx', bilden är //inte kodad med UTF-8 //trim() tar bort oönskade radbrytningar i början och i slutet Nu har vi fångat bilden i en variabel '$bild', nu skall den hamna i en databas. Du gör på samma sätt med annat som du vill ha med, tillexempel 'subject', 'bildtext' mm. Bilden, som består av en massa tecken, är kodad med 'Base64'. Det innebär att ett talsystem med basen 64 används för att lagra informationen. Vi använder ju normalt basen 10. Tryckbara ASCII tecken används vid kodningen. Problemet är att Microsoft Internet Explorer inte klarar detta. Man måste använda en modernare webbläsare, till exempel Firefox eller Opera. kolla ett exempel

För att alla webbläsare skall klara av det här kan man ta hjälp av PHP echo "<img src=\"bild.php?img=".$rad['nyckel']."\" border=\"0\" alt=\"\" />"; //Här låter man 'bild.php' ladda in bilden. img får värdet av aktuell nyckel. //På så sätt laddas rätt bild. I filen 'bild.php' ser det ut så här: <?php // open database connection $connection = mysql_connect("localhost", "user", "password") or die ("Error 1 get_photos: ".mysql_error()); mysql_select_db("phone_mail"); $img = $_REQUEST['img']; //Hämtas variabeln från index2.php' // Här kommer besked om vilken bild som efterfrågas. $sql = "SELECT bild FROM tb_phone WHERE nyckel='$img'" or die ("Error 2 get_photos: ".mysql_error()); $result = mysql_query("$sql") or die ("Error 3 get_photos: ".mysql_error()); if ($rad=mysql_fetch_assoc($result)) { $encodeddata = $rad['bild']; } mysql_close($connection); echo base64_decode($encodeddata); // 'echo' till <img> taggen där begäran gjordes.?> Jag vill kunna formatera utskriften på skärmen, när bilderna visas. Därför har jag lagt in lite egna markörer när jag skickar från telefonen: I texten (på telefonen) skriver jag: <rubrik> </rubrik> <bildtext> </bildtext> <text> </text>

På detta sätt får jag en bra formatering. Detta sparas som en mall. Det gör det lätt när man skall skicka igen. Det är också lätt att hitta dessa markörer. Enda nackdelen är om man vill kunna skicka text som ser precis så här ut. $subject_start = strpos($allt,"<rubrik>"); $subject_slut = strpos($allt,"</rubrik>"); $subject = trim(substr($allt,$subject_start+8,($subject_slut- $subject_start-8))); sv_bokstavar(&$subject); //trim() tar bort oönskade radbrytningar i början och i slutet Sedan är det bara att leta reda på det som finns mellan taggarna med 'stpos()' och 'substr()'. function sv_bokstavar($str) { $str=str_replace("=c3=a5","å",$str); $str=str_replace("=c3=a4","ä",$str); $str=str_replace("=c3=b6","ö",$str); $str=str_replace("=c3=85","å",$str); $str=str_replace("=c3=84","ä",$str); $str=str_replace("=c3=96","ö",$str); } Av någon anledning, som jag inte förstår fungerar inte UTF-8 kodningen när jag skickar en bild från mobiltelefonen. Därför denna 'workaround'. Om jag bara skickar text och ingen bild fungerar det som det skall utan denna funktion. Databaser Jag har använt en databas med två tabeller, en tabell med bilden och texten. En annan tabell som håller reda på hur många bilder som finns. OBS! Använd 'mediumtext' för bilden, så att den får plats. tb_phone Namn Datatyp nyckel (primary key) int subject char(100) bildtext char(100) text char(200) anlant datatime bild mediumtext is_bild enum('ja','nej') tb_antalposter Namn Datatyp nyckel (primary key) int tabell tinyint antalposter int Ladda ner alla_filer.zip alla_filer.tar.gz tele_mail.php (skriptet som läser in e-posten) bild.php (skriptet som läser in bilden från db) index2.php (vanliga användarfilen) admin.php (administration, du kan ändra och ta bort) denna info i pdf-format

Licens 2006 Ingemar Ceicer Licensierat under GNU General Public License This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. http://www.gnu.org/licenses/gpl.txt