Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Linkkilista (lisäys & poisto)

Sivun loppuun

KuinKala [21.01.2005 23:07:16]

#

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>

KuinKala [21.01.2005 23:08:02]

#

Emmie tiiä tekeekö tuolla kukaan mitään, tylsissäni tein, toimii ja esimerkkikin on. Noh, vinkki se on tuokii :)

chiqu [22.01.2005 17:34:42]

#

Ihan kivahan tuo, tosin itselläni käytössä toisenlainen, jota on rukkailtu sen verran paljon, ettei sitä muuttamana aleta.

Hyvä vinkki kuitenkin :)

arcatan [22.01.2005 18:41:59]

#

$poisto = $_GET[id];

Toimiiko tuo oikeasti ilman valituksia?

mauza [22.01.2005 22:48:48]

#

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?

T.M. [23.01.2005 00:08:52]

#

Miksi poisto-nappi on yleisesti esillä?
Ei kauhean hyvä idea, kuka tahansa saattaa pirruuttaan mennä poistamaan linkit.

KuinKala [23.01.2005 00:54:29]

#

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 :)

KuinKala [23.01.2005 00:57:23]

#

lainaus:

Niin ja tietysti tietokantarakennetta kannattaisi vinkkiin laittaa mukaan?

Hyvä idea :D Unohdin ihan. Nyt on tuossa käytetty taulun luonti lause esillä.

cj [30.01.2005 17:04:48]

#

Ihan kait hyvä, mut ehkä toi mysql ei oo linkkilistaan mikään välttämätön.. No ei se tietenkää mitää haittaakkaa :D

nikkenakkerton [16.02.2005 10:13:36]

#

hieno ja toimiva koodi ;)

KuinKala [25.02.2005 14:01:27]

#

Pistin vielä pienen "tiedotuksen" käyttäjälle, jos linkkejä ei olekkaan listassa, niin se kertoo sen :)

aeolus [27.04.2005 22:22:49]

#

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

antti94 [09.07.2005 14:08:58]

#

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?


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta