Crowly Skrevet 7. februar 2008 Del 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 Lenke til kommentar
lefsaker Skrevet 8. februar 2008 Forfatter Del 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? Lenke til kommentar
pulse Skrevet 8. februar 2008 Del 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 Lenke til kommentar
Crowly Skrevet 8. februar 2008 Del 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 \) Lenke til kommentar
pulse Skrevet 8. februar 2008 Del 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? Lenke til kommentar
G2Petter Skrevet 8. februar 2008 Del 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. Lenke til kommentar
Crowly Skrevet 8. februar 2008 Del 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'; Lenke til kommentar
FrodeNilsen Skrevet 10. februar 2008 Del 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. Lenke til kommentar
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å