Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wstawiania obrazka lub linka z string
Forum PHP.pl > Forum > Przedszkole
grubas
wiec zrobilem cos na kszatla forum i teraz zastanawiam sie jak zrobic emotikony czyli zeby zamiast : ) wyswietlal se obrazek odnoszacy sie do tej serii znakow, oraz jak zrobic aby linki po wpisaniu w poscie pozniej wyswietlaly sie jako aktywne.
strife
Szukałeś? snitch.gif

http://forum.php.pl/index.php?showtopic=46318

Co do aktywnych linków, to musisz użyć jakiegoś wyrażenia regularnego, który każdego linka będzie zmieniał na aktywny, potrzebne Ci będą np. preg_replace" title="Zobacz w manualu php" target="_manual, preg_replace_callback" title="Zobacz w manualu php" target="_manual. Przeszukaj manual, forum i google smile.gif

Pozdrawiam!
plisek
filtruj tresc calego posta, sprawdzaj pod kontem wystepujących ciągów w stringu i porownuj np z tym co masz w np tablicy gdzie np winksmiley.jpg =><img> itd
co do aktywnych linków to ta sama historia, przeszukaj tresc pod kontem www. lub http i podmien to na <a>..
mozna także cos pokombinować z bbcode
pozdr


@strife byłeś szybszy winksmiley.jpg
grubas
Cytat(plisek @ 8.02.2007, 00:26:49 ) *
co do aktywnych linków to ta sama historia, przeszukaj tresc pod kontem www. lub http i podmien to na <a>..
mozna także cos pokombinować z bbcode
pozdr


eh nie wiem za bardzo jak filtrtowac w poszukiwaniu stringa ale to pewnie znajde tylko jak juz go znajde to jak dojsc do tego gdzie ten string sie konczy , czy jesli napotkam www. lub http uwzgledniac kazdy nastepny znak jako ten nalezacy do linka az do napotkania spacji ?
plisek
tak szukasz calego linka az do napotkania znaku spacji, entera itp
jest jednak mały problem, bo jezeli uzytkownik nie zrobi spacji przez pomyłke oczywiście ;P po wpisaniu adresu, to taki link nie bedzie działał poprawnie.
pozdr
grubas
ok przy okazji nie bede zakladal nowego tematu , mam takie cos :

  1. <?php
  2. $id_t=$_GET['id_t'];
  3.  
  4. if ($_GET['czyt']==0) {
  5.  
  6. $sql="insert into czytane (`uzytk_id`,`tematu_id`) values ('$user_id','$id_t')";
  7. $wynik=mysql_query($sql,$polaczenie) or die(mysql_error());
  8.  
  9. }
  10. ?>


