Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Blokowanie pustych pól i ustawienie domyślnej treści
Mlody993
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

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


Witam,
mam taki kod do dodawania komentarzy:

  1. <?php
  2.  
  3. $submit = $_POST['submit'];
  4. $id = $_GET['id'];
  5.  
  6. if (isset($submit))
  7. {
  8. $tytul = $_POST['tytul'];
  9. $autor = $_POST['autor'];
  10. $tresc = $_POST['tresc'];
  11. $ip = $_POST['ip'];
  12.  
  13.  
  14. $polaczenie = @mysql_connect('localhost', 'uzytkownik', 'haslo') or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  15. $db = @mysql_select_db('baza', $polaczenie) or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  16. $sql = "insert into komentarze (tytul, autor, tresc, artid, ip, dodany) values ('$tytul', '$autor', '$tresc', '$id', '$ip', NOW())";
  17. $wynik = mysql_query($sql, $polaczenie) or die(mysql_error());
  18. echo "<div align=\"center\" class=\"qw\"><strong><font color=green>Komentarz został dodany poprawnie.</font></strong></div>";
  19. }
  20.  
  21. else
  22. {
  23. echo '<div class=\"qw\"><form method="post" action="">
  24. <table>
  25. <tr><td><input type="hidden" name="ip" value="'.$_SERVER['REMOTE_ADDR'].'" /></td></tr>
  26. <tr><td><input type="hidden" name="tytul" value="0" /></td></tr>
  27.  
  28. <tr><td>Autor: </td></tr>
  29. <tr><td><input type="text" name="autor" value="'.$_SESSION['user'].'" onFocus="clearText" style="color:#39759B; font-weight: bold;" /></td></tr>
  30.  
  31. <tr><td>Treść:</td></tr>
  32. <tr><td><textarea name="tresc" rows="5" cols="40" style="color:#39759B; font-weight: bold;">'.$_POST['tresc'].'</textarea></td></tr>
  33. <tr><td><input type="submit" name="submit" value="Dodaj komentarz!" /></td></tr>
  34.  
  35. </table>
  36. </form></div>';
  37. }
  38.  
  39. ?>


Wcześniej w polu AUTOR > Value było Anonim, zastąpiłem to jednak '.$_SESSION['user'].' ponieważ dodałem logowanie. Chciałbym jednak, aby w polu nadal było wpisane domyślnie ANONIM jeśli użytkownik nie jest zalogowany.

Od dwóch godzin męczę się z dodaniem funkcji, aby wyskakiwał błąd kiedy któreś z pól będzie puste. Np. kiedy ktoś nie wpisze nic w pole AUTOR lub TRESC.

Nie mam pojęcia już gdzie dodać:
if (!empty($autor))

Proszę was o pomoc jak zmodyfikować poprawnie ten kod.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mlody993
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 12.02.2009

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


Twój kod niestety nadal u mnie nie działa. (IMG:style_emoticons/default/sad.gif)

Mój kod aktualnie wygląda tak:
  1. <?php
  2.  
  3. if (isset($_POST['submit'])){
  4. $id = $_GET['id'];
  5. if(isset($_SESSION['user']) AND !empty($_SESSION['user'])){
  6. $autor = $_SESSION['user'];
  7. $userid = $_SESSION['userid'];
  8. }else{
  9. if(isset($_POST['autor']) AND !empty($_POST['autor'])){
  10. $autor = 'Anonim';
  11. }else{
  12. error(); //lub coś i powrót
  13. }
  14. }
  15.  
  16. //Tytuł i Treść będzie wymagana więc nie musisz sprawdzać !empty
  17. $tytul = trim(htmlspecialchars(addslashes($_POST['tytul'])));
  18. $tresc = trim(htmlspecialchars(addslashes($_POST['tresc'])));
  19. $set_typ_coding = mysql_query("SET NAMES 'ISO-8859-2'");
  20. $ip = $_POST['ip'];
  21.  
  22. require_once "connect.php";
  23.  
  24. $sql = "insert into komentarze (`tytul`, `autor`, `userid`, `tresc`, `artid`, `ip`, `dodany`) values ('$tytul', '$autor', '$userid', '$tresc', '$id', '$ip', NOW())";
  25. $wynik = mysql_query($sql, $polaczenie) or die(mysql_error());
  26. echo "<table border=\"2\" style=\"border-style: none;\" width=\"500\" align=\"center\"><tr><th style=\"border-color: #6495ED; background-color: #FAF0E6; -moz-border-radius: 6px; border-style: solid;\" align=\"center\"><b><font color=green>Twój komentarz został dodany!</font></b></th></tr></table><br />";
  27. }else{
  28. if($zapytanie_mysql['autor'] == NULL){
  29. $autor = 'Anonim';
  30. }else{
  31. $autor = $zapytanie_mysql['autor'];
  32. }
  33.  
  34. echo '<div class=\"qw\"><form method="post" action="">
  35. <table>
  36. <tr><td><input type="hidden" name="ip" value="'.$_SERVER['REMOTE_ADDR'].'" /></td></tr>
  37. <tr><td><input type="hidden" name="tytul" value="0" required/></td></tr>
  38.  
  39. <tr><td>Autor: </td></tr>
  40. <tr><td><input type="text" name="autor" value="' . $autor . '" readonly="readonly" onFocus="clearText" style="color:#39759B; font-weight: bold;" /></td></tr>
  41.  
  42. <tr><td>Treść:</td></tr>
  43. <tr><td><textarea name="tresc" rows="5" cols="40" style="color:#39759B; font-weight: bold;" required>'.$_POST['tresc'].'</textarea></td></tr>
  44. </table>
  45. <table border="1" style="border-style: none;" width="20" align="center">
  46. <tr>
  47. <th style="border-color: #6495ED; background-color: #FAF0E6; -moz-border-radius: 6px; border-style: solid;" width="100" align="center">
  48. <input type="submit" name="submit" value="Dodaj komentarz" /></th>
  49.  
  50. </form>
  51. </th>
  52. </tr>
  53. </table>
  54.  
  55. </form></div>';
  56. }
  57. ?>




Nadal występuje ten problem, że cały czas w polu widnieje ANONIM nawet jeśli się zaloguje. Ale do bazy zostaje dodany nick zalogowany. Jednak gdy jestem wylogowany i dodam komentarz jako anonim to komentarz jest bez nicku, sama treść :/ do bazy nie dodaje się ten ANONIM. Czyli bez zmian....

Myślałem może aby w bazie dodać po prostu użytkownika (user) ANONIM z userid 0 - w ten sposób każdy komentarz dodany anonimowo dostałby userid = 0 i autor wyświetlany byłby jako ANONIM. Wtedy musiałbym zablokować pole AUTOR (np. readonly).

@edit:
Aha, po dodaniu:
  1. $set_typ_coding = mysql_query("SET NAMES 'ISO-8859-2'");


nadal komentarze są puste po wpisaniu polskich znaków.
To samo po ustawieniu kodowania utf-8.

Ten post edytował Mlody993 3.03.2016, 18:57:57
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: 15.10.2025 - 12:22