Kom ihåg mig?
Home Menu

Menu


Modifiera script med datalagring.

 
Ämnesverktyg Visningsalternativ
Oläst 2009-11-05, 15:03 #1
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Standard Modifiera script med datalagring.

Jobbar på WaterAid Sverige som är en ideell organisation. Vi behöver hjälp med ett svarsscript till vårt givar-sms-system. SMS:a VATTEN till 72550 så skänker du 50 kr. Detta är det vi kör med. Vårt svarsscript har jag lagt nedan.

Vi behöver lägga till en enkel funktion som skriver ner datan som kommer in i en .csv-fil mycket enkelt så här:

"$nr","$sms","$tariff","$operator","meddelande "

Scriptet att lägga in detta i finns här under:


<?php

/*
------------------------------------------------------------------------------
RECEIVE_SMS.PHP
------------------------------------------------------------------------------

Detta script kan ta emot SMS-meddelanden från MO-SMS.
Allt som ekas ut av ditt skript kommer att hamna i ett svars-SMS till
slutanvändaren. Det är alltså mycket viktigt att skriptet inte genererar några
felmeddelanden eller liknande. Om inget svar ekas ut inom 30 sekunder skickar
MO-SMS automatiskt ut ett "Tack för din beställning"-SMS av debiterings-
tekniska skäl.

SMS:et levereras i teckenkodning ISO 8859-1

------------------------------------------------------------------------------
*/

// Stäng av PHP:s felrapportering
error_reporting(0);


// Plocka ut avsändarnumret
$nr = $_REQUEST['nr'];

// Plocka ut SMS-meddelandet
$sms = urldecode($_REQUEST['sms']);

// Plocka ut priset slutanvändaren blev debiterad (för egen vinststatistik)
$tariff = $_REQUEST['tariff'];

// Plocka ut operatören SMS:et skickades in via (för egen vinststatistik)
$operator = $_REQUEST['operator'];

// Eka ut svaret som skickas tillbaka till slutanvändaren
echo 'Klart';

?>
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-05, 15:33 #2
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Innan du skriver ut klart kan du lägga in följande rader, de borde göra exakt vad du efterfrågar.

PHP-kod:
//Vilken fil du vill spara ned datan i, saknas filen skapas den
$file 'incoming-sms.csv';

// Data som ska sparas ned i filen
$data "$nr$sms$tariff$operator, 'meddelande'\n";

// Spara ned datan sist i filen
file_put_contents($file$dataFILE_APPEND); 
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-05, 15:51 #3
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Försökte lägga in det men det och det funkar som vanligt men inget skrivs ner i filen trots CHMOD 777. Hur skulle koden se ut exakt? Nu klistrade jag in detta längst ner i koden. Datafilen ligger i samma mapp, det måste inte till nån sökväg?
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-05, 17:03 #4
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
PHP-kod:
<?php
/*
------------------------------------------------------------------------------
RECEIVE_SMS.PHP
------------------------------------------------------------------------------

Detta script kan ta emot SMS-meddelanden från MO-SMS.
Allt som ekas ut av ditt skript kommer att hamna i ett svars-SMS till
slutanvändaren. Det är alltså mycket viktigt att skriptet inte genererar några
felmeddelanden eller liknande. Om inget svar ekas ut inom 30 sekunder skickar
MO-SMS automatiskt ut ett "Tack för din beställning"-SMS av debiterings-
tekniska skäl.

SMS:et levereras i teckenkodning ISO 8859-1

------------------------------------------------------------------------------
*/

// Stäng av PHP:s felrapportering
error_reporting(0);


// Plocka ut avsändarnumret
$nr $_REQUEST['nr'];

// Plocka ut SMS-meddelandet
$sms urldecode($_REQUEST['sms']);

// Plocka ut priset slutanvändaren blev debiterad (för egen vinststatistik)
$tariff $_REQUEST['tariff'];

// Plocka ut operatören SMS:et skickades in via (för egen vinststatistik)
$operator $_REQUEST['operator'];

//Vilken fil du vill spara ned datan i, saknas filen skapas den
$file 'incoming-sms.csv';

// Data som ska sparas ned i filen
$data "$nr$sms$tariff$operator, 'meddelande'\n";

// Spara ned datan sist i filen
file_put_contents($file$dataFILE_APPEND);  

// Eka ut svaret som skickas tillbaka till slutanvändaren
echo 'Klart';

?>
Om du inte anger en sökväg utan bara filnamn sparas filen i samma mapp som php-filen ligger i.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 08:48 #5
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Funkar tyvärr inte. Borde göra det dock. Skumt.
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 09:03 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Om du har gjort en include av din fil så får du leta i den katalog som den anropande scriptet ligger i.

Tänk också på att filen ska hamna antingen i en katalog som inte är läsbar utifrån, eller att du skyddar den med .htaccess så att ingen script-kiddie laddar ner alla dina sms så här: http://wa tera id.xx/katalog/incoming-sms.csv





Men du bör absolut inte ta bort error_reporting, se till att lägga in en egen felhanterare som loggar till en fil eller något (att vräka ner allt i apaches errorlog gör det bara svårt att hitta). Läs mer om rapportering och felhanterare på http://se2.php.net/manual/en/ref.errorfunc.php
Hade du gjort det så hade du vetat vad som var fel redan nu.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 09:41 #7
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Vad menar du med include?

Lagt filen i samma katalog som scriptet men inget skrivs ner, det funkar inte ens att gå vidare i scriptet. Kommenterar jag bort raden:
file_put_contents($file, $data, FILE_APPEND);

Funkar det, något är fel med den raden.
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 10:00 #8
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Den säger:
Fatal error: Call to undefined function: file_put_contents() in /home/userA/a1308200/public_html/wateraid.nu/sms/recieve-sms.php on line 42
danielholking är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 10:15 #9
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Vilken php-version kör du?
Det kan vara att du kör en föråldrad version tidigare än 5.0. i så fall får du använda $handle=fopen('filnamn','a') för att öppna filen, a betyder att du öppnar den för skrivning och sätter pekaren i botten,
fputs($handle,$sträng) för att lägga till data och
fclose($handle) för att stänga filen.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-11-09, 10:18 #10
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
danielholking danielholking är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2005
Inlägg: 26
Magnus, hur skulle det se ut. Förstår ungefär. Hur skriver du om raden:

file_put_contents($file, $data, FILE_APPEND);
danielholking är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017