Avatar billede ttopholm Nybegynder
18. februar 2006 - 00:43 Der er 16 kommentarer og
1 løsning

fejl med com-object

Jeg har denne kode:
    public function editUser( $AutoResponderData, $Username,
                              $Active, $Password, $Realname,
                              $ReturnAddress, $ForwardAddress,
                              $KeepCopies, $Mailboxsize,
                              $AutoresponderSubject, $AutoResponderEnabled
                            )
    {
        $Users                     = new COM('MailServerX.Users');
        $i                         = $Users->IndexOf($Username);
        if($i > -1)
        {
            $User = $Users->Items($i);
            $AutoresponderdataObject = new COM('MailserverX.Lines');
            $AutoresponderdataObject->Add($AutoResponderData);
            $AutoresponderdataObject->SaveToFile('C:\\Inetpub\\wwwroot\\mailtemp\\' . md5($Username) . '.txt');
            $User->Active = $Active;
            $User->Password = $Password;
            $User->RealName= $Realname;
            $User->ReturnAddress= $ReturnAddress;
            $User->ForwardAddress= $ForwardAddress;
            $User->KeepCopies = $KeepCopies;
            $User->MailBoxSize= $Mailboxsize;
            $User->AutoresponderSubject = $AutoresponderSubject;
            $User->AutoResponderData = $AutoresponderdataObject;
            $User->AutoResponderEnabled = $AutoResponderEnabled;
            $Users->Items($i) = $User;
        }
    }
men den fejler i denne linie:

$Users->Items($i) = $User;

Og giver mig fejlen:
Can't use method return value in write context

Så har jeg prøvet at søge på google, også står der at man skal bruge [] istedet.. det har jeg så prøvet.. men giver mig denne fejl:
Uncaught exception 'com_exception' with message 'Error [0x8002000e] Invalid number of parameters

Og den mangler ingen parametre...

Den virker fint i asp..

Kører det på en win 2003 med IIS og php 5.1.2
Avatar billede coderdk Praktikant
18. februar 2006 - 01:08 #1
Eeerh, du forsøger at assigne en værdi ($User) til et objekts' metode - Det kan man ikke - Det er lidt som at skrive: 113 = $variabel;
Avatar billede ttopholm Nybegynder
18. februar 2006 - 01:14 #2
Ja.. Det ved, men det er sådan objektet er bygget op...

Det virker fint i ASP... og skulle virke i php.. det er den eneste måde jeg kan sætte det på..
Avatar billede ttopholm Nybegynder
18. februar 2006 - 01:23 #3
Sådan her ser den ud i asp:
set Users=server.CreateObject("MailServerX.Users")
i=Users.IndexOf("joe")
if i>-1 then
  set User=Users.Items(i)
  User.Password="newpassword"
  Users.Items(i)=User
end if
Avatar billede coderdk Praktikant
18. februar 2006 - 01:31 #4
Prøv med:

$users = = new COM('MailServerX.Users');
$i = $Users->IndexOf($Username);
if($i > -1)
{
  $theUser = $Users->Items[$i];
  $theUser->Password = "newpassword";
  $Users->Items[$i] = $theUser;
}
Avatar billede coderdk Praktikant
18. februar 2006 - 01:31 #5
Erh, fejl i starten med to = =
Avatar billede ttopholm Nybegynder
18. februar 2006 - 01:38 #6
Den giver mig det samme
Uncaught exception 'com_exception' with message 'Error [0x8002000e] Invalid number of parameters
Avatar billede coderdk Praktikant
18. februar 2006 - 01:48 #7
Giver den et linjenummer? Er det $users = new COM der gør det eller en anden?
Avatar billede coderdk Praktikant
18. februar 2006 - 01:52 #8
Hmm ok, prøv:

$users = new COM('MailServerX.Users');
$i = $Users->IndexOf($Username);
if($i > -1)
{
  $theUser &= $Users->Items($i);
  $theUser->Password = "newpassword";
}

Se om den ikke gemmer password'et ;) Eller skal du nok lave noget i stil med:;

if($i > -1)
{
  $Users->Items($i)->Password = "newpassword";
}
Avatar billede ttopholm Nybegynder
18. februar 2006 - 01:58 #9
Ingen af dem virker....
Avatar billede ttopholm Nybegynder
18. februar 2006 - 01:59 #10
det er den her der giver fejlen:
$Users->Items[$i] = $theUser;

fra dit spg. 18/02-2006 01:48:09
Avatar billede coderdk Praktikant
18. februar 2006 - 02:02 #11
Får du fejl ved:

$Users->Items($i)->Password = "newpassword";

?!
Avatar billede coderdk Praktikant
18. februar 2006 - 02:02 #12
Ellers prøv en var_dump( $Users ) - det kan være du kan se hvad du skal bruge :)
Avatar billede ttopholm Nybegynder
18. februar 2006 - 02:04 #13
$Users->Items($i)->Password = "newpassword";

Den giver ikke fejl ved denne, men den ændre heller ikke noget...
Avatar billede ttopholm Nybegynder
18. februar 2006 - 02:06 #14
var_dump giver mig bare at det er et objekt....
Avatar billede coderdk Praktikant
18. februar 2006 - 02:10 #15
Sorry, så ved jeg det ikke :)

Prøv at kigge nogle af disse igennem:

  http://google.com/search?q=MailServerX.Users+php+com+Password
Avatar billede ttopholm Nybegynder
18. februar 2006 - 02:16 #16
har været igennem alt det ;-)
Avatar billede ttopholm Nybegynder
28. april 2006 - 09:26 #17
Fandt en anden måde at gøre det på. Ved at slette og oprette brugeren igen
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