cstyle: Ich finde einfach den Fehler nicht

Hab mal mit folgendem Code einen Entscheidungshelfer programmiert jezt ist da aber ein Fehler drin

<form action="pfad.php">
     <input type="submit" name="aktiviere"
          value="Los" />
</form>
<br />
<?php
if(isset($_GET["aktiviere"]))
 {
     $zufall = rand(1,3);

if      ($zufall=="1")
     {
             echo "Ja";
     }
     else
     {
       if    ($zufall=="2")
      {
             echo "Nein";
      }
      else
      {
             echo "Vielleicht, klicke nochmal";
      }
    }
?>

Jetzt kommt aber folgender Fehler

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\pfad.php on line 26

Ich hab mal nen weng im Archiv geschaut und habe auch was gefunden.

Irg. soll wohl ein Punktstrich oder eine Klammer fehlen.
Ich programmiere erst seit ein paar tagen (Daher der etwas verwunderliche Style) und finde diesen Fehler einfach nicht.

Wäre nett wenn ihr mir sagen könntet wo der fehler ist.

Lg cstyle

  1. Aloha 'oe,

    Wäre nett wenn ihr mir sagen könntet wo der fehler ist.

    Vergleiche mal Anzahl der öffnenden und schließenden Klammern.

    Gruß, Volker

    --
    „I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies."
    - Tony Hoare
  2. Salut!

    Parse error: syntax error, unexpected $end in C:\xampp\htdocs\pfad.php on line 26

    Da fehlt eine Klammer am Ende '}'.
    Du solltest vielleicht einen Editor benutzen, der Dir das bemängelt.

    au relire

    Sven aus M.

    1. Gibt es da eine freeware die du mir empfehlen kannst

      lg cstyle

      1. Gibt es da eine freeware die du mir empfehlen kannst

        lg cstyle

        http://notepad-plus.sourceforge.net/de/site.htm

  3. Hab mal mit folgendem Code einen Entscheidungshelfer programmiert jezt ist da aber ein Fehler drin

    <form action="pfad.php">
         <input type="submit" name="aktiviere"
              value="Los" />
    </form>
    <br />
    <?php
    if(isset($_GET["aktiviere"]))
    {
         $zufall = rand(1,3);

    if      ($zufall=="1")
         {
                 echo "Ja";
         }
         else
         {
           if    ($zufall=="2")
          {
                 echo "Nein";
          }
          else
          {
                 echo "Vielleicht, klicke nochmal";
          }
        }
    ?>

    Jetzt kommt aber folgender Fehler

    Parse error: syntax error, unexpected $end in C:\xampp\htdocs\pfad.php on line 26

    heisst etwa "eine kontrollstruktur die beginnt, endet in zeile 26, sollte sie aber nicht"

    Ich hab mal nen weng im Archiv geschaut und habe auch was gefunden.
    Irg. soll wohl ein Punktstrich oder eine Klammer fehlen.

    das ist löblich und auch schon ganz richtig

    im grunde genommen sehr einfach
    zähle die klammern, jede öffnende klammer muss auch wieder geschlossen sein - eine ungerade anzahl an gleichartigen klammern kann es nicht geben

    gleichartige klammern sind { und }, ( und ) oder [ und ]
    in sonderfällen gibts natürlich ausnahmen, aber üblich ist es nicht

    Ich programmiere erst seit ein paar tagen (Daher der etwas verwunderliche Style) und finde diesen Fehler einfach nicht.

    ein grund gleich etwas zu lernen
    elseif ist besser geeignet als deine if -> else if verschachtelung - tut in deinem fall das selbe nur mit weniger code und ist übersichtlicher (weniger klammern) - es gibt nur wenige fälle wo eine konstruktion in wie in deinem fall sinnvoll ist
    http://at2.php.net/manual/en/control-structures.elseif.php

    dürfte für dich noch interessanter sein, funktioniert so ähnlich wie if/elseif-konstrukte nur spart bei mehrfachauswahl viel code
    http://at2.php.net/switch

    Wäre nett wenn ihr mir sagen könntet wo der fehler ist.

    den wirst du sicher jetzt selbst finden

    noch ein anreiz

    http://at.php.net/rand
    rand() liefert int als datentyp - du machst aber folgendes

    $zufall = rand(1,3);
         if      ($zufall=="1")

    == vergleicht 2 variablen typenunabhängig miteinander, "1" wird als string, nicht als zahl interpretiert

    === hingegen vergleicht datentyp und wert

    das ist besonders bei boolschen werten true/false und 0/1 bzw bei strings und zahlen in anderen zahlensystemen gefährlich

    zb ergibt (10 == "A") unter gewissen vorausetzungen true, aber (10 === "A") defintiv false, da 10 ohne nähere defintion vom datentyp int sein wird und "A" als string behandelt wird

  4. <?php
    echo "Wie lang soll das Programm warten bis es die Entscheidung bekannt gibt?";
    ?>

    <br>

    <input name="time" type="number">

    <?php
    echo "sec";
    ?>

    <form action="pfad.php">
         <input type="submit" name="aktiviere"
              value="Los" />

    </form>
    <br />
    <?php
    if(isset($_GET["aktiviere"]))
    sleep($_POST["time"])
         $zufall = rand(1,3);

    if      ($zufall=="1")
         {
                 echo "Ja";
         }
         elseif

    ($zufall=="2")
          {
                 echo "Nein";
          }
          else
          {
                 echo "Vielleicht, klicke erneut";
          }

    ?>

    Jetzt habe ich weiter programmiert und will eine Sleepfunktion einbauen.
    Das html Formular dazu ist oben und ich will dann die Variable also unten in das sleep() einfügen. Das habe ich folgendermaßen versucht.
    sleep($_POST["time"])
    das funktioniert überhaupt nicht.
    Folgender Fehler tritt auf
    Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\pfad.php on line 22

    Mein PSPad zeigt auch nichts an das ich irg. was falsch gemacht habe.

    Also muss ich euch nochmal mit der Frage nerven was ich eig. falsch gemacht habe.

    1. Hi,

      if(isset($_GET["aktiviere"]))
      sleep($_POST["time"])
           $zufall = rand(1,3);

      sleep($_POST["time"])
      das funktioniert überhaupt nicht.
      Folgender Fehler tritt auf
      Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\pfad.php on line 22

      Wann immer irgendwas "unexpected" auftaucht, also unerwartet, kannst du mit ziemlicher Sicherheit davon ausgehen, dass in der Zeile davor etwas fehlt.

      Also muss ich euch nochmal mit der Frage nerven was ich eig. falsch gemacht habe.

      Semikolon vergessen ...

      Bevor du mit noch mehr Fragen von dem Kaliber ankommst, beschaeftige dich aber bitte ein bisschen mit den Grundlagen, und damit, wie man sinnvoll Fehlersuche betreibt.

      MfG ChrisB

      --
      "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
      1. Es geht aber trotzdem nicht wenn ich den Punktstrich dazu mach.
        Es kommt zwar keine Fehlermeldung aber die Funktion sleep() funktioniert trotzdem nicht. Man kann zwar eine Zahl oben eingeben. Aber das Ergebniss kommt trotzdem nicht nach einer Verzögerung die durch sleep() hervorgerufen werden sollte.

        1. Hi,

          Es kommt zwar keine Fehlermeldung aber die Funktion sleep() funktioniert trotzdem nicht. Man kann zwar eine Zahl oben eingeben. Aber das Ergebniss kommt trotzdem nicht nach einer Verzögerung die durch sleep() hervorgerufen werden sollte.

          Ist dir denn klar, dass die PHP-Funktion sleep natuerlich nur serverseitig "wirkt"?
          Sie verzoegert also dort die weitere Script-Abarbeitung - und nicht irgendetwas auf dem Client, der das anschliessend ausgelieferte Dokument danach darstellt.

          MfG ChrisB

          --
          "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."