Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Isset nie reaguje tak jakby, shoutbox
Glukozamina
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 27.04.2008

Ostrzeżenie: (0%)
-----


Witam. Stworzyłem sobie takiego małego mojego shoutboxa i się zastanawiam dlaczego po kliknieciu dodaj nadal sie wykonuje... tzn. dodaje nowe wpisy mimo iż ma polecenie aby tego nie robił gdy pole tresc jest puste. 2. Jak zrobić, żeby podczas odswieżania nie dodawał sie za każdym razem ten wpis ? 3. Jak zrobić ,że gdy klikne na np. pole nick to nazwa tego pola(napis nick) mi zniknie automatycznie z formularza ?

  1. <form method="GET" action="index.php">
  2. <input type="text" name="nick" value="nick" size="20">
  3. <input type="text" name="tresc" size="40">
  4. <input type="submit" value="Dodaj">
  5. </form>
  6.  
  7.  
  8. <?php
  9.  
  10. function dodawanie($id, $nick, $tresc, $time, $ip){
  11.  
  12. /*sprawdzenie poprawości przekazanych danych*/
  13.  
  14.  
  15. if($tresc == ''){
  16. echo("Brak danych. Proszę wypełnić pole: Treść.");
  17. return;
  18. }
  19.  
  20. }
  21. if($id == '') $id = 'NULL';
  22.  
  23. $time=(date("H:i:s"));
  24. $ip=($_SERVER['REMOTE_ADDR']);
  25. $nick=($_GET['nick']);
  26. $tresc=($_GET['tresc']);
  27.  
  28.  
  29.  
  30. /*Nawiązanie połączenia z bazą*/
  31.  
  32. if (!$db_lnk = @mysql_connect("x", "x", ":)")){
  33. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  34. return;
  35. }
  36.  
  37. if(!@mysql_select_db('x')){
  38. echo('Wystąpił błąd podczas wyboru bazy danych: biblioteka<BR>');
  39. return;
  40. }
  41.  
  42. /*Utworzenie i wykonanie zapytania*/
  43.  
  44. $query = "INSERT INTO shoutbox VALUES(";
  45. $query .= "'$id', '$nick', '$tresc', '$time', '$ip'";
  46. $query .= ")";
  47.  
  48.  
  49.  
  50. if(!mysql_query($query, $db_lnk)){
  51. echo 'Wystąpił błąd: zapytanie zostało odrzucone...<br />Zapytanie: <pre>' . $query . '</pre>Odpowiedź MySQL: <pre>' . mysql_error( $db_lnk ) . '</pre>';
  52. return;
  53. }
  54.  
  55.  
  56.  
  57. /*Pobranie informacji o liczbie wstawionych wierszy*/
  58.  
  59. $rowsNo = mysql_affected_rows($db_lnk);
  60.  
  61. echo("Dziękuje za pozostawioną wiadomość . <br>");
  62. echo("Liczba dodanych rekordów: $rowsNo<br>");
  63.  
  64.  
  65. /*Zamknięcie połączenia z bazą*/
  66.  
  67. if(!@mysql_close()){
  68. echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<br>');
  69. }
  70.  
  71. if(isSet($_GET['tresc'])){ /*<--------------------------- tutaj. to jest dorbze ?*/
  72. dodawanie($_GET['$id'], $_GET['$nick'], $_GET['tresc'], $_GET['$time'], $_GET['$ip']);
  73. }
  74. else{
  75. echo("Niepoprawne dane! Wypełnij wszystkie pola.");
  76. }
  77.  
  78.  
  79. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




ad1) isset sprawdza istnienie zmiennej, nawet pustej! Tak więc w linii 73 nie isset($_GET['tresc']), ale !empty($_GET['tresc']) lub $_GET['tresc'] != ''
ad2) sprawdź, czy kilka ostatnich wpisów usera nie zawiera już tego zwrotu.
ad3) zdarzenie ustawienia aktywności dla określonego pola to focus, utrata aktywności to blur. Połącz te informacje, użyj JS i ciesz się.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 15:22