Szövegből kinyert link adatbázisba mentése
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:Amit szeretnék, hogy a szövegdobozból kinyert linket, adatbázisba tegye :Köszönöm a rávezetést vagy a segítséget!
■ 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>
<?
$link=link
$query = "INSERT INTO linkek
(link)
VALUES
('$link')";
mysqli_query($dbc, $query);
?>
Működik?
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.