Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Wpisywanie tych samych danych
Forum PHP.pl > Forum > Przedszkole
RSVx
  1. <?php
  2. if(isset($_POST['wyslji'])){
  3.    
  4.        $sql = "INSERT INTO wiad(temat, wiadomosc, data_utworzenia)" .
  5.    "VALUES ('".trim( $_POST['temat'])."', '" .trim($_POST['wiadomosc']). "' ,'$data')";
  6.    
  7. ?>


Ten skrypt zapisuje mi dane do bazy jeśli ktoś kliknie na przycisk Wyslji. Jeżeli otworzę moją stronę i kliknę na przycisk wyślji, a później będę odświeżał tą stronę to za każdym razem te same dane zostaną wpisane do bazy, chociaż tylko odświerzam stronkę a nie klikam na przycisk wyślji. Jak temu zapobiedz??

TXH
ferrero2
ALbo javą ograniczyć możliwość odświerzania albo zastosowac skrypt którego używa się do licznika odwiedzin, czyli czasowe ograniczenie. Wkleje CI tu skrypt odpowiedzialny u mnie za niemożliwość dodania wpisu dopóki nie minie 5 minut:

Kod
                $db = mysql_connect($dbhost, $dbuser, $dbpassword);
                mysql_select_db($dbdatabase, $db);
                mysql_query("SET NAMES 'utf8'");
                $ip=$_SERVER['REMOTE_ADDR'];
                $_SESSION['strona'] = $_SERVER['REQUEST_URI'];
                $tajm = date("Y-m-d H:i:s");
                
                $sql_sprawdz = "SELECT * FROM goscie Where ip = '". $ip ."'";
                $result_sprawdz = mysql_query($sql_sprawdz);
                $numrows_sprawdz = mysql_num_rows($result_sprawdz);
                
                if ($numrows_sprawdz == 0)
                {
                $sql2 = "INSERT INTO goscie (ip, Kiedy, ile) VALUES('" .$ip . "','". $tajm . "', '1')";
                mysql_query($sql2);
                }
                else
                {
                    # CIEBIE POWINNA INTERESOWAĆ TA CZĘŚĆ !
                $sql_sprawdz2 = "SELECT kiedy FROM goscie Where ip = '". $ip ."'";
                $result_sprawdz2 = mysql_query($sql_sprawdz2);
                $row = mysql_fetch_array($result_sprawdz2);
                $tajm_czas = date("Y-m-d H:i:s", mktime (date("H"),date("i")-5,date("s"),date("m"),date("d"),2008));
                        if ($row['kiedy'] < $tajm_czas)
                        {
                        $licznik = "UPDATE goscie SET ile = ile + 1 WHERE ip = '" . $ip . "'";
                        mysql_query($licznik);
                        
                        $licznik = "UPDATE goscie SET kiedy = '" . $tajm ."' WHERE ip = '" . $ip . "'";
                        mysql_query($licznik);
                        }
                        else
                        {
                        }
                }
RSVx
OK. Ale ja nie chcę tak ograniczać. Chodzi mi po prostu o zrobienie stronki z opcją komentarz np. http://linuxide.pdg.pl/2008/08/21/gmail-ni...ony/#comment-38

Tam jak się raz kliknie na wyślij można odświeżać ile się chce i komentarze się nie powtórzą.
Lion_87
No dobra a jak bys sprawdzal przy okazji czy dany komentarz juz istnieje to sie nie doda ten sam
RSVx
Wiem. Jeśli ktoś kliknie na przycisk to sprawdzić czy Textarea zawiera jakiś tekst jeśli tak to wpisać dane do bazy, a później wyczyścić cały tekst z kontrolki Textarea. Tylko jak wyczyścić tekst z kontrolki TEXTAREA questionmark.gif
ferrero2
ustaw value w text area na jakąś zmienną np $teskt_area
I sprawdzaj jeśli jest to ją zeruj smile.gif
Cysiaczek
Może tak po prostu użyć przekierowania? header() ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.