Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SMS Schnittstelle mit php

Frage Entwicklung PHP

Mitglied: 104394

104394 (Level 1)

07.04.2012 um 14:26 Uhr, 5633 Aufrufe, 10 Kommentare

Hallo!
In meiner Firma haben wir seit einiger Zeit eine SMS Schnitstelle zum versenden von SMS gemietet.
Nun möchte soll auf der Homepage ein PHP Seite z.B. sms.php integriert werden - welche aus einem Formular für Telefonnummer und Empfänger besteht.
Mit einem klick auf senden soll dann das SMS versendet werden.

Die SMS Schnittstelle ist "http2sms.at/sms".
Die Nachricht wird wie folgend übermittelt http://edis.at/sms.php3?id=XXX&pw=XXX&dnr=%2BXXXXXXXX&snr=X ...

id: User-ID
pw: Passwort
dnr: Zielrufnummer (Im URL statt +43 -> %2B43)
snr: Absender; 11 Zeichen Text oder 16stellige Nummer
mit + vorangestellt ('+' als %2B übergeben!)
msg: Textnachricht bis 160 Zeichen

Kann mir bitte bitte bitte jemand weiterhelfen wie ich das am besten realisieren kann. Auf diesem Gebiet habe ich noch fast keine Erfahrung.

Eine Beschreibung zur Übermittlung der Nachrichten gibts unter "http://www.edis.at/download-manual_42.htm"


Danke
Apollo0815
Mitglied: MrNetman
07.04.2012 um 14:37 Uhr
Hi Mondsüchtiger,

Links zu https Seiten machen nur mit dem Passwort Sinn.
Aber wie wäre es mit selbst lesen und lernen. Wenn du schon ein Handbuch vor dir hast.
Außerdem fehlen Milliarden von Informationen:
Intranetserver / Webserver ?
Geschützter Benutzerkreis ?
Wie weit bist du gekommen ?

Gruß
Netman
Bitte warten ..
Mitglied: 104394
08.04.2012 um 08:56 Uhr
Hallo!
1. Wo findest du eine https Seite?
2. Wenn ich mich in diesem Handbuch auskennen würde, hätte ich die Frage hier nicht gestellt.
3. Webserver wird auch von Edis verwendet.
4. Ich habe die SMS Schnittstelle und benötige Hilfe bei der Erstellung eines Skriptes, da meines aus irgendeinen Grund nicht funktioniert.
Bitte warten ..
Mitglied: EvilMoe
08.04.2012 um 09:27 Uhr
Morgen,

wenn du es ganz einfach machen willst:
01.
$return = file_get_contents("http://www.edis.at/sms.php3?id=XXX&pw=XXX&dnr=%252BXXXXXXXX&snr=XXXXXXX&msg=Das+ist+ein+Test");
Dann den "$return" angucken ob alles erfolgreich ankam und fertig ;)


Ich finde es etwas riskant ein Passwort unverschlüsselt zu übertragen.




EDIT: Du kannst bei edis.at eine IP Firewall einstellen. Das würde ich auf jeden Fall auch machen.
Bitte warten ..
Mitglied: Guenni
08.04.2012 um 10:17 Uhr
Hi Apollo0815,

dafür kannst du ein einfaches Formular verwenden, mit der Methode get, dann werden die Formulardaten

automatisch an die Zieladresse angehangen:

<form action="http://edis.at/sms.php3" method="get" name="smsform" onsubmit="return hinweis()">

Ergibt z.B.: Zieladresse im Browser: http://edis.at/sms.php3?id=123&pw=456&dnr=%2B491721234569&s ...

Wird das Formular gesendet, onsubmit, wird die Funktion hinweis() aufgerufen. Wenn die Nachricht

länger als 160 Zeichen ist, gibt die Funktion false zurück und das Formular wird nicht gesendet.

Dazu muß allerdings JavaScript aktiviert sein.

01.
<?php 
02.
/* 
03.
* Testausgabe 
04.
*/ 
05.
echo '<pre>'
06.
print_r($_GET); 
07.
echo '</pre>'
08.
echo '<b>Query-String:</B> '.$_SERVER['REQUEST_URI']; 
09.
 
