Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][CSS][HTML5] Kolorowanie użytkowników i ich wiadomości
xyz91
post 3.11.2019, 11:48:18
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Witam,

Potrzebuje napisać kawałek kodu, żeby w prostym shoutboxie każdego nowego użytkownika jego wiadomość kolorowało na inny kolor. Wytłumaczę to trochę łopatologicznie, żeby wszytko było jasne. Chodzi o to, że na stronie wyświetla mi się aktualnie 5 ostatnich wiadomości, więc załóżmy, że na jednej przeglądarce wejdę wpisze Janusz i on dostanie jakiś kolor, który zostanie aktualnie do niego przypisany na tej przeglądarce, na innej wejdę wpisze np. nick Marek i on dostanie inny.
Myślę, że wystarczy właśnie 5 kolorów, żeby z nich kolorowało poszczególnych użytkowników i ich wiadomości.

  1. $rezultat = mysqli_query($polaczenie, "SELECT * FROM posty") or die ("Błąd zapytania do bazy: $dbname");
  2. print "<TABLE CELLPADDING=5 BORDER=1>";
  3. print "<TR><TD>ID</TD><TD>Nick</TD><TD>Data</TD><TD>Message</TD></TR>\n";
  4. ?>
  5. <form method="POST" action="dodaj.php">
  6. <br>
  7. Nick:<input type="text" name="user" value="<?php if (isset($_COOKIE['Nick'])) { echo $_COOKIE['Nick']; } ?> "; maxlength="10" size="10"><br>
  8. Post:<input type="text" name="post" maxlength="90" size="90">
  9. <br>
  10. <input type="submit" value="Send"/>
  11. </form>
  12. Posty:
  13. <br>
  14. <?php
  15. $rezultat = mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM posty ORDER BY idk DESC LIMIT 5");
  16.  
  17. while ($wiersz = mysqli_fetch_array ($rezultat)) {
  18. $idk = $wiersz[0];
  19. $nick = $wiersz[1];
  20. $data = $wiersz[2];
  21. $komunikat = $wiersz[3];
  22.  
  23.  
  24. mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM posty");
  25.  
  26. print "<TR><TD>$idk</TD><TD>$nick</TD><TD>$data</TD><TD>$komunikat</TD></TR>\n"; }
  27. print "</TABLE>";
  28. mysqli_close($polaczenie);
  29.  
  30. ?>
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 16:39:24
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Przypisz sesje z kolorem dla użytkownika.

Zrob przyklad ktory zapisze gdzies w osobnej tabeli kolor. Sprawdzaj jesli jest uzyty wylosuj kolejny albo zrob tablice ze spora iloscia wartosci. Oczywiscie drugi przyklad nie da 100% pewnosci ze kolory nie powiela sie i min 2 userow nie bedzie mialo tego samego koloru.Chociaz z drugiej strony jesli bedzie wiecej niz 5 userow to i tak ktorys sie powieli
Najprosciej tak bez zapisywanie gdziekolwiek:

  1.  
  2. $color = array('red', 'blue', 'green', 'navy', 'yellow'.............................);
  3. $los_kolor = array_rand ($color);
  4. $losowy = $color[$los_kolor];
  5. $_SESSION['color'] = $losowy;
  6.  
  7. //print $_SESSION['color'];


Ten post edytował dublinka 3.11.2019, 18:19:26


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 18:55:55
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Cytat(dublinka @ 3.11.2019, 16:39:24 ) *
Przypisz sesje z kolorem dla użytkownika.

