Sascha: IF-Abfrage erhöht alle Werte

Hallo,

habe ein Problem mit einem Voting-Script. Und zwar werden die einzelnen Klicks fehlerhaft interpretiert. Bei meinem Script wird die Anzahl aller 3 Antwortmöglichkeiten um eins erhöht, jedoch soll ja nur die Stimme für die eine abgebene Antwort gezählt werden. Habe die IF-Abfragen schon verschieden verschachtelt, komme zu aber zu keiner Lösung :-( Es wird stets $anzahl_a, $anzahl_b und $anzahl_c erhöht.

--- schnipp ---
if ($ip_vorhanden==0 and $ende>$jahrtag)
 {
  if  ($wahl == 'a')
   {
    $anzahl_a++;
   }
  if ($wahl == 'b')
   {
    $anzahl_b++;
   }
  if ($wahl == 'c')
   {
     $anzahl_c++;
   }
 }
--- schnapp ---

  1. Hi,

    --- schnipp ---
    if ($ip_vorhanden==0 and $ende>$jahrtag)
    {
      if  ($wahl == 'a')
       {
        $anzahl_a++;
       }
      if ($wahl == 'b')
       {
        $anzahl_b++;
       }
      if ($wahl == 'c')
       {
         $anzahl_c++;
       }
    }
    --- schnapp ---

    was steht in $wahl ?
    ansonsten wäre entweder eine case-Abfrage oder ein if-elseif sinnvoller

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. was steht in $wahl ?
      ansonsten wäre entweder eine case-Abfrage oder ein if-elseif sinnvoller

      In $wahl steht die Antwort, welche angeklickt wurde. Entweder a,b oder c... Diese lese ich aus den Formulardaten aus.

      1. Hi,

        In $wahl steht die Antwort, welche angeklickt wurde. Entweder a,b oder c... Diese lese ich aus den Formulardaten aus.

        siehe Siechfried,

        kenne mich nicht wirklich mit Perl aus, aber mir schien dies nützlich um den Fehler zu finden.
        1.Varaiblen ausgeben und sehen ob das drinsteht, was soll
        2.Ausdrücke ausgeben und sehen ob sie true oder false ergeben
        3.4.5. ausgeben anderer relevanter Dinge, die generiert werden, bzw. übergeben werden

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. Hi,

          In $wahl steht die Antwort, welche angeklickt wurde. Entweder a,b oder c... Diese lese ich aus den Formulardaten aus.
          siehe Siechfried,

          exakt, alles weitere kann sich an dieser Stelle gespart werden.

          kenne mich nicht wirklich mit Perl aus, aber mir schien dies nützlich um den Fehler zu finden.
          1.Varaiblen ausgeben und sehen ob das drinsteht, was soll
          2.Ausdrücke ausgeben und sehen ob sie true oder false ergeben
          3.4.5. ausgeben anderer relevanter Dinge, die generiert werden, bzw. übergeben werden

          gute Schritte, ich empfehle folgende:

          1. strict und warnings einschalten (diese konkrete Problem wäre jetzt schon gelöst)
          2. diagnostics hinzunehmen
          3. debugger verwenden (perl -d) (macht deine Schritte überflüssig)

          Am allerwichtigsten ist aber Regel 0: RTFM ;)

  2. Hallöle,

    habe ein Problem mit einem Voting-Script. [...]
      if  ($wahl == 'a')

    Du benutzt einen Vergleichsoperator für Zahlen, willst aber zwei Zeichenketten miteinander vergleichen. Hier solltest du "eq" statt "==" verwenden.

    Viele Grüße
    Torsten

    --
    Dieses Posting kommt ohne Garantie auf Vollständigkeit, Richtigkeit und Funktionalität. Geposteter Quelltext ist, soweit nicht anders angegeben, ungetestet.