Pagina 1 din 1

o intrebare pentru shoutbox

Scris: Dum Iun 27, 2010
de trif
am acest shoutbox si merge ok dar problema este ca atunci cand scriu un msg il pune dar daca dau f5 sau reload pe pagina imi tine minte ceea ce am scris si imi scrie iara aceelasi msg adica se repeta si de fiecare data este asa.

Cod: SelectaĊ£i tot

<?php
  include("config_shoutbox.php");
    if ($_POST['shoutbox_submit'])  {
      $name = $_POST['shoutbox_name'];
      $ip = $_POST['shoutbox_ip'];
      $message = $_POST['shoutbox_message'];
      $mlen = strlen($message);
      $date = date("F jS Y");
      if ($name == "") { 
        echo "<strong>Atentie: Trebuie sa te autentifici.</strong>"; 
      }
      else if ($message == "") { 
        echo "<strong>Atentie: scrie un mesaj.</strong>"; 
      }
      else if ($mlen > $max_length) { 
        echo "<strong>Atentie!: mesajul este prea lung.</strong>"; 
      }
     else {
      $db = mysql_connect($db_host,$db_user,$db_pass); 
      mysql_select_db($db_name) or die("Cannot connect to database");
      mysql_query("INSERT INTO shoutbox(name,ip,message,date) VALUES('$name','$ip','$message','$date')"); 
      mysql_close($db);
      }
    }
  $db = mysql_connect($db_host,$db_user,$db_pass); 
  mysql_select_db($db_name) or die("Cannot connect to database");
  $query = "SELECT * FROM shoutbox ORDER BY id DESC LIMIT $dmessage"; 
  $result = mysql_query($query);
    echo "<div class=\"shoutbox\">\n";
    echo "<ul>\n";
    while($r=mysql_fetch_array($result)) {
      //Strips unwanted HTML from nickname
      $name = $r['name'];
      $name = strip_tags($name);
      //Strips unwanted HTML from message
      $message = $r['message'];
      $message = strip_tags($message);
	  $date = $r['date'];
      $date = ($date);
      // Transform text to smileys =) 
      $message = str_replace("=(","<img src=\"zambete/sad.gif\" alt=\"=(\"/>", $message);
   ...
      $message = ereg_replace(":roll:","<img src=\" zambete/roll.gif\" alt=\":roll:\"/>", $message);
      echo "<li title=\"Shouted on $r[date]\" style=\"cursor: pointer\"><strong>$name</strong>: $message</li>\n";
    }
      echo "</ul>\n";
      echo "</div>\n";
      mysql_close($db);
?>
cum fac ca dupa fiecare fiecare mesaj scris sa trebuiasa ca sa se scrie iara nu sa imi puna acelasi msg anterior. faza este ca are un if

Cod: SelectaĊ£i tot

if ($name == "") { 
        echo "<strong>Atentie: Trebuie sa te autentifici.</strong>"; 
      }
      else if ($message == "") { 
        echo "<strong>Atentie: scrie un mesaj.</strong>"; 
      }
in care zice aceste lucruri si teoretic tine minte cred nu stiu. va uitati si puteti sa imi ziceti. ms mult, cu stima trif

o intrebare pentru shoutbox

Scris: Dum Iun 27, 2010
de MarPlo
Nu tine minte mesajul, ci cand se da F5 sau Refresh, se retrimit datele din browser la server.
In acest caz solutia este un cod CAPCHA sau setarea unei sesiuni dupa ce a fost trimis mesajul. In acea sesiune poti inregistra mesajul, daca nu e prea mare, iar la acel if adaugi sa verifice si daca exista sesiunea respectiva si valoarea ei este aceeasi cu mesajul primit, si daca este sa nu mai inregistreze.
Cam asta e teoretic. Daca nu stii cum se fac sesiunile in php, vezi lectia Utilizare sesiuni
In lucru cu sesiuni trebuie sa ai session_start() la inceputul fisierului php.