Zrob przyklad ktory zapisze gdzies w osobnej tabeli kolor. Sprawdzaj jesli jest uzyty wylosuj kolejny albo zrob tablice ze spora iloscia wartosci. Oczywiscie drugi przyklad nie da 100% pewnosci ze kolory nie powiela sie i min 2 userow nie bedzie mialo tego samego koloru.Chociaz z drugiej strony jesli bedzie wiecej niz 5 userow to i tak ktorys sie powieli
Najprosciej tak bez zapisywanie gdziekolwiek:

  1.  
  2. $color = array('red', 'blue', 'green', 'navy', 'yellow'.............................);
  3. $los_kolor = array_rand ($color);
  4. $losowy = $color[$los_kolor];
  5. $_SESSION['color'] = $losowy;
  6.  
  7. //print $_SESSION['color'];


Ale ten przykład co zapisałeś mam wrzucić w nowy plik czy tutaj gdzie wrzucałem ten kawałek kodu? Mógłbyś bardziej to wytłumaczyć jak to zaimplementować do mojego kodu?
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 19:46:08
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


W momencie ustawienia Twojego Cookie. Zreszsta jak juz bedziesz robil sesje to zmien to ciaskto na sesje 'nick' bo po co mieszac dwie rzeczy.
Nie napisze jak bo nie widze co tam wczesniej robisz.

Mozesz wygenerowac koloro losowo:

  1. $out = '#' . substr(md5(rand()), 0, 6);
  2.  
  3. print "<span style=color:" . $out . ">TEST</span>";


lub

  1. $rand = str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  2.  
  3. print "<span style=color:#" . $rand . ">TEST</span>";


Ten post edytował dublinka 3.11.2019, 20:00:55


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 20:06:32
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Cytat(dublinka @ 3.11.2019, 19:46:08 ) *
W momencie ustawienia Twojego Cookie. Zreszsta jak juz bedziesz robil sesje to zmien to ciaskto na sesje 'nick' bo po co mieszac dwie rzeczy.
Nie napisze jak bo nie widze co tam wczesniej robisz.

Mozesz wygenerowac koloro losowo:

  1. $out = '#' . substr(md5(rand()), 0, 6);
  2.  
  3. print "<span style=color:" . $out . ">TEST</span>";


lub

  1. $rand = str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  2.  
  3. print "<span style=color:#" . $rand . ">TEST</span>";


Mam coś takiego:
dodaj.php
  1. <?php
  2. $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="php";
  3. $polaczenie = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
  4. if (!$polaczenie) {
  5. echo "Błąd połączenia z MySQL." . PHP_EOL;
  6. echo "Errno: " . mysqli_connect_errno() . PHP_EOL;
  7. echo "Error: " . mysqli_connect_error() . PHP_EOL;
  8. }
  9. $godzina = date("Y-m-d H:i:s");
  10. $user = $_POST['user'];
  11. $post = $_POST['post'];
  12. if (IsSet($_POST['post'])) {
  13. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat) VALUES('$user','$godzina','$post')");
  14. setcookie('Nick', $user,time()+60*60);
  15. header("Location: index.php");
  16. exit();
  17.  
  18. }
  19.  
  20. ?>


index.php
  1. <?php
  2. $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="php";
  3. $polaczenie = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
  4. if (!$polaczenie) {
  5. echo "Błąd połączenia z MySQL." . PHP_EOL;
  6. echo "Errno: " . mysqli_connect_errno() . PHP_EOL;
  7. echo "Error: " . mysqli_connect_error() . PHP_EOL;
  8. }
  9. $rezultat = mysqli_query($polaczenie, "SELECT * FROM komunikaty") or die ("Błąd zapytania do bazy: $dbname");
  10. print "<TABLE CELLPADDING=5 BORDER=1>";
  11. print "<TR><TD>ID</TD><TD>Użytkownik</TD><TD>Data i godzina</TD><TD>Wiadomość</TD></TR>\n";
  12. ?>
  13. <form method="POST" action="dodaj.php">
  14. <br>
  15. Nick:<input type="text" name="user" value="<?php if (isset($_COOKIE['Nick'])) { echo $_COOKIE['Nick']; } ?> "; maxlength="10" size="10"><br>
  16. Post:<input type="text" name="post" maxlength="90" size="90">
  17. <br>
  18. <input type="submit" value="Send"/>
  19. </form>
  20. Posty:
  21. <br>
  22. <?php
  23. $rezultat = mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM komunikaty ORDER BY idk DESC LIMIT 5");
  24. while ($wiersz = mysqli_fetch_array ($rezultat)) {
  25. $idk = $wiersz[0];
  26. $nick = $wiersz[1];
  27. $data = $wiersz[2];
  28. $komunikat = $wiersz[3];
  29. $kolor = $wiersz[4];
  30.  
  31.  
  32. mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM komunikaty");
  33.  
  34. print "<TR><TD>$idk</TD><TD>$nick</TD><TD>$data</TD><TD>$komunikat</TD></TR>\n"; }
  35. print "</TABLE>";
  36. mysqli_close($polaczenie);
  37.  
  38. ?>


