Avatar billede jumario Nybegynder
14. marts 2003 - 11:55 Der er 8 kommentarer og
1 løsning

objekter fra asp/vb i php?

Er det muligt at forbinde til objekter via PHP - til programmer skrevet i VB? Hvor jeg i ASP bruger Server.Createobject("PCBSMS.Sender") som er et hjemmelavet VB program - ville jeg høre om der kan gøres noget tilsvarende i PHP da jeg godt vil have alt webkoden til at køre PHP.

Alternativt skal jeg linke fra PHP til ASP dokumenter og omvendt, og det holder jo ikke hel. Er åben for alle muligheder!
Avatar billede swaxi Nybegynder
14. marts 2003 - 15:34 #1
umiddelbart har jeg svært ved at forestille mig at det kan lade sig gøre. og hvis det kan, er der sikkert en masse grus med det. det er dog muligt at det kan lade sig gøre vha. webservices/SOAP.
Avatar billede mortrr Praktikant
14. marts 2003 - 16:39 #2
Hvis på win32 platform:
$pcb = new COM("PCBSMS.Sender");
http://www.php.net/manual/en/ref.com.php

Ellers ikke.
Avatar billede jumario Nybegynder
17. marts 2003 - 10:44 #3
Det ser ud til at gå den rigtige vej med den COM ting mortrr. Men jeg får en fejl nu jeg ikke helt er sikker på hvad skyldes

Warning: (null)(): Unable to obtain IDispatch interface for CLSID {84A149CC-3F92-4FE2-A166-9979DD7CC1A9}: Class not registered in d:\sites\juma\sms\comtest.php on line 3

nogen ide om hvordan den fejl kan udbedres? Den ser ud til at have fået en ClassID så hvad kan problemet være?
Avatar billede mortrr Praktikant
17. marts 2003 - 11:03 #4
Der er et par muligheder.
- Objektet er ikke registreret rigtigt eller afinstalleret. CLSID'en findes ikke under HKEY_CLASSES_ROOT\CLSID.
- DLL'en er der ikke.
- Komponenten har ikke en IDispatch (men hvis du kan bruge den fra asp, så er det ikke det).
Avatar billede jumario Nybegynder
17. marts 2003 - 11:42 #5
hmm tror ikke det er nogen af de fejl, objektet er registreret korrekt ser det ud til i registreringsdatabasen, og DLL filen ligger hvor den skal.
"class not registred" siger den - kan det have noget med selve php koden at gøre?

der er kun det her indtil videre..

<?php
$sms = new COM("PCBSMS.Sender", "127.0.0.1");
?>
Avatar billede jumario Nybegynder
17. marts 2003 - 11:43 #6
og ja det virker fint med ASP med koden
<%
    Set smssender = server.CreateObject("PCBSMS.Sender")
    smssender.Message = besked
    smssender.MobileNr = modtager
    smssender.SMSCenterIP = "10.254.2.220"
    smssender.Send
%>

så det er nok heller ikke sidste mulighed
Avatar billede mortrr Praktikant
17. marts 2003 - 13:13 #7
Har du controlleret php.ini om com er tilladt?

com.allow_dcom skal være sat til true

Det er forøvrigt ikke nødvendigt med server
$sms = new COM("PCBSMS.Sender");
Avatar billede jumario Nybegynder
17. marts 2003 - 13:14 #8
Ja den er sat til true. jeg får en fejl hvis jeg ikke har server på, ved ikke hvorfor
Avatar billede mortrr Praktikant
17. marts 2003 - 17:06 #9
Det hænger muligvis sammen med at du angiver server.

Hvis server er angivet bruger man ikke COM, men DCOM som giver adgang til at oprette en instance af et objekt på en anden server.

Normalt burde det være nok at skifte 127.0.0.1 ud med localhost, men hvis ikke, er du nødt til at give IUSR_xxx lov til at oprette et "dcom-objekt".
Hvis SMS-senderen da kan klare det.

Start - kør "dcomcnfg" Enter
I Component Services - My Computer - COM+ Applications finder du navnet på SMS senderen. (eller direkte under Applications på "ældre" windows)
Højreklik - Properties - Security
Access Permissions - Customize - Edit
Tilføj IUSR_xxx
Når du er tilbage i Security, vælger du Customize på de to andre (launch og Configuration) og kontrollerer at IUSR også står her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester