Linkkilistaan voi siis lisätä linkkejä ja poistaa linkkejä.
Lomakkeelta työnnetään linkin nimi ja linkin url tietokantaan josta sitten listataan ne ja tulostetaan linkki joka aukeaa uuten selainikkunaan.
esim.
lisäyslomake: http://ledi.ath.cx/vinkit/linkit/lisaa.html
listaus: http://ledi.ath.cx/vinkit/linkit/listaa.php
Taulun luonti (toki kannattaa luoda omanlainen)
CREATE TABLE linkit
(
id INTEGER(6) NOT NULL PRIMARY KEY,
nimi VARCHAR(25) NOT NULL,
linkki VARCHAR(50) NOT NULL
);
listaa.php
<?php ### SQL PAlvelimen asetukset (muuta omaksesi!) $sql_palvelin = ""; $sql_tunnus = ""; $sql_salasana = ""; $sql_tietokanta = ""; ### Yhteys sql palvelimeen $yhteys = mysql_connect($sql_palvelin,$sql_tunnus,$sql_salasana) or die("Yhdistäminen ei onnistunut"); mysql_select_db($sql_tietokanta) or die ("Virhe yhdistettäessä tietokantaan"); ### Kysellään kannasta, parsitaan myöhemmin $kysely = mysql_query("SELECT * FROM linkit",$yhteys); ### Luupilla luetaan kaikki linkit ja tulostetaan ne if(mysql_num_rows($kysely) < 1){ echo "<i>Ei linkkejä listassa</i>"; } else { for($i = 0; $i < mysql_num_rows($kysely); $i++){ $id = mysql_result($kysely,$i,0); $nimi = mysql_result($kysely,$i,1); $linkki = mysql_result($kysely,$i,2); echo "<a href=\"$linkki\" $nimi</a> <a href=\"poista.php?id=$id\">[poista]</a><br>"; } } ?>
poista.php
<?php ### SQL PAlvelimen asetukset (muuta omaksesi!) $sql_palvelin = ""; $sql_tunnus = ""; $sql_salasana = ""; $sql_tietokanta = ""; ### Yhteys sql palvelimeen $yhteys = mysql_connect($sql_palvelin,$sql_tunnus,$sql_salasana) or die("Yhdistäminen ei onnistunut"); mysql_select_db($sql_tietokanta) or die ("Virhe yhdistettäessä tietokantaan"); $poisto = $_GET[id]; ### sql lause joka poistaa linkin mysql_query("DELETE FROM linkit WHERE id='$poisto'",$yhteys); ### muuta header omaksesi header("Location:http://ledi.ath.cx/vinkit/linkit/listaa.php"); ?>
lisaa.php
<?php ### SQL PAlvelimen asetukset (muuta omaksesi!) $sql_palvelin = ""; $sql_tunnus = ""; $sql_salasana = ""; $sql_tietokanta = ""; ### Yhteys sql palvelimeen $yhteys = mysql_connect($sql_palvelin,$sql_tunnus,$sql_salasana) or die("Yhdistäminen ei onnistunut"); mysql_select_db($sql_tietokanta) or die ("Virhe yhdistettäessä tietokantaan"); ### Muuttujat linkkien tiedoille lomakkeelta $linkname = $_POST['linkname']; $link = $_POST['link']; ### Tarkistetaan että sekä nimi että linkki on syötetty ### Jos on syötetty niin lisätään linkki kantaan if(($linkname != "") & ($link != "")){ mysql_query("INSERT INTO linkit (nimi,linkki) VALUES ('$linkname','$link')", $yhteys); header("Location: http://ledi.ath.cx/vinkit/linkit/listaa.php"); } ### Muuten pyydetään täyttämään kaikki kentät else { echo "<br><br><b>Pieleen meni</b>"; } ?>
lisaa.html
<html> <form method="post" action="lisaa.php"> Linkin nimi:<br> <input type="text" maxlength="25" name="linkname"><br> Linkin URL:<br> <input type="text" maxlength="50" name="link"><br><br> <input type="submit" value="Lisää linkki"> </form> </html>
Emmie tiiä tekeekö tuolla kukaan mitään, tylsissäni tein, toimii ja esimerkkikin on. Noh, vinkki se on tuokii :)
Ihan kivahan tuo, tosin itselläni käytössä toisenlainen, jota on rukkailtu sen verran paljon, ettei sitä muuttamana aleta.
Hyvä vinkki kuitenkin :)
$poisto = $_GET[id];
Toimiiko tuo oikeasti ilman valituksia?
lainaus:
$poisto = $_GET[id];Toimiiko tuo oikeasti ilman valituksia?
Miksei toimisi?
Itse vinkistä sen verran, että tietoturva ei taida olla ihan kohdallaan. Kaikkia GET:n tai POST:n mukana tulevat syötteet olisi syytä viedä mysql_real_escape_string funktion läpi. Samoin esim. tuossa linkin poistossa olisi syytä varmaan tarkistaa onko $_GET['id'] kokonaisluku.
Niin ja tietysti tietokantarakennetta kannattaisi vinkkiin laittaa mukaan?
Miksi poisto-nappi on yleisesti esillä?
Ei kauhean hyvä idea, kuka tahansa saattaa pirruuttaan mennä poistamaan linkit.
lainaus:
Miksi poisto-nappi on yleisesti esillä?
Ei kauhean hyvä idea, kuka tahansa saattaa pirruuttaan mennä poistamaan linkit.
No voithan rukkailla poiston salasanan taakse tms? Poisto on nyt esillä tuossa esimerkissä sen takia että näkyy miten tässä miun versiossa sen oon toteuttanu :)
lainaus:
Niin ja tietysti tietokantarakennetta kannattaisi vinkkiin laittaa mukaan?
Hyvä idea :D Unohdin ihan. Nyt on tuossa käytetty taulun luonti lause esillä.
Ihan kait hyvä, mut ehkä toi mysql ei oo linkkilistaan mikään välttämätön.. No ei se tietenkää mitää haittaakkaa :D
hieno ja toimiva koodi ;)
Pistin vielä pienen "tiedotuksen" käyttäjälle, jos linkkejä ei olekkaan listassa, niin se kertoo sen :)
joka kerta tulee tämmönen ikkuna ku klikkaa ´´lisää linkki´´:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in J:\apachefriends\xampp\htdocs\adevas\lisaa.php on line 12
Yhdistäminen ei onnistunut
lainaus:
joka kerta tulee tämmönen ikkuna ku klikkaa ´´lisää linkki´´:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in J:\apachefriends\xampp\htdocs\adevas\lisaa.php on line 12
Yhdistäminen ei onnistunut
Onko sulla mysql asennettu?
Aihe on jo aika vanha, joten et voi enää vastata siihen.