To jest mój cały kod.
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 20:22:02
Post #6





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


  1. $godzina = date("Y-m-d H:i:s");
  2. $user = $_POST['user'];
  3. $post = $_POST['post'];
  4.  
  5. if (IsSet($_POST['post'])) {
  6. $kolor = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  7. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat,kolor) VALUES('$user','$godzina','$post','$kolor')");


Potem tylko pobierz z bazy i podstaw do formatowania tekstu. Oczywiscie najpierw tabele musisz usupalnic o pole 'kolor'
Albo
Tam gdzie jest
  1. setcookie('Nick', $user,time()+60*60);
  2. $_SESSION['kolor'] = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);


i tak samo sesje wstaw w formatowanie tekstu.
Przy opcji z sesja zainicjuj



na poczatku pliku

Ten post edytował dublinka 3.11.2019, 20:24:08


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 20:34:08
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Cytat(dublinka @ 3.11.2019, 20:22:02 ) *
  1. $godzina = date("Y-m-d H:i:s");
  2. $user = $_POST['user'];
  3. $post = $_POST['post'];
  4.  
  5. if (IsSet($_POST['post'])) {
  6. $kolor = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  7. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat,kolor) VALUES('$user','$godzina','$post','$kolor')");


Potem tylko pobierz z bazy i podstaw do formatowania tekstu. Oczywiscie najpierw tabele musisz usupalnic o pole 'kolor'
Albo
Tam gdzie jest
  1. setcookie('Nick', $user,time()+60*60);
  2. $_SESSION['kolor'] = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);


i tak samo sesje wstaw w formatowanie tekstu.
Przy opcji z sesja zainicjuj



na poczatku pliku


Zainicjonowałem sesje na początku, kolory mi się zapisują do bazy, ale nie wyświetla mi się na stronie - nie koloruje.
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 20:39:42
Post #8





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Wkradl mi sie maly blad. W pierwszym prrzypadku bedzie Ci dodawac za kazdym razem nowy kolor.

  1.  
  2. $_SESSION['nick'] = $_POST['user']; // zamiast setcookie('Nick', $user,time()+60*60);
  3. $_SESSION['kolor'] = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);


Sprawdz sobie co zwracaja te sesje.

  1. print_r($_SESSION);


Ten post edytował dublinka 3.11.2019, 20:41:00


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 20:46:20
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Cytat(dublinka @ 3.11.2019, 20:39:42 ) *
Sprawdz sobie co zwracaja te sesje.

  1. print_r($_SESSION);


Takie coś mi zwraca - Array ( [kolor] => #51c338 [nick] => Test 4 ) Array ( [kolor] => #51c338 [nick] => Test 4 ) Array ( [kolor] => #51c338 [nick] => Test 4 ) Array ( [kolor] => #51c338 [nick] => Test 4 ) Array ( [kolor] => #51c338 [nick] => Test 4 )
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 20:54:24
Post #10





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Pokaz mi gdzie ty to dajesz te sesje

  1. <?php
  2.  
  3. $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="php";
  4. $polaczenie = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
  5. if (!$polaczenie) {
  6. echo "Błąd połączenia z MySQL." . PHP_EOL;
  7. echo "Errno: " . mysqli_connect_errno() . PHP_EOL;
  8. echo "Error: " . mysqli_connect_error() . PHP_EOL;
  9. }
  10. $godzina = date("Y-m-d H:i:s");
  11. $user = $_POST['user'];
  12. $post = $_POST['post'];
  13. if (IsSet($_POST['post'])) {
  14. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat) VALUES('$user','$godzina','$post')");
  15. $_SESSION['nick'] = $_POST['user'];
  16. if(!isset($_SESSION['kolor']))
  17. {
  18.  
  19. $_SESSION['kolor'] = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  20.  
  21. }else {
  22.  
  23. $_SESSION['kolor'] = $_SESSION['kolor'];
  24. }
  25. header("Location: index.php");
  26. exit();
  27.  
  28. }
  29.  
  30. ?>


Ten post edytował dublinka 3.11.2019, 20:57:05


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 20:56:57
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Cytat(dublinka @ 3.11.2019, 20:54:24 ) *
Pokaz mi gdzie ty to dajesz te sesje

  1. <?php
  2.  
  3. $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="php";
  4. $polaczenie = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
  5. if (!$polaczenie) {
  6. echo "Błąd połączenia z MySQL." . PHP_EOL;
  7. echo "Errno: " . mysqli_connect_errno() . PHP_EOL;
  8. echo "Error: " . mysqli_connect_error() . PHP_EOL;
  9. }
  10. $godzina = date("Y-m-d H:i:s");
  11. $user = $_POST['user'];
  12. $post = $_POST['post'];
  13. if (IsSet($_POST['post'])) {
  14. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat) VALUES('$user','$godzina','$post')");
  15. $_SESSION['nick'] = $_POST['user'];
  16. $_SESSION['kolor'] = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  17. header("Location: index.php");
  18. exit();
  19.  
  20. }
  21.  
  22. ?>


No tak dokładnie dałem, na początku.
Tu chyba coś zmienić, żeby wyświetlało dobrze:
  1. $rezultat = mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat, kolor FROM komunikaty ORDER BY idk DESC LIMIT 5");
  2. $rand = str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  3. while ($wiersz = mysqli_fetch_array ($rezultat)) {
  4. $idk = $wiersz[0];
  5. $nick = $wiersz[1];
  6. $data = $wiersz[2];
  7. $komunikat = $wiersz[3];
  8. $kolor = $wiersz[4];
  9.  
  10.  
  11.  
  12. mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM komunikaty");
  13. print "<TR><TD>$idk</TD><TD>$nick</TD><TD>$data</TD><TD>$komunikat</TD></TR>\n"; }
  14. print "</TABLE>";
  15.  
  16. mysqli_close($polaczenie);
  17.  
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 21:04:46
Post #12





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Ma byc tak: [sory ale rownoczesnie ogladam F1 biggrin.gif i nie moge sie skupic ani tu ani tu

  1. <?php
  2.  
  3. $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="php";
  4. $polaczenie = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
  5. if (!$polaczenie) {
  6. echo "Błąd połączenia z MySQL." . PHP_EOL;
  7. echo "Errno: " . mysqli_connect_errno() . PHP_EOL;
  8. echo "Error: " . mysqli_connect_error() . PHP_EOL;
  9. }
  10. $godzina = date("Y-m-d H:i:s");
  11. $user = $_POST['user'];
  12. $post = $_POST['post'];
  13. if (IsSet($_POST['post'])) {
  14. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat) VALUES('$user','$godzina','$post')");
  15. $_SESSION['nick'] = $_POST['user'];
  16. $_SESSION['kolor'] = (!isset($_SESSION['kolor'])) ? '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT) : $_SESSION['kolor'];
  17.  
  18. header("Location: index.php");
  19. exit();
  20.  
  21. }
  22.  
  23. ?>


W drugim pliku tez musisz zainicjowac sesje. Tam nie dajesz juz losowania hex-a bo juz to masz w sesji i wystarczy ja wywolac

Tam gdzie chcesz formatowac teskt poprostu wywolaj ją

Tam gdzie sprawdzales cookie teraz sprawdzaj sesje..

NIE DODAWAJ NIC DO BAZY.

Zostaw to tak jak miales..


W drugim pliku tam w petli gdzie wyciagasz z bazy:

  1. print "<span style=color:".$_SESSION['kolor'].">" . $komunikat . "</span>";


Ten post edytował dublinka 3.11.2019, 21:14:28


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 21:22:34
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Chyba gdzieś się pogubiłem. Koloruje mi teraz, ale tylko na zielono zarówno na jednej jak i na drugiej przeglądarce. Teraz mam tak:

  1. $godzina = date("Y-m-d H:i:s");
  2. $user = $_POST['user'];
  3. $post = $_POST['post'];
  4. if (IsSet($_POST['post'])) {
  5. $kolor = '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  6. mysqli_query($polaczenie, "INSERT INTO komunikaty(nick, data, komunikat,kolor) VALUES('$user','$godzina','$post','$kolor')");
  7. setcookie('Nick', $user,time()+60*60); //możliwość wprowadzania danych nick tylko raz\
  8. $_SESSION['nick'] = $_POST['user'];
  9. $_SESSION['kolor'] = (!isset($_SESSION['kolor'])) ? '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT) : $_SESSION['kolor'];
  10. header("Location: index.php");
  11. exit();
  12.  
  13. }



  1. $rezultat = mysqli_query($polaczenie, "SELECT * FROM komunikaty") or die ("Błąd zapytania do bazy: $dbname");
  2. print "<TABLE CELLPADDING=5 BORDER=1>";
  3. print "<TR><TD>ID</TD><TD>Użytkownik</TD><TD>Data i godzina</TD><TD>Wiadomość</TD></TR>\n";
  4. ?>
  5. <form method="POST" action="dodaj.php">
  6. <br>
  7. Nick:<input type="text" name="user" value="<?php if (isset($_COOKIE['Nick'])) { echo $_COOKIE['Nick']; } ?> "; maxlength="10" size="10"><br>
  8. Post:<input type="text" name="post" maxlength="90" size="90">
  9. <br>
  10. <input type="submit" value="Send"/>
  11. </form>
  12. Posty:
  13. <br>
  14. <?php
  15. $rezultat = mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat, kolor FROM komunikaty ORDER BY idk DESC LIMIT 5");
  16. $rand = str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT);
  17. while ($wiersz = mysqli_fetch_array ($rezultat)) {
  18. $idk = $wiersz[0];
  19. $nick = $wiersz[1];
  20. $data = $wiersz[2];
  21. $komunikat = $wiersz[3];
  22. $kolor = $wiersz[4];
  23.  
  24.  
  25.  
  26. mysqli_query($polaczenie, "SELECT idk, nick, data, komunikat FROM komunikaty");
  27. print_r($_SESSION);
  28. print "<TR><TD>$idk</TD><TD>$nick</TD><TD>$data</TD><TD><span style=color:".$_SESSION['kolor'].">" . $komunikat . "</span></TD></TR>\n"; }
  29. print "</TABLE>";
  30.  
  31. mysqli_close($polaczenie);
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 21:41:05
Post #14





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Kazda przeglądarka przechowuje swój własny zestaw plikow cookie (ktore są technologicznymi sesjami) - nie są one wspołuzytkowane przez rozne przeglądarki.

Sprobuj wywolac

  1.  


wklej to w pliku (na poczatku za session_start()) i wywolaj plik. Potem to usun i sprawdz ponownie.


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 21:47:14
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


