kostenloser Webspace werbefrei: lima-city


if else geht nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    HI,

    bin PHP Anfänger und bekomme immer einen Fehler, seitdem ich diese If else Befehle eingebaut habe, kann mir einer sagen warum?

    Du bist Besucher Nummer <?php echo \"$visits\" ?>

    <?php if($visits == \"1\") { echo \"Yeah, Du hast gewonnen\"} else { echo \"Leider nicht gewonnen, versuchs doch einfach später nochmal!\" } ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. x*****k

    So muss das lauten:

    <?php
    
    if ($visits == \"1\") {
    echo \"Yeah, du hast gewonnen!\";
    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    
    ?>

    Du hast die Semikolon vergessen!

    Edit: Ach ja, noch was! Nur die Anweisungen in einem Anweisungsblock werden mit Semikolon abgeschlossen! Nach der Anweisung \'echo\' kommt ein \';\', hingegen nach
    if (Bedingung) \'kein semikolon\' !



    Beitrag geändert: 25.3.2008 18:32:01 von x-black
  4. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    Ah super, daran hab ich nicht gedacht :-)

    Danke!
  5. Für sowas gibt es dann auch noch den sog. Trinitätsoperator...

    <?php
      echo ($visits == 1)?\'Yeah, du hast gewonnen!\':\'Leider nicht gewonnen!\';
    ?>
  6. x*****k


    Für sowas gibt es dann auch noch den sog. Trinitätsoperator...


    <?php
    echo ($visits == 1)?\'Yeah, du hast gewonnen!\':\'Leider nicht gewonnen!\';
    ?>



    Ja, den kann man auch benutzen!
    Aber ich gehe jetzt mal davon aus, dass stunts recht neu in diesem Gebiet ist...
    Deshalb denke ich, es ist besser, wenn er erstmal IF-ELSE beherrscht, anstatt gleich den Trinitätsoperator ^^


    Beitrag geändert: 25.3.2008 18:55:57 von x-black
  7. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    guck dir auch direkt mal elseif an:biggrin:

    guck mal in dem Buch \"PHP und MySQL für Kids\"

    nicht nur für kinder!

    mfg
  8. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    So, das haut ja alles soweit gut hin, aber wie mache ich das, wenn ich nicht nur ein echo ausgeben will sondern noch php code da drin haben will?

    Jetzt siehts so aus, und es kommt wieder ein Fehler, suche schon den ganzen Nachmittag den Fehler....

    if ($visits == \"1\") {
    echo \"Yeah, du hast gewonnen!\";
    <?php include(\"connect.inc.php\");?>
    <? if ($submit == \"Speichern\") {
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);}?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">

    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">

    <TR>

    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:

    </TD>

    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">

    </TD>

    </TR>

    <TR>

    <TD>

    &nbsp;

    </TD>

    <TD>

    <input type=\"submit\" name=\"submit\" value=\"Speichern\">

    </TD>

    </TR>

    </TABLE>

    </form>



    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    }
    ?>
  9. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    bitte in code/php tags fassen.
    <?php
     if ($visits == \"1\") {
    echo \"Yeah, du hast gewonnen!\";
    include(\"connect.inc.php\");
    if ($_REQUEST[\'SpeichernK\'] == 1) {
    mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\");
    mysql_slect_db(\"DBNAME\");
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);}?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
    
    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
    
    <TR>
    
    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:
    
    </TD>
    
    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
    
    </TD>
    
    </TR>
    
    <TR>
    
    <TD>
    
     
    
    </TD>
    
    <TD>
    
    <input type=\"submit\" name=\"submit\" value=\"Speichern\">
    
    </TD>
    
    </TR>
    
    </TABLE>
    
    </form>
    
    
    
    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    }
    ?>
    Spam melden


    So müsste es eigentlich gehen.
    man kann keine submit buttons abfragen, schalte dein Register globals off
    submit buttons sind nur für den browser gedacht damit er das formular abschickt.

    mfg

    (hoffe, der beitrag war hilfreich)
  10. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    HI,

    es geht leider immernoch nicht:

    so sieht jetzt der Code aus:

    <code>

    Du bist der <?php echo \"$visits\" ?>. Besucher
    <br><br>
    <?php
    if ($visits > \"5\") {
    echo \"Leider geht das Gewinnspiel nur bis zum 5. Besucher, <br>aber schau doch bald wieder vorbei, das nächste Gewinnspiel startet bald!\";

    }
    else {






    if ($visits == \"1\") {
    echo \"Yeah, du hast gewonnen!\";
    include(\"connect.inc.php\");
    if ($_REQUEST[\'SpeichernK\'] == 1) {
    mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\");
    mysql_slect_db(\"DBNAME\");
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);}?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">

    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">

    <TR>

    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:

    </TD>

    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">

    </TD>

    </TR>

    <TR>

    <TD>



    </TD>

    <TD>

    <input type=\"submit\" name=\"submit\" value=\"Speichern\">

    </TD>

    </TR>

    </TABLE>

    </form>



    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    }
    ?>

    <code>

    es kommt folgender fehler:


    Parse error: syntax error, unexpected $end in /var/www/web420/html/win-o-mania/index.php on line 120


    wie mache ich die Code Tags?


    Beitrag geändert: 25.3.2008 20:46:02 von stunts
  11. Die Code Tags setzt man mit [ code] Hier ist das Script. [ /code] jeweils ohne das Freizeichen.

    Gruß
    m062
  12. Du bist der <?php echo \"$visits\" ?>. Besucher
    <br><br>
    <?php
    if ($visits > \"5\" ;) {
    echo \"Leider geht das Gewinnspiel nur bis zum 5. Besucher, <br>aber schau doch bald wieder vorbei, das nächste Gewinnspiel startet bald!\";
    
    }
    else {
    
    
    
    
    
    
    if ($visits == \"1\" ;) {
    echo \"Yeah, du hast gewonnen!\";
    include(\"connect.inc.php\" ;);
    if ($_REQUEST[\'SpeichernK\'] == 1) {
    mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\" ;);
    mysql_slect_db(\"DBNAME\" ;);
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);}?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
    
    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
    
    <TR>
    
    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:
    
    </TD>
    
    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
    
    </TD>
    
    </TR>
    
    <TR>
    
    <TD>
    
    
    
    </TD>
    
    <TD>
    
    <input type=\"submit\" name=\"submit\" value=\"Speichern\">
    
    </TD>
    
    </TR>
    
    </TABLE>
    
    </form>
    
    
    
    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    }
    ?>


    Hab mal reingemacht damit man überhaupt was versteht...


    *räusper* bei mir geht der Code nur bis 70...
    Parse error: syntax error, unexpected $end in /var/www/web420/html/win-o-mania/index.php on line 120



    Beitrag geändert: 25.3.2008 22:07:13 von nikic
  13. bah pfui !


    <?php
    (...) echo \"$visits\" ; ?>. Besucher /* hier fehlts */

    if ($visits > \"5\" ;) { /* hier isset zu viel*/
    echo \"Leider geht das Gewinnspiel nur bis zum 5. Besucher, <br>aber schau doch bald wieder vorbei, das nächste Gewinnspiel startet bald!\";

    }
    else {

    if ($visits == \"1\" ;) { /* hier isset zu viel*/
    echo \"Yeah, du hast gewonnen!\";
    include(\"connect.inc.php\" ;); /* hier isset zu viel*/
    if ($_REQUEST[\'SpeichernK\'] == 1) {
    mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\" ;); /* hier isset zu viel*/
    mysql_slect_db(\"DBNAME\" ;); /* hier isset zu viel*/
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);}?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">

    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">

    <TR>

    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:

    </TD>

    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">

    (...)
    </form>

    }
    else {
    echo \"Leider nicht gewonnen!\";
    }
    }
    ?>



    fürs erste. werd dir den quelltext mal überarbeiten

    mh mist eigentlich sollten die ; jeweils vor der klammer markiert sein, die sind nämlich zu viel

    Du bist der <?php echo \"$visits\"; ?>. Besucher
    <br><br>
    <?php
      if ($visits > \"5\" )
         {
           echo \"Leider geht (...)!\";
         }
      else
         {
           if ($visits == \"1\" ;)
              {
                echo \"Yeah, du hast gewonnen!\";
                include(\"connect.inc.php\" );
                if ($_REQUEST[\'SpeichernK\'] == 1)
                   {
                     mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\");
                     mysql_slect_db(\"DBNAME\");
                     $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
                     mysql_query($sql,$db);
                   }
    ?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
       <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
    	<TR>
    	    <TD>
    		<font size=\"1\" face=\"Verdana\"><b>
    		Mail:
    		</b></font>
    	    </TD>
    	    <TD>
    		<input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    		<input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
    	    </TD>
    	</TR>
    	<TR>
    	    <TD>
    	    </TD>
    	    <TD>
    		<input type=\"submit\" name=\"submit\" value=\"Speichern\">
    	    </TD>
    	</TR>
       </TABLE>
    </form>
    <?php
    	 }
    	else
    	 {
    	    echo \"Leider nicht gewonnen!\";
    	 }
        }
    ?>



    Beitrag geändert: 26.3.2008 0:56:26 von h-brand
  14. familie-schiffer

    Kostenloser Webspace von familie-schiffer, auf Homepage erstellen warten

    familie-schiffer hat kostenlosen Webspace.

    du musst auch noch die definition für $visits hinschreiben

    <?php setcookie(\"visit\", \"yes\", time() + 86400); ?>
    Du bist der <?php echo \"$visits\"; ?>. Besucher
    <br><br>
    <?php
    
    
    $visits = file_get_contents(\"visits.txt\");
    
    if (isset($_COOKIE[\'visit\']) 
    {
    Du hast schon am Gewinnspiel teilgenommen!
    }
    
    else
    {
    $visits++;
    file_put_contents(\"visits.txt\", $visits);
    
    
      if ($visits > \"5\" )
         {
           echo \"Leider geht (...)!\";
         }
      else
         {
           if ($visits == \"1\" ;)
              {
                echo \"Yeah, du hast gewonnen!\";
                include(\"connect.inc.php\" );
                if ($_REQUEST[\'SpeichernK\'] == 1)
                   {
                     mysql_connect(\"mysql.lima-city.de\", \"Benutzername\", \"Passwort\");
                     mysql_select_db(\"DBNAME\");
                     $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
                     mysql_query($sql,$db);
                   }
    ?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
       <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
        <TR>
            <TD>
            <font size=\"1\" face=\"Verdana\"><b>
            Mail:
            </b></font>
            </TD>
            <TD>
            <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
            <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
            </TD>
        </TR>
        <TR>
            <TD>
            </TD>
            <TD>
            <input type=\"submit\" name=\"submit\" value=\"Speichern\">
            </TD>
        </TR>
       </TABLE>
    </form>
    <?php
         }
        else
         {
            echo \"Leider nicht gewonnen!\";
         }
        }
    }
    ?>



    niemand kann an einem tag mehrmals teilnehmen(außer cookies deaktiviert) und der aktuelle visit stand wird in einer datei notiert.

    mfg
  15. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    HI,

    erstmal vielen Dank für die ganzen Antworten, aber es will immernoch nicht :-(

    so sieht jetzt meine Seite aus:

    <?php setcookie(\"visit\", \"yes\", time() + 86400); ?>
    Du bist der <?php echo \"$visits\"; ?>. Besucher
    <br><br>
    <?php
    
    
    $visits = file_get_contents(\"visits.txt\");
    
    if (isset($_COOKIE[\'visit\']) 
    {
    Du hast schon am Gewinnspiel teilgenommen!
    }
    
    else
    {
    $visits++;
    file_put_contents(\"visits.txt\", $visits);
    
    
    if ($visits > \"5\" )
    {
    echo \"Leider geht!\";
    }
    else
    {
    if ($visits == \"1\" ;)
    {
    echo \"Yeah, du hast gewonnen!\";
    if ($_REQUEST[\'SpeichernK\'] == 1)
    {
    mysql_connect(\"localhost\", \"User\", \"Passwort\");
    mysql_select_db(\"DB-Name\");
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);
    }
    ?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
    <TR>
    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:
    </b></font>
    </TD>
    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
    </TD>
    </TR>
    <TR>
    <TD>
    </TD>
    <TD>
    <input type=\"submit\" name=\"submit\" value=\"Speichern\">
    </TD>
    </TR>
    </TABLE>
    </form>
    <?php
    }
    else
    {
    echo \"Leider nicht gewonnen!\";
    }
    }
    }
    ?>


    die MYSql Zugangsdaten habe ich jetzt rausgenommen. Das hier oben ist jetzt meine komplette Seite und es kommt folgender Fehler:

    Parse error: syntax error, unexpected \'{\' in /var/www/web420/html/win-o-mania/index2.php on line 10

    Inzwischen verstehe ich garnicht mehr :-(
  16. oh, noch garnicht beantwortet... also:

    es fehlt ein echo ganz oben in der Zeile..

    2 ich geb dir den Tipp alles nach einem { mit Tabs einzurücken. Ich hab leider keine Zeit zu schauen aber es könnte sein, dass eine } fehlt nach dem else..
  17. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    HI,

    also das echo habe ich schon eingefügt...

    Aber es kommt trotzdem noch der gleiche Fehler....
  18. fick-dich-froehlich-gymnasium

    fick-dich-froehlich-gymnasium hat kostenlosen Webspace.

    ja wuerd dir auch empfehlen erst mal deinen quelltext zu formatieren ist echt hilfreich, vorallem bei der fehler suche. da gibt es so nen PEAR standard... musst einfach mal im web suchen.

    auf jeden fall kann ich dir einruecken empfehlen und lieber mal ne neue zeile anfangen und nicht so viel in eine quetschen.
  19. Aus Orginal aus zeile neun
    if (isset($_COOKIE[\'visit\'])


    richtig:
    if (isset($_COOKIE[\'visit\']))


    Achte mal bitte wie du Klammern schliesst und die Semikolonsetztung, am besten nimmst du dir irgend ein Programm mit Syntaxhighliting und Klammerhilfe
  20. Autor dieses Themas

    stunts

    stunts hat kostenlosen Webspace.

    So, jetzt hab ich die größten Fehler glaubich raus. Es kommt nur wenn jemand die seite auf ruft folgender Text:

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web420/html/win-o-mania/index2.php:14) in /var/www/web420/html/win-o-mania/index2.php on line 25
    Du bist der 2. Besucher

    Du hast schon am Gewinnspiel teilgenommen!

    Zudem Zählt er auch die Besucher nicht weiter....

    Der Quelltext sieht jetzt so aus:

    <head>
    <title>Win-o-Mania -> Kostenlos und Blitzschnell die tollsten Gewinne abstauben <-</title>
    </head>
    
    <body bgcolor=\"#ffd553\">
    <div align=\"center\">
    
    <table width = 800 border=\"10\" bordercolor=\"#8a0e1f\" cellspacing=\"0\" cellpadding=\"0\">
    <tr border=\"0\">
    <td height=\"100\" bgcolor= \"#8a0e1f\" border=\"0\" align=center>
    <b><font color=\"white\" size=\"7\" face=arial>WIN-O-MANIA</font></b>
    </td>
    </tr>
    <tr border=\"0\">
    <td height=\"20\" bgcolor=\"#8a0e1f\" border=\"10\" bordercolor=\"ffe36f\" >
    <b><font color=\"white\" size=\"3 face=Arial\">Kostenlos und Blitzschnell die tollsten Gewinne abstauben</font></b>
    </td>
    </tr>
    <tr>
    <td height=\"500\" bgcolor= \"ffe36f\" border=\"0\" align=center>
    <b><font color=\"black\" size=\"3\" face=arial>
    
    
    
    <?php setcookie(\"visit\", \"yes\", time() + 86400); ?>
    Du bist der <?php 
    $visits = file_get_contents(\"visits.txt\");
    echo \"$visits\"; ?>. Besucher
    <br><br>
    <?php
    
    
    
    
    if (isset($_COOKIE[\'visit\']) )
    {
    echo \"Du hast schon am Gewinnspiel teilgenommen!\";
    }
    
    else
    {
    $visits++;
    file_put_contents(\"visits.txt\", $visits);
    
    
    if ($visits > \"5\" )
    {
    echo \"Leider geht!\";
    }
    else
    {
    if ($visits == \"1\" )
    {
    echo \"Yeah, du hast gewonnen!\";
    if ($_REQUEST[\'SpeichernK\'] == 1)
    {
    mysql_connect(\"localhost\", \"xxxxxxx\", \"xxxxxx\");
    mysql_select_db(\"xxxxxxx\");
    $sql = \"INSERT INTO gewinner (mail) VALUES(\'$mail\')\";
    mysql_query($sql,$db);
    }
    ?>
    <form method=\"post\" action=\"<?echo $PHP_SELF;?>\">
    <TABLE width=\"100%\" height=\"0%\" bgcolor=\"white\" align=\"center\">
    <TR>
    <TD>
    <font size=\"1\" face=\"Verdana\"><b>
    Mail:
    </b></font>
    </TD>
    <TD>
    <input type=\"text\" name=\"mail\" value=\"\" size=\"30\">
    <input type=\"checkbox\" name=\"SpeichernK\" value=\"Speichern?\">
    </TD>
    </TR>
    <TR>
    <TD>
    </TD>
    <TD>
    <input type=\"submit\" name=\"submit\" value=\"Speichern\">
    </TD>
    </TR>
    </TABLE>
    </form>
    <?php
    }
    else
    {
    echo \"Leider nicht gewonnen!\";
    }
    }
    }
    ?> 
    
    
    </font></b>
    </td>
    </tr>
    <tr>
    <td height=\"20\" border=\"0\">
    Powered by www.wow-glider.de
    </td>
    </tr>
    </table>
    </body>
    
    </html>


    Vielleicht sollte ich noch erwähnen, das ich die \"2\" die angezeigt wird selbst in die visits.txt geschrieben hab. Die visits.txt hat den CHMOD 777 und liegt im gleichen Ordner


    Beitrag geändert: 26.3.2008 20:05:25 von stunts


    Beitrag geändert: 26.3.2008 20:08:54 von stunts
  21. set cookie genauso wie später SESSION START ganz an den anfang machen.
    Dann ist denke ich auch der Fehler weg.
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!