10.
?> 
11.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
12.
<html> 
13.
<head> 
14.
<title>SMS-Versand</title> 
15.
<script type="text/javascript"
16.
<!-- 
17.
/* 
18.
* Prüfen, ob JavaScript aktiviert ist. 
19.
*/ 
20.
function is_java(){ 
21.
	if (!navigator.javaEnabled()) { 
22.
  	alert('Bitte JavaScript aktivieren!'); 
23.
		window.location.href="http://server"
24.
25.
26.
/* 
27.
* Zum Ausführen der Funktion muß JavaScript aktiviert sein. 
28.
*/ 
29.
function hinweis(){ 
30.
	if(document.smsform.msg.value.length > 160){ 
31.
		alert('Maximale Zeichenanzahl erreicht/überschritten!'); 
32.
		return false; 
33.
34.
return true; 
35.
36.
// --> 
37.
</script> 
38.
</head> 
39.
<body onload="is_java()"
40.
<!--  
41.
Bei action="" die richtige Adresse eintragen. z.B.: action="http://edis.at/sms.php3" 
42.
Die Formulardaten werden automatisch angehangen. 
43.
//--> 
44.
<form action="" method="get" name="smsform" onsubmit="return hinweis()"
45.
<p><label for="userid">UserId: </label><input type="text" name="id" id="userid"/></p> 
46.
<p><label for="userpass">Passwort: </label><input type="password" name="pw" id="userpass"/></p> 
47.
<p><label for="empf">Empfänger: </label><select name="dnr" id="empf"
48.
<option>Empfänger</option> 
49.
<option>+491721234569</option> 
50.
<option>+4917212345611</option> 
51.
</select></p> 
52.
<p><label for="sender">Absender: </label><select name="snr" id="sender"
53.
<option>Absender</option> 
54.
<option>+491721234567</option> 
55.
<option>+491721234568</option> 
56.
</select></p> 
57.
<p><label for="usermsg">Nachricht(max. 160 Zeichen): </label></p> 
58.
<p><textarea name="msg" id="usermsg" cols="40" rows="10"></textarea></p> 
59.
<p><input type="submit"/></p> 
60.
</form> 
61.
</body> 
62.
</html> 
63.
 
64.
?>
Gruß
Günni
Bitte warten ..
Mitglied: 104394
08.04.2012 um 14:12 Uhr
Hallo!
Danke für Euere Antworten und Bemühungen es klappt!
Danke und frohe Ostern!
lg
Bitte warten ..
Mitglied: filippg
10.04.2012 um 00:43 Uhr
Hallo,

<form action="http://edis.at/sms.php3&quot" method="get" name="smsform" onsubmit="return hinweis()">
Ergibt z.B.: Zieladresse im Browser: http://edis.at/sms.php3?id=123&amp;pw=456 ...
Hat nur den Nachteil, dass die Anfrage vom Browser ausgeführt wird - dieser muss also das Kennwort kennen, und die von EvilMoe genannte IP Firewall kann nicht genutzt werden.

Das
von Evil Moe läuft serverseitig, ist also halbwegs sicher, weil das Kennwort nicht an den Client übergeben wird.

Gruß

Filipp
Bitte warten ..
Mitglied: Guenni
11.04.2012 um 21:09 Uhr
Hi Fillipp,

Das
$return = file_get_contents("http://www.edis.at/sms.php3?id=XXX&amp;pw" ...;
von Evil Moe läuft serverseitig, ist also halbwegs sicher, weil das Kennwort nicht an den Client übergeben wird.


Die Funktion file_get_contents gibt einen Dateiinhalt als String zurück. Sie erwartet als Parameter einen Dateinamen,

und wenn man sms.php?id=123&pw=456 . . . angibt, gibt's eine Fehlermeldung.

Und ich wüsste auch nicht, wie man sich damit an einem Server verifizieren soll. Die Funktion liefert außerdem auch nur den

vom PHP-Parser durchgelassenen bzw. produzierten HTML-Text. PHP-Code wird nicht ausgegeben, also ist auch nicht zu sehen,

wie das Array $_GET ankommt.


Zu . . .

von Evil Moe läuft serverseitig, ist also halbwegs sicher, weil das Kennwort nicht an den Client übergeben wird.

. . . noch folgende Frage:

Ich kann ja wohl kaum die Webseite des Dienstanbieters modifizieren. Wo soll denn dann die Funktion file_get_contents

ausgeführt werden? Das kann doch nur nach Absenden des Forms auf einem eigenen Webserver geschehen.

Das kannst du ja mal ausprobieren und deine Ergebnisse posten. Bin gespannt.


Wenn der Dienst keinen sicheren Kanal anbietet, dann muß man sich eben überlegen, ob man diesen Dienst nutzen will.

Und das hat Apollo0815 ja für sich entschieden.

Gruß
Günni
Bitte warten ..
Mitglied: EvilMoe
11.04.2012 um 21:18 Uhr
Hallo,

mit file_get_contents lassen auch auch URL''s öffnen, vorausgesetzt das es die Config erlaubt.
Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine <Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter <Supported Protocols and Wrappers.


Und ich wüsste auch nicht, wie man sich damit an einem Server verifizieren soll. Die Funktion liefert außerdem auch nur den
vom PHP-Parser durchgelassenen bzw. produzierten HTML-Text. PHP-Code wird nicht ausgegeben, also ist auch nicht zu sehen,

Verifizieren tut man sich über die Parameter der URL. Das mit dem String ist schon richtig, nur nach dem Dokument für deren Schnittstelle liefern die auch nur einen String zurück... natürlich ist das nicht eine schöne Möglichkeit. Lieber wäre es natürlich das man eine XML oder JSON whatever bekommen würde wo detaillierte Informationen drin stehen über den genaue Fehler etc.


Wenn der Dienst keinen sicheren Kanal anbietet, dann muß man sich eben überlegen, ob man diesen Dienst nutzen will.
Mich wundert es das ein Anbieter sowas nicht per HTTPS anbietet. Zumal der SMS Anbieter nicht mal günstig ist.


Ich kann ja wohl kaum die Webseite des Dienstanbieters modifizieren. Wo soll denn dann die Funktion file_get_contents
Aber das Formular kann er modifizieren?

Sven
Bitte warten ..
Mitglied: Guenni
12.04.2012 um 22:46 Uhr
Hi Evil,

mit file_get_contents lassen auch auch URL''s öffnen, vorausgesetzt das es die Config erlaubt.

Dem habe ich auch nicht widersprochen. Ich habe nur ge(sagt)schrieben, dass kein PHP-Code

zurückgeliefert wird.


Aber das Formular kann er modifizieren?

Jein!! Aber wenn du die Variablen kennst, die das Zielscript verarbeitet, kannst du ein eigenes Formular

an die Adresse senden. Und das hat ja nach Aussage von Apollo wohl funktioniert.


Gruß
Günni
Bitte warten ..
Mitglied: fachspezi
28.03.2014 um 13:36 Uhr
Ist eine ganz schöne Sache, aber so viel Aufwand würde ich persönlich nicht betreiben.
Weißt du was du an Zeit in die Entwicklung der Schnittstelle gesteckt hast?

Denn wenn man sich mal die Angebote hier (http://www.textanywhere.de/sms-services/text-online.aspx) ansieht, dann gibt es hier schon fertige Lösungen für kleines Geld. Die laufen dann komplett losgelöst vom eigenen Netzwerk und können auch nach Bedarf aktiviert und wieder abgeschalten werden.
Wenn man im eigenen System eine Schnittstelle schafft, dann baut man das System ja wieder um und kann andere Probleme hervorrufen!
So einfach den Browser öffnen und SMS verschicken. Egal wo man sich befindet!
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Debian
SMS Gateway (API für PHP) (4)

Frage von itnobby zum Thema Debian ...

PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...