Nie pykło i jeszcze jakiś warning wywaliło. Może gdzieś w kodzie są błędy.
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 22:26:21
Post #16





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(xyz91 @ 3.11.2019, 20:47:14 ) *
Nie pykło i jeszcze jakiś warning wywaliło. Może gdzieś w kodzie są błędy.

szklanej kuli nie mam i nie czytam w myslach.

  1.  
  2. @$mysqli = new mysqli($server, $username, $password, $database);
  3.  
  4. if ($mysqli->connect_error)
  5. {
  6. die("Błąd połączenia z MySQL: " . $mysqli->connect_error);
  7. }
  8.  
  9. $sql = "SELECT `idk`, `nick`, `data`, `komunikat` FROM komunikaty ORDER BY `idk` DESC LIMIT 5";
  10. $result = $mysqli->query($sql);
  11.  
  12. $allRows = $result->num_rows;
  13.  
  14. if ($allRows > 0)
  15. {
  16.  
  17. print 'Wszystkich rekordów: <u><b>' . $allRows . '</b></u>';
  18.  
  19. while($row = $result->fetch_assoc())
  20. {
  21. print "</span style=\"color:".$_SESSION['kolor']."\">".$row['komunikat']."</span><br>";
  22.  
  23. }
  24.  
  25. } else
  26. {
  27.  
  28. print 'Znaleziono: ' . $allRows . ' rekordów';
  29.  
  30. }
  31.  
  32. $mysqli->close();


Generalnie lepiej jest zapisac do bazy
Nalezaloby tak jak w tym przypadku sprawdzic czy sesja istnieje (przed zapisem do bazy) - dac ten sam warunek. Zapisac i wyciagac z bazy kolor.
To nie takie trudne.

Zapis sesji do bazy

  1.  
  2. $mysqli = new mysqli($SERVER, $USER, $PASSWORD, $DBNAME);
  3.  
  4.  
  5. $godzina = date("Y-m-d H:i:s");
  6. $user = $_POST['user'];
  7. $post = $_POST['post'];
  8. $_SESSION['kolor'] = (!isset($_SESSION['kolor'])) ? '#' . str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, STR_PAD_LEFT) : $_SESSION['kolor'];
  9. $kolor = $_SESSION['kolor'];
  10.  
  11. if ($stmt = $mysqli->prepare("INSERT INTO komunikaty" . " (nick, data, komunikat, kolor) VALUES ( ?, ?, ?, ? )"))
  12. {
  13.  
  14. $stmt->bind_param('ssss', $user, $godzina, $post, $kolor);
  15.  
  16. $stmt->execute();
  17. $stmt->close();
  18. $mysqli->close();
  19.  
  20.  
  21. header('location: index.php'); // jesli ok
  22.  
  23. }
  24.  
  25. else {
  26.  
  27. print 'blad zapisu';
  28.  
  29. }


Ten post edytował dublinka 3.11.2019, 22:17:54


--------------------
Go to the top of the page
+Quote Post
xyz91
post 3.11.2019, 22:28:23
Post #17





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.10.2019

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


No to wcześniej zapisywało w formacie hex, tylko że zapisywało randomowo, a chyba ma zapisywać do nicku określony kolor. Próbowałem wyciągnąć kolor z bazy, ale nie działało w taki sposób:



Edit. Dobra, udało się chyba. Dzięki wielkie za pomoc i za cierpliwość, ale programowanie to nie moja bajka. Dzięki!

Ten post edytował xyz91 3.11.2019, 22:39:52
Go to the top of the page
+Quote Post
dublinka
post 3.11.2019, 22:38:54
Post #18





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


A niby ta funkcja co robi. HEX to format koloru.
Przeczytaj sobie wczesniejszy post i zastosuj. Nie mieszaj swojego z moim.

Musisz przed dodaniem do bazy dac ten warunek bo inaczej caly czas bedzie dodawalo nowy kolor.

Ten post edytował dublinka 3.11.2019, 22:40:15


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 15:44