Crowly Skrevet 7. februar 2008 Skrevet 7. februar 2008 (endret) Burde ikke dette funke? system('cmd.exe /c Dsadd user "cn='.$fornavn.' '.$etternavn.', ou=Trinn1, ou=Elever, dc=svarttjern,dc=skole" -samid '.$brukernavn.' -upn '.$brukernavn.'@svarttjern.skole -pwd '.$passord.' -fn '.$fornavn.' -ln '.$etternavn.' -display '.$fornavn.' -memberof "CN=Klasse1A, ou=Klassetrinn, ou=Elever, DC=svarttjern, DC=skole" "CN=Bibliotek, ou=Klassetrinn, ou=Elever, DC=svarttjern, DC=skole" -tel '.$telefonnummer.' -desc "'.$beksrivelse.'" -profile \\svarttjern-ad\profiles\trinn1'); Du skal ikke ha behov for å spesifisere cmd.exe, jeg regner med at selve kommandoen du vil utføre er dsadd. Du kan prøve $temp=system('dsadd ..... '); if ($temp===FALSE) echo "system dsadd feilet"; else echo $temp; for å se hva som blir returnert av system kommandoen. Jeg kan ikke bruke " IOM at " er i bruk inne i selve cmd kommandoen som utføres Som nevnt over så bør du lese litt om forskjellen på bruken av ' og ". Du kan fint bruke " inne i en streng med ", men du må escape dem f.eks slik $temp="hei på \"deg\""; En echo $temp; vil da gi resultatet hei på "deg" det funka ikke med .bat fil... Ingenting skjer når jeg åpner den manuelt heller... Det er ikke så rart et det ikke fungerer når du starter den manuelt, ingen av parameterene er satt. %1-6 eksisterer ikke da. Du kan evt endre .bat file til dette for å se om du får med deg alle parameterene og om det kommer noen feilmeldinger fra kommandoen :: %1 fornavn :: %2 etternavn :: %3 brukernavn :: %4 passord :: %5 tlf :: %6 beskrivelse :: skriver ut verdiene av %1 - %6 echo %1 echo %2 echo %3 echo %4 echo %5 echo %6 Dsadd user "cn=%1 %2, ou=Trinn1, ou=Elever, dc=svarttjern,dc=skole" -samid %3 -upn %[email protected] -pwd %4 -fn %1 -ln %2 -display %1 -memberof "CN=Klasse1A, ou=Klassetrinn, ou=Elever, DC=svarttjern, DC=skole" "CN=Bibliotek, ou=Klassetrinn, ou=Elever, DC=svarttjern, DC=skole" -tel %5 -desc "%6" -profile \\svarttjern-ad\profiles\trinn1 :: fjern pause når alt fungerer pause Endret 7. februar 2008 av Crowly
lefsaker Skrevet 8. februar 2008 Forfatter Skrevet 8. februar 2008 Dere er helt geniale altså! Nå funker det å greier Et lite ekstraspørsmål: $system_call .= "\\svarttjern-ad\profiles\trinn1"; gjorde den om til \\svarttjern-ad\profiles rinn1 Det var jo bare å slenge på en \ til, men hva er \t til?
pulse Skrevet 8. februar 2008 Skrevet 8. februar 2008 Når du bruker " så blir \t til tab, dersom du forandrer til ' ($system_call .= '\\svarttjern-ad\profiles\trinn1' så vil det fungere flott
Crowly Skrevet 8. februar 2008 Skrevet 8. februar 2008 Når du bruker " så blir \t til tab, dersom du forandrer til ' ($system_call .= '\\svarttjern-ad\profiles\trinn1' så vil det fungere flott Alternativt escape \, så det blir $system_call .= "\\\\svarttjern-ad\\profiles\\trinn1" echo $system_call gir da \\svarttjern-ad\profiles\trinn1 Men det blir noen ekstra tegn å taste inn, så det er nok enklere å bruke ' ( \ er escape char, så for å få \ i en streng omsluttet av " , så må man skrive \\ for å kun få en \)
pulse Skrevet 8. februar 2008 Skrevet 8. februar 2008 Men det blir noen ekstra tegn å taste inn, så det er nok enklere å bruke ' Leste en plass (husker ikke hvor eller hvor politelig det var) at ' også er kjappere/mindre resusjkrevende enn ". Noen som kan bekrefte eller avkrefte dette?
G2Petter Skrevet 8. februar 2008 Skrevet 8. februar 2008 Det er visst marginalt raskere å utføre fordi PHP ikke må se om strengen inneholder en variabel før den skriver ut.
Crowly Skrevet 8. februar 2008 Skrevet 8. februar 2008 Det er visst marginalt raskere å utføre fordi PHP ikke må se om strengen inneholder en variabel før den skriver ut. Escape tegn fungerer ikke i strenger med '. Så det blir som nevt over, mindre ting php må kontrollere i strengen før den blir skrevet ut. Men forskjellene er ikke merbare, om man da ikke har veldig tunge script og hver lille ytelses forbedring er viktig. F.eks for å få en new line på slutten av strengen Fungerer: echo "test test\n"; echo 'test test'."\n"; Fungere ikke echo 'test test\n';
FrodeNilsen Skrevet 10. februar 2008 Skrevet 10. februar 2008 Det er visst marginalt raskere å utføre fordi PHP ikke må se om strengen inneholder en variabel før den skriver ut. Escape tegn fungerer ikke i strenger med '. Så det blir som nevt over, mindre ting php må kontrollere i strengen før den blir skrevet ut. Men forskjellene er ikke merbare, om man da ikke har veldig tunge script og hver lille ytelses forbedring er viktig. F.eks for å få en new line på slutten av strengen Fungerer: echo "test test\n"; echo 'test test'."\n"; Fungere ikke echo 'test test\n'; Nå er det slik at "\'" eller "\\" i slutten av en string har spesiell betydning selv med '. http://no.php.net/manual/en/language.types...g.syntax.single Det å mikse enkel og dobbel om hverandre blir lett suppe og uoversiktelig, slik at korrektur av koden kan bli tilnærmet umulig.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå