Gå til innhold

Problemer med if og elseif


Anbefalte innlegg

Howdy!

 

Jeg har for tiden en sluttoppgave som omhandler Nettverks- og systemadministrasjon, og holder i den anledning på med Windows Server 2003 og Active Directory.

 

Jeg prøver å lage et script som utfører en CMD kommando for å opprette brukerene, og alt funker helt fint helt til jeg legger til if-elseif-else greia for å velge hvem gruppe brukeren skal legges til i.

 

 

PHP-kode:

<?php

$fornavn = htmlspecialchars(strip_tags($_POST['fornavn']));
$etternavn = htmlspecialchars(strip_tags($_POST['etternavn']));
$passord = "1337";
$gruppe = htmlspecialchars(strip_tags($_POST['gruppe']));
$desc = htmlspecialchars(strip_tags($_POST['desc']));

$system_call  = "cmd.exe ";
$system_call .= "/c Dsadd user ";
$system_call .= "\"";
$system_call .= "cn=".$fornavn." ".$etternavn.", ";
$system_call .= "ou=".$gruppeou.", ";
$system_call .= "ou=Oslo, ";
$system_call .= "dc=oslo, ";
$system_call .= "dc=darkodesigns";
$system_call .= "\" ";
$system_call .= "-samid ";
$system_call .= $fornavn.".".$etternavn." ";
$system_call .= "-upn ";
$system_call .= $fornavn.".".$etternavn."@oslo.darkodesigns ";
$system_call .= "-pwd ";
$system_call .= $passord." ";
$system_call .= "-fn ";
$system_call .= $fornavn." ";
$system_call .= "-ln ";
$system_call .= $etternavn." ";
$system_call .= "-display ";
$system_call .= $fornavn." ";
$system_call .= "-desc ";
$system_call .= "\"";
$system_call .= $desc."";
$system_call .= "\"";

$system_call2  = "cmd.exe ";
$system_call2 .= "/c Dsmod user ";
$system_call2 .= "\"";
$system_call2 .= "cn=".$fornavn." ".$etternavn.", ";
$system_call2 .= "ou=".$gruppeou.", ";
$system_call2 .= "ou=Oslo, ";
$system_call2 .= "dc=oslo, ";
$system_call2 .= "dc=darkodesigns";
$system_call2 .= "\" ";
$system_call2 .= "-profile ";
$system_call2 .= "\"\\\\oslo-win-srv\\Profiles\\\$username\$\" ";
$system_call2 .= "-disabled ";
$system_call2 .= "no ";

$system_call3  = "cmd.exe ";
$system_call3 .= "/c Dsmod group ";
$system_call3 .= "\"";
$system_call3 .= "cn=".$gruppe.", ";
$system_call3 .= "ou=Gruppe, ";
$system_call3 .= "ou=Oslo, ";
$system_call3 .= "dc=oslo, ";
$system_call3 .= "dc=darkodesigns";
$system_call3 .= "\" ";
$system_call3 .= "-addmbr ";
$system_call3 .= "\" ";
$system_call3 .= "cn=".$fornavn." ".$etternavn.", ";
$system_call3 .= "ou=".$gruppeou.", ";
$system_call3 .= "ou=Oslo, ";
$system_call3 .= "dc=oslo, ";
$system_call3 .= "dc=darkodesigns";
$system_call3 .= "\" ";

if($_POST['submit']) {


if(empty($fornavn) || empty($etternavn) || empty($desc)) {
	echo "<code><span class='left'>Vennligst fyll ut alle feltene!</span><br /></code>";
}

else {

//////////////////Her er problemet//////////////////
if ($gruppe = "Selger") {
 $gruppeou = "Marked";
}

elseif ($gruppe = "Renhold") {
 $gruppeou = "Ansatte";
}

elseif ($gruppe = "Produksjon") {
 $gruppeou = "Produksjon";
}

elseif ($gruppe = "Okonomi") {
 $gruppeou = "Ansatte";
}

elseif ($gruppe = "Kantine") {
 $gruppeou = "Ansatte";
}

elseif ($gruppe = "Grafiskdesign") {
 $gruppeou = "Design";
}

elseif ($gruppe = "Administrasjon") {
 $gruppeou = "Ledelse";
}

else { $gruppeou = "Ansatte"; }
//////////////////////////////////////////////////////

system($system_call);
system($system_call2);
system($system_call3);
echo("<code><span class='left'>Brukeren<b> $fornavn $etternavn </b>ble lagt til i gruppen<b> $gruppe</b>, og
kan nå logge inn med<br />brukernavnet: <b>[email protected]</b> og passordet <b>1337</b></span><br /><br /></code>$gruppeou");
}
}
else {
echo("

<form action=\"\" method=\"post\">
<code><span class=\"left\">Fornavn:</span><span class=\"right\"><input name=\"fornavn\" type=\"text\" /></span><br />
<span class=\"left\">Etternavn:</span><span class=\"right\"><input name=\"etternavn\" type=\"text\" /></span>
</code>

<code><span class=\"left\">Beskrivelse:</span><span class=\"right\"><input name=\"desc\" type=\"text\" /></span>
</code>

<code><span class=\"left\">Gruppe:</span><span class=\"right\"><select name=\"gruppe\"><option>Selger</option><option>Renhold</option><option>Produksjon</option>
<option>Okonomi</option><option>Kantine</option><option>Grafiskdesign</option><option>Administrasjon</option>
</select></span>
</code>

<code><span class=\"left\">Opprett:</span><span class=\"right\"><input type=\"submit\" value=\"Opprett\" name=\"submit\" /></span>
</code>
</form>

");
}
?>

 

Problemet her er at uansett hvem gruppe jeg spesifiserer fra nedtrekksmenyen, legger den til brukeren i Selger gruppen, og OU'en Marked.

 

Hvis jeg tar vekk if-setningen og spesifiserer $gruppeou manuelt, funker det helt fint. Da legger den til brukeren i den spesifiserte gruppen, og i OU'en jeg skrev inn i scriptet.

 

Jeg har også prøvd if-setningen uten paranteser, og med følgende:

elseif ($gruppe = ("Grafiskdesign")) {
 ($gruppeou = ("Design"));
}

 

 

Noen som har peiling på dette? Mulig jeg failer veldig, men jeg forstår ikke hva som er feil :p

Endret av lefsaker
Lenke til kommentar
Videoannonse
Annonse

Dessuten må $gruppeou defineres før du kan benytte den i $systemcall.

 

[23:37:47] [m4rtin] do: $var = "hei {$test}"; $test = 'på deg'; echo $var;
[23:37:48] [+phpbot] m4rtin: PHP Notice: Undefined variable: test in /tmp/phpbot_tmpfiles/mqBkCo4H10 on line 2
[23:37:48] [+phpbot] m4rtin: hei

Endret av M4rTiN
Lenke til kommentar

Ville forresten plassert all koden som genererer systemkallene inn i if($_POST['submit']), fordi ellers vil du få feilmeldinger på at $_POST ikke er definert når siden lastes (ie før formet har blitt submittet). Ville også ha skrevet if(isset($_POST['submit'])) eller if(!empty($_POST)) istedenfor den if-en du har, da også den vil produsere en feilmelding hvis $_POST ikke er satt.. =)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...