po wykonaniu w bazie mam te wartosci podwojne czyli po prostu jakby polecenie wykonalo sie 2 razy mimo ze mysql_affected_rows() zwraca 1
strife
Jesteś pewien, że wykonuje się to dwa razy ? Pamiętaj, że Twój zapis warunku
  1. <?php
  2. if ($_GET['czyt']==0) {
  3. ?>

jest równoznaczny, z
  1. <?php
  2. if ($_GET['czyt']== FALSE) {
  3. ?>

Co sprawia, że gdy klucz w tablicy $_GET nie będzie istniał, bądź będzie posiadał wartość false, to zapytanie się wykona, o to Ci chodziło?
grubas
$_GET['czyt'] jest zawsze 0 lub 1 , poniewaz jest to wynik dzialania mysql_affected_rows(), ogolnie rzecz ma sie tak, skleilem cos na miare forum, zrobilem tabele w ktorej jest id uzytkownika oraz id postu, po wejsc na glowna strone i listowaniu tematow sprawdzam czy id uzytkownika aktualnie zalogowanego oraz id aktualnie wyswietlanego tematu istnieja w tablicy :

  1. <?php
  2. $sql999="select tematu_id from czytane where uzytk_id="$user_id" and tematu_id="$id_t"";
  3. $wynik999=mysql_query($sql999,$polaczenie) or die(mysql_error());
  4. ?>


jezeli $czytany = 0, temat jest oznaczany jako nieczytany przez uzytkownika, jezeli 1 jako czytany, i teraz przehodzac do danego tematu przesylam wartosc $czytany i w temacie spawdzam, jezeli jest 0 czyli nieczytany wprowadzam do tabeli id uzytkownika oraz id tematu aby przy nastepnym sprawdzeniu na stronie glownej ( patrz wyzej ) zwrocilo wartosc 1 czyli juz przeczytany, czyli :
  1. <?php
  2. if ($_GET['czyt']==0) {
  3.  
  4. $sqlkozo="insert into czytane (`uzytk_id`,`tematu_id`) values ('$user_id','$id_t')";
  5. $wynikkozo=mysql_query($sqlkozo,$polaczenie) or die(mysql_error());
  6.  
  7. }
  8. ?>


no i ok mam ile tam tematow , za 1 wejscie wiadomo wszystkie sa oznaczone jako nieczytane bo tabela jest pusta, wchodze na 1 na 2 na 3 ladnie wszystko wpisuje do tabeli oznacza jako czytane ALE wystarczy do dodam nowy tamat przejde do strony glownej widze go jak nieczytany wchodze na niego po czym wraam do strony glownej i wartosc $czytany ktora powinna byc 0 , lub 1 wynosi 2, i faktycznie w bazie sa 2 identyczne wpisy, czy to cos moze w pliku ktory dodaje temat mi cos psuje ? wyglada on tak :

  1. <?
  2.  
  3. if (isset($_SESSION["user_zalogowany"]) || isset($_COOKIE["user_zalogowany"])) {
  4.  
  5.  
  6. if (isset($_COOKIE["user_zalogowany"])) $user_id=$_COOKIE["user_zalogowany"];
  7.  
  8. if (isset($_SESSION["user_zalogowany"])) $user_id=$_SESSION["user_zalogowany"];
  9.  
  10.  
  11. if ($_POST['tresc_temat']!='' && $_POST['autor']!='' && $_POST["tresc_post"]!='') {
  12.  
  13. $tresc_temat=$_POST['tresc_temat'];
  14. $autor=$_POST['autor'];
  15. $tresc_post=$_POST['tresc_post'];
  16. $data=date("Y.m.d H:i:s");
  17.  
  18. include ("polaczenie.php");
  19.  
  20. $sql="INSERT INTO `temat` (`id_temat`,`tresc_temat`,`autor_temat`,`data_temat`) VALUES ('','$tresc_temat','$autor','$data')";
  21. $wynik=mysql_query($sql,$polaczenie) or die(mysql_error());
  22.  
  23. $sql1="SELECT * from temat order by data_temat DESC LIMIT 0,1";
  24. $wynik1=mysql_query($sql1,$polaczenie) or die(mysql_error());
  25.  
  26. $tablica=mysql_fetch_array($wynik1);
  27.  
  28. $id_tematu_do_posta=$tablica[id_temat];
  29.  
  30. $sql2="INSERT INTO `post` (`id_post`,`tresc_post`,`autor_post`,`data_post`) VALUES ('$id_tematu_do_posta','$tresc_post','$autor','$data')";
  31. $wynik2=mysql_query($sql2,$polaczenie) or die(mysql_error());
  32. mysql_close($polaczenie);
  33.  
  34. echo ("<center><br><br><br><br><font class=tekst>Dodano!</font><br><br>");
  35.  
  36. echo ("<a href="index.php" >Powrot do strony glownej</a><br><br></center>");
  37.  
  38. }
  39. else {
  40.  
  41. echo ("<center><br><br><br><br>");
  42. echo ("<table border=0 class=tabka3 width=500>");
  43. echo ("<tr align=center><td colspan=2 height=30><p>Dodaj temat</p></td></tr>");
  44.  
  45. echo ("<form action=dodaj_t.php method=post>");
  46. echo ("<tr align=center><td height=30><font class=tekst>Temat </font></td><td> <input class=srodek size=52 type=text name=tresc_temat /></td></tr>");
  47.  
  48. include ("polaczenie.php");
  49.  
  50. $sql3="select * from users where user_id=$user_id";
  51. $wynik3=mysql_query($sql3,$polaczenie) or die(mysql_error());
  52.  
  53.  
  54. if (mysql_num_rows($wynik3)>'0')  {
  55.  
  56. $tablica=mysql_fetch_array($wynik3);
  57.  
  58. $login=$tablica[login];
  59.  
  60. echo ("<input type=hidden name=autor value=$login />");
  61.  
  62. }
  63.  
  64.  
  65. echo ("<tr align=center><td height=30 width=150><font class=tekst>Tresc </font></td><td><textarea class=srodek size=30 type text name=tresc_post cols=45 rows=12></textarea></td></tr>");
  66. echo ("<tr align=center><td colspan=2><input class=guzik1 type=submit value='Dodaj temat' /></td></tr></table>");
  67. echo ("</form><br><br>");
  68. echo ("</center>");
  69.  
  70.  
  71. echo ("<center><br><a href="index.php" >Strona glowna</a></center>");
  72.  
  73. }
  74. }
  75. ?>
  76.  
  77. <html>
  78.  
  79. <head>
  80.  
  81. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  82. <link rel="stylesheet" type="text/css" href="styl.css" />
  83.  
  84. </head>
  85. <body >
  86.  
  87. </body>
  88. </html>
  89. ?>


i wasciwie to wszystko :E
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.