Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] if en else

Anoniem
Bill Gates
7 antwoorden
  • ik ben een beginnende PHP'er en ik zit met een probleem. Ik heb op mijn pc een server draaien((nog) niet 24/7) met een php met de status van mijn call of duty server. Hij geeft als gametype dingen aan als dm en bel. Dit kan bets, mensen begrijpen het toch wel, maar ik wil graag ipv dm DeathMatch en ipv bel Behind Enemy Lines. Ik heb nu[code:1:e36c8d2574]if($gametype == bel){
    $gametype = "Behind Enemy Lines";
    } elseif($gametype = dm)
    { $gametype == "DeathMatch";
    } elseif($gametype = tdm)
    { $gametype == "Team DeathMatch";
    } else{$gametype = $gametype;}[/code:1:e36c8d2574]Dit wil ik nog verder uitbreiden, maar ik krijg het nog niet aan de praat. Hoe krijg ik het voormekaar dat hij het wel vervangt.

    Voor geinterreseerde de voledige code:[code:1:e36c8d2574]<?

    ############################
    ## Hieronder ff wijzigen! ##
    ############################

    $st_ip = "213.134.230.168"; //ip van de server
    $st_port = 28969; //De poort van de server standaard is: 28960

    ##############################
    ## Hieronder niet Wijzigen! ##
    ################################################################
    ## Maak voor de opmaak een CSS bestand maar ga niet wijzigen! ##
    ################################################################

    function color($text)
    {
    $text = eregi_replace('\^0', '<font color="black">',$text);
    $text = eregi_replace('\^1', '<font color="red">',$text);
    $text = eregi_replace('\^2', '<font color="green">',$text);
    $text = eregi_replace('\^3', '<font color="yellow">',$text);
    $text = eregi_replace('\^4', '<font color="blue">',$text);
    $text = eregi_replace('\^5', '<font color="lightblue">',$text);
    $text = eregi_replace('\^6', '<font color="pink">',$text);
    $text = eregi_replace('\^7', '<font color="white">',$text);
    $text = eregi_replace('\^8', '<font color="darkgreen">',$text);
    $text = eregi_replace('\^9', '<font color="lightgray">',$text);
    return $text;
    }
    function tel($text)
    {
    $texta = explode("^", $text);
    $aantal = count($texta);
    return $aantal-1;
    }

    if(!$_GET["ip"])
    {
    $s_port = $st_port;
    $s_ip = $st_ip;
    }
    elseif(!$_GET["port"])
    {
    $ex = explode(":",$_GET["ip"]);
    if($ex[1] == ""){$ex[1] = 28960;}
    $s_port = $ex[1];
    $s_ip = $ex[0];
    }
    else
    {$s_port = $_GET["port"];
    $s_ip = $_GET["ip"];
    }

    $s_con = fsockopen("udp://".$s_ip, $s_port);

    fwrite($s_con, "ÿÿÿÿ". chr (0x02). "getstatus". chr (0x00));

    fread($s_con, 4);

    $status = socket_get_status($s_con);

    // Geen verbinding

    if($status["unread_bytes"] == 0)
    {
    exit("De server is down…");
    }

    $empfangen = "";

    do
    {
    $empfangen .= fread($s_con, 1);
    $status = socket_get_status($s_con);
    }
    while($status["unread_bytes"] != 0);

    fclose($s_con);

    $daten = explode("
    ", $empfangen);
    $rules = explode("\\",$daten[1]);

    $find_pos = array_search ("sv_hostname", $rules);
    $hostname = $rules[$find_pos+1] . "
    ";

    $aantal = tel($hostname);
    $hostname = color($hostname);

    $find_pos = array_search ("mapname", $rules);
    $mapname = $rules[$find_pos+1];
    $mapname = strtolower($mapname);

    $playercount = count ($daten);
    $playercount = $playercount-3;

    $find_pos = array_search ("sv_maxclients", $rules);
    $maxplayers = $rules[$find_pos+1] . "
    ";

    $find_pos = array_search ("g_gametype", $rules);
    $gametype = $rules[$find_pos+1] . "
    ";

    $find_pos = array_search ("scr_killcam", $rules);
    $killcam = $rules[$find_pos+1] . "
    ";
    if($killcam == 1){$killcam = "on";}
    else{$killcam = "off";}

    $find_pos = array_search ("shortversion", $rules);
    $version = $rules[$find_pos+1] . "
    ";

    $find_pos = array_search ("pswrd", $rules);
    $password = $rules[$find_pos+1] . "
    ";
    if($password == 1){$password = "Yes";}
    else{$password = "No";}

    $find_pos = array_search ("sv_punkbuster", $rules);
    $punkbuster = $rules[$find_pos+1] . "
    ";
    if($punkbuster == 1){$punkbuster = "On";}
    else{$punkbuster = "Off";}

    ##############################
    ## Gametype namen aanpassen ##
    ##############################

    if($gametype == bel){
    $gametype = "Behind Enemy Lines";
    } elseif($gametype = dm)
    { $gametype == "DeathMatch";
    } elseif($gametype = tdm)
    { $gametype == "Team DeathMatch";
    } else{$gametype = $gametype;}

    echo "<link type='text/css' rel='stylesheet' href='style.css'>";
    echo "<br><div align='center'>";

    echo "<table border='1' cellspacing='0' width='400'>";
    echo "<tr>";
    echo "<td>";

    echo "<center><h2>Call of Duty Server Stats:</h2></center>";

    echo "<b>Servername:</b> " . $hostname . "<br>";

    for ($i=0; $i<$aantal; $i++)
    {
    echo "</font>";
    }

    echo "<b>Server-IP:</b> " . $s_ip . ":" . $s_port . "<br>";

    echo "<b>Gametype:</b> " . $gametype . "</font><br>";

    echo "<b>Killcam:</b> " . $killcam . "<br>";

    echo "<b>Version:</b> " . $version . "<br>";

    echo "<b>Password:</b> " . $password . "<br>";

    echo "<b>Punkbuster:</b> " . $punkbuster . "<br>";

    echo "<b>Players:</b> " . $playercount . " / " . $maxplayers . "<br>";

    echo "<b>Current map:</b> " . $mapname . "<br><br>";

    if (file_exists("image/" . $mapname . ".jpg"))
    {
    echo "<center><img width='366' src='image/" . $mapname . ".jpg'><br>" . $mapname . "<br><br><center>";
    }
    else
    {
    echo "<center><img width='366' src='image/custom.jpg'><br>A Custom Map / No image available<br><br></center>";
    }


    echo "</td></tr></table><br>";

    // Speler informatie

    echo "<table cellspacing='0' width='400' border='1'>";

    if ($playercount !=0){

    echo "<tr>";
    echo "<td><center>Nickname</center></td>";
    echo "<td><center>Score</center></font></td>";
    echo "<td><center>Ping</center></font></td>";
    echo "</tr>";

    $x = 1;

    while ($x <= $playercount)
    {

    $x++;

    $playerinfo = explode('"',$daten[$x]);

    $aantal = tel($playerinfo[1]);
    $playerinfo[1] = color($playerinfo[1]);

    $gegevens = explode(" ",$playerinfo[0]);
    $score = $gegevens[0];
    $ping = $gegevens[1];

    echo "<tr>";
    echo "<td>" . $playerinfo[1] . "";

    for ($i=0; $i<$aantal; $i++)
    {
    echo "</font>";
    }

    echo "</td>";
    echo "<td><center>" . $score . "</center></font></td>";
    echo "<td><center>" . $ping . "</center></font></td>";
    echo "</tr>";

    }

    echo "</table>";
    }
    else
    {
    echo "<tr><td>No players are on this server</tr></td>";
    echo "</table>";
    }

    if($_GET["ip"])
    {
    echo "<center><br><a href='cod.php?ip=" . $_GET["ip"] . "&port=" . $_GET["port"] . "'>Refresh</a></center> ";
    }
    else
    {
    echo "<center><br><a href='cod.php'>Refresh</a></center> ";
    }

    ?>[/code:1:e36c8d2574]







  • Het zit hem hierin:

    } elseif($gametype = dm)

    typfoutje met je = :)

    ik denk zelfs dat je bedoelt:

    } else if ($gametype == "dm")
  • zit het hem in

    :D elseif / else if
    :D dm / "dm"
    :D = / ==

    ???
  • als ik enkel = doe, dan neemt ie de eerste
    als ik dubbel == doe, dan slaat hij alles over.
  • Achter een if of een elseif gebruik je dubbel ==,
    achter een uitvoering of definitie ($a=b) enkel =.
    Niet else if maar elseif

    Edit:
    dm is een tekstwaarde, dus moet hij tussen aanhalingstekens.
    Edit 2: Zie hier.
  • [quote:a7530cf441="ANNErd"]ik ben een beginnende PHP'er en ik zit met een probleem. Ik heb op mijn pc een server draaien((nog) niet 24/7) met een php met de status van mijn call of duty server. Hij geeft als gametype dingen aan als dm en bel. Dit kan bets, mensen begrijpen het toch wel, maar ik wil graag ipv dm DeathMatch en ipv bel Behind Enemy Lines. Ik heb nu[code:1:a7530cf441]if($gametype == bel){
    $gametype = "Behind Enemy Lines";
    } elseif($gametype = dm)
    { $gametype == "DeathMatch";
    } elseif($gametype = tdm)
    { $gametype == "Team DeathMatch";
    } else{$gametype = $gametype;}[/code:1:a7530cf441]Dit wil ik nog verder uitbreiden, maar ik krijg het nog niet aan de praat. Hoe krijg ik het voormekaar dat hij het wel vervangt.[/quote:a7530cf441]
    Een switch-statement is toch wel overzichtelijker/beter onderhoudbaar
    [code:1:a7530cf441]
    switch ($gametype)
    { case 'bel':
    $gametype = 'Behind Enemy Lines'; break;
    case 'dm':
    $gametype = 'DeathMatch'; break;
    case 'tdm':
    $gametype = 'Team DeathMatch'; break;
    }
    [/code:1:a7530cf441]

    [quote:a7530cf441="ANNErd"]
    [code:1:a7530cf441]…
    [/code:1:a7530cf441][/quote:a7530cf441]
    Niet gecheckt.
  • het probleem was [code:1:37fe2f9895]$gametypeconnect = $gametype;[/code:1:37fe2f9895]dat miste, en daardoor werkte het niet…..

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.