ugrás a tartalomhoz

Szövegből kinyert link adatbázisba mentése

zöldfülü · 2019. Szep. 6. (P), 11.21
Sziasztok

A probléma amit meg kellett oldanom, egy szövegdobozban lévő szövegből kiolvasni a linket.

Erre találtam is megoldást, viszont a probléma, hogy az így kinyert linket, adatbázisba kellene raknom php-vel.

Jelenleg a kinyert linket megjeleníti az oldal egy tetszőleges részén.

Tehát ami van:

 <script type="text/javascript">
    function convert()
    {
	  var text=document.getElementById("url").value;
	  var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
	  var text1=text.replace(exp, "<a href='$1'>$1</a>");
	  var exp2 =/(^|[^\/])(www\.[\S]+(\b|$))/gim;
	  document.getElementById("converted_url").innerHTML=text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
    }
  </script>

<body onload="convert();" >
  
  <h1>Convert URL Text Into Clickable HTML Link Using JavaScript</h1>
  <textarea id="url" Placeholder="Enter Some Text With Links">
  </textarea>
  <input type="button" value="Convert" onclick="convert();">

  <p id="converted_url"></p>

  <button onclick="myFunction()">Load new document</button>
Amit szeretnék, hogy a szövegdobozból kinyert linket, adatbázisba tegye :
<?
$link=link

$query = "INSERT INTO linkek
(link)

VALUES

('$link')";
mysqli_query($dbc, $query);

?>
Köszönöm a rávezetést vagy a segítséget!
 
1

Működik?

Pepita · 2019. Szep. 9. (H), 08.43
Így ránézésre a meglévő html + js nem működik abban az esetben, ha a felhasználó ír be valamit a textarea-ba, csak ha megnyomja a "Convert" gombot.
A convert fv-t az oldal betöltésekor futtatni felelsleges, mert akkor még üres a textarea is és a "converted_url" bekezdés is.
Egyébként biztos, hogy html kódot szeretnél kapni a textarea-ban? Biztos, hogy csak egyetlen url-t szeretnél benne megtalálni?

php:
- short tag használata nagyon nem javasolt.
- 2. sorban syntax error és (valószínűleg) undefined constant
- db insert: SOHA nem szórunk be valamit "csak úgy" adatbázisba, ami a felhasználótól jön. Akár php kód is jöhetne, aztán amikor ki szeretnéd írni, szépen lefut... Esetleg törli a teljes adatbázisodat. MINDIG escape-elni kell, ami usertől jön!
- Mivel csak url-eket vársz (gondolom egyesével, mert egyet keres a js), ezt célszerű a szerver oldalon is (php) ellenőrizni, hogy valóban url-e (szintén regexp). Ami kliens oldalon van, azt bármikor meghackeli egy ovis hacker.
- Várhatóan egy _POST metódusú adatbevitel lesz, tehát onnan kéne keresni, hogy jött-e és megfelelő adat
- Célszerű valamilyen választ is adni a kérésre, pl "vettem, beszúrtam az url-t" vs "hiba történt, nem szúrtam be", amit aztán a kliens oldalon (böngésző) meg is jelenítesz. Lássa a user, hogy történt valami, mert megnyomta a gombot.
- Célszerű json stringben válaszolni

js:
- meg kell tanítani, hogy a gomb megnyomásakor, az url kiszedése után, ha van találat, azt küldje el a szervernek, a fenti php szkriptet kell meghívnia pl egy ajax post kéréssel.
- a kérésre kapott választ (vagy annak függvényében valamit) meg kell jeleníteni a felületen.
- akár a kérés-válasz kezelésre, akár az eseményekre, kiíratásra lehet, hogy érdemes valamilyen js keretrendszert használni, pl jQuery.