php/mysql refresh-problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php/mysql refresh-problem

    hallo,
    ich habe ein kleines umfragescript geschrieben (lieblingsfarbe).
    man wählt seine farbe und dann wird in einer grafik die meist gewählte farbe dargestellt. soweit funzt es auch. allerdings hab ich noch das problem, wenn man refresh im browser wählt, wird natürlich der vorher gewählt wert nochmal eingetrgen. wie kann ich das verhindern.


    hier mein script:

    PHP-Code:
    <?php
    $connect 
    mysql_connect("localhost");
    $db mysql_select_db("umfrage");

        if(
    array_key_exists("senden",$_POST)){
           
    $auswahl join($_POST['farben']);
           
    #print $auswahl;
           
    $update = ("UPDATE farben_2 SET $auswahl = $auswahl+10");
           
    mysql_query($update);
                       
    #geändert
                       
    header("Location: [url]http://www.inter.net/umfrage_2.php[/url]");
    }
    <
    form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
      <
    select name="farben[]">
        <
    option> --> </option>
        <
    option value="grün">grün</option>
        <
    option value="rot">rot</option>
        <
    option value="blau">blau</option>
      </
    select>
        <
    input type="submit" name="senden" value="senden" />
    </
    form>


    ?>
    <hr size="1">
    <h4>Auswertung</h4>
    <hr size="1">
    GRÜN: <table>
      <tr>
          <td bgcolor="#66CC66" height="7" width="
          <?php $inhalt mysql_query("SELECT grün FROM farben_2"); while($breite mysql_fetch_array($inhalt)){echo $breite['grün'];} ?>"></td>
        </tr>
    </table>

    ROT: <table>
      <tr>
          <td bgcolor="#CC0033" height="7" width="
          <?php $inhalt mysql_query("SELECT rot FROM farben_2"); while($breite mysql_fetch_array($inhalt)){echo $breite['rot'];} ?>"></td>
        </tr>
    </table>
    BLAU: <table>
      <tr>
          <td bgcolor="#006699" height="7" width="
          <?php $inhalt mysql_query("SELECT blau FROM farben_2"); while($breite mysql_fetch_array($inhalt)){echo $breite['blau'];} ?>"></td>
        </tr>
    </table>
    Zuletzt geändert von hydrococcus; 26.01.2004, 23:45.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

  • #2
    wie kann ich das verhindern.
    nach dem speichern einen header() auf die datei wieder sendne.

    achtung: dein update muss dann zu anfang in deinem script rein.

    oder eben mit cookie's eine wiederwahl verhindern.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ich hab das script oben geändert, jetzt gehts...danke


      Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

      Kommentar


      • #4
        Original geschrieben von hydrococcus
        ich hab das script oben geändert, jetzt gehts...danke
        jetzt änder noch schnell die relative angabe durch einen festen url ....
        PHP-Code:
        header("Location: umfrage_2.php");

        // ->
        header("Location: http://www.inter.net/umfrage_2.php"); 
        .... sonst meckert der wahsaga wieder...


        übrigens hast du so immer noch nicht ausgeschlossen, dass sich ein user noch einmal für eine farbe entscheiden kann..
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Soweit bin ich leider noch nicht mit meinem Latein...äh PHP.
          aber ich denke cookies wären vielleicht eine lösung, oder...?


          Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

          Kommentar


          • #6
            jetzt hast du mich vor ein problem gestellt, was ich ohne denkanstoß nicht lösen kann, bitte...einen kleine wink (am besten mit dem zaunspfahl)

            ...danke im voraus

            Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

            Kommentar


            • #7
              www.php.net

              setcookie()
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Das mit den cookies hat aber einen entscheidenden nachteil. wenn der
                user keine cookies akzeptiert, kann er trotzdem mehrmals seine farbe
                wählen. also muß eine andere lösung her?!


                Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

                Kommentar


                • #9
                  also muß eine andere lösung her?!
                  dann viel spass..


                  aber mal im erst. sooooviele user lehnen ihr cookie nicht ab. diesen fall kannst du vernachlässigen.

                  eine andere möglichkeit geht nicht, ausser .... du machst ein usermangement mit rein, und nur eingeloggte user können voten. und dann auch nur einmal. und das auch ohne cookie. denn der user muss ja eingeloggt sein.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    danke erts mal für den Tipp. hab mich heute hingesetzt und was über cookies gelernt. hier erst mal mein aktualisiertes script.

                    PHP-Code:
                    <?php
                    $connect 
                    mysql_connect("localhost");
                    $db mysql_select_db("umfrage");

                    $gesetzt $_COOKIE['mein_cookie'];

                        if(!
                    $gesetzt && array_key_exists("senden",$_POST)){
                           
                    $auswahl join($_POST['farben']);
                           
                    #print $auswahl;
                           
                    $update mysql_query("UPDATE farben_2 SET $auswahl = $auswahl+10");
                           
                    $value "bla bla bla";
                           
                    $setcookie setcookie("mein_cookie"$valuetime()+3600);
                           
                    header("Location: <a href="http://www.inter.net/umfrage_2.php" target="_blank">[url]http://www.inter.net/umfrage_2.php[/url]</a>");
                    }


                    <
                    form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
                      <
                    select name="farben[]">
                        <
                    option> --> </option>
                        <
                    option value="grün">grün</option>
                        <
                    option value="rot">rot</option>
                        <
                    option value="blau">blau</option>
                      </
                    select>
                        <
                    input type="submit" name="senden" value="senden" />
                    </
                    form>
                    ..ist das korrekt, wenn ich mein cookie so abfrage und setzte oder gibt es bessere wege?

                    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

                    Kommentar

                    Lädt...
                    X