Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Lær at laver et link system


Idag vil jeg lære jer andre at lave et link system.
Link systemet bliver ikke specielt avanceret, bare navn på link, URL, og en lille kommentar omkring linket. Vi skal bruge 2 PHP filer:
1. links.php
2. links.opret.php
Og selvfølgelig en database :)

Det skal lige siges at scriptet IKKE er testet.

Databasen kan se sådan her ud:
  1. CREATE TABLE `links` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `navn` tinytext NOT NULL,
  4.   `url` tinytext NOT NULL,
  5.   `kommentar` text NOT NULL,
  6.   PRIMARY KEY  (`id`)
  7. );
Men de kan selvfølgelig også se anderledes ud.
Men jeg har valgt at gøre sådan idag.

Nu til kodningen.
Vi starter med links.opret.php.

#links.opret.php
  1. <?php
  2. $host = "DIN HOST";
  3. $user = "DIN BRUGER";
  4. $pass = "DIT KODEORD";
  5. $db = "DIN DATABASE (NORMALT DET SAMME SOM DIT BRUGERNAVN)";
  6. mysql_connect("$host", "$user", "$pass"); // Connecter til databasen, det skal tit gøre. Husk det!
  7. mysql_select_db("$db"); // Databasen.
  8. mysql_close(); // Man kan også bare include en config.php, så skal man ikke skrive dette hver gang.
  9. ?>
  10. <?php
  11. $navn = addslashes($_POST[navn]); // Benyt ALTID addslashes() når du indsætter i databasen, og stripslashes() når du udskriver fra databasen.
  12. $url = addslashes($_POST[url]); // $_REQUEST kan også bruges, men i dette tilfælde bruger vi bare $_POST.
  13. $kommentar = addslashes($_POST[kommentar]);
  14. if(empty($navn) || empty($url) || empty($kommentar)){ // Hvis felterne er tomme skal PHP ikke udfører mysql_query(), hvis de ikke er, så skal den
  15. }else{ // Ellers
  16. mysql_query("INSERT INTO links (navn, url, kommentar) VALUES ("$navn", "$url", "$kommentar")"); // Vi indsætter navn, url og kommentar i databasen.
  17. print("Linket er tilføjet"); // Viser den her tekst hvis der er blevet indsat i databasen.
  18. } // Afslutter if() funktionen.
  19. ?>
  20. <form action="<?=$PHP_SELF;?>" method="post"> // <?=$PHP_SELF;?> er bare den side man er på.
  21. Navn på link:<br /><input type="text" name="navn"><br />
  22. URL:<br /><input type="text" name="url"><br />
  23. Lille kommentar:<br /><textarea name="kommentar"></textarea><br />
  24. <input type="submit" value="Opret link"></form>
Godt. Nu har vi fået lavet os en formel som indsætter i vores mysql database.
Men nu vil vi gerne have brugeren til at se linket. Så det gør vi :).
Her er filen (kommentare i filen).
#links.php
  1. <?php
  2. $host = "DIN HOST";
  3. $user = "DIN BRUGER";
  4. $pass = "DIT KODEORD";
  5. $db = "DIN DATABASE (NORMALT DET SAMME SOM DIT BRUGERNAVN)";
  6. mysql_connect("$host", "$user", "$pass"); // Connecter til databasen, det skal tit gøre. Husk det!
  7. mysql_select_db("$db"); // Databasen.
  8. mysql_close(); // Man kan også bare include en config.php, så skal man ikke skrive dette hver gang.
  9. ?>
  10. <?php
  11. $svar = mysql_query("SELECT * FROM links ORDER BY id DESC"); // Vi henter alt fra vores database med den samme funktion som vi indsatte med.
  12. while($row = mysql_fetch_array($svar)){ // $row er vores array for databasen.
  13. echo "<a href="$row[url]" target="_blank">"; echo stripslashes($row[navn]); echo "</a>"; // Der skal altid benyttes backslash() før et " tegn.
  14. echo "<br>";
  15. echo stripslashes($row[kommentar]); // Husk at benytte stripslashes() når du udskriver fra en database, gør det til en vane ;)
  16. echo "<br><br>";
  17. } // Lukker for while() løkken. Luk den det antal du bruger if(), while(), do() eller for() løkker.
  18. ?>
Sådan, nu har vi et link system. Det virker, må vi da håbe ;).
Der er masser af kommentare i scriptet.
Du må gerne spørge om hjælp.

Når, nu vil jeg desværre slutte af. Nu har jeg jo lært dig hvordan man kan lave et link system.
Jeg har vist dig hvad du skal bruge når du indsætter i en database, og når du udskriver fra en database.
Men mest af alt håber jeg du har lært noget. Det skal lige siges at hvis du bare copy/paster teksten, lærer du nada.
Smid gerne en kommentar :)

Skriver nok en anden på et tidspunkt.
Ses på grillen // Razo / Mikkel.
Sidst redigeret 21:46 - 09/12/2005
Oprettet af:

PHP

Point modtaget: 0

Rate:
21:24 09/12/2005

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Ingen kommentare?
Oprettet af:
  Mail
16:46 10/12/2005
Husk at tjek om magic quotes er slået til før du bruger addslashes.
og det ville se mere overskueligt ud, hvis du gjorde sådan her:
if(empty($var) osv osv osv{
form her
} else {
indsæt i db
}

<?=$PHP_SELF;?> >> det kræver at din udbyder tillader short-tags.
eller skal du bruge <? echo $PHP_SELF; ?>..

husk ALTID at sæte mysql_error(); på dine query"s!!
ellers kan brugerne få fat i brugernavn og kodeord osv til dine mysql databaser hvis du laver en forkert fejl! (kan man sige en forkert fejl? ;o))

men så vidt jeg kan se så virker scriptet ikke fordi du lukker forbindelsen til din mysql database før du insætter i den..
du skal jo først lukke forbindelsen efter du har brugt den :S

jeg har ikke læst scriptet så grundigt igennem men eller ser det meget fornuftigt ud. :)
Oprettet af:
  Mail
17:38 10/12/2005
Brugte kun mysql_close(); for at vise at den kan bruges
Oprettet af:
  Mail
17:51 10/12/2005
det var da en misvisende måde at vise det på.
hvis folk bruger den på den måde som du har gjort her, så virker deres scripts jo ikke..
Oprettet af:
  Mail
17:52 11/12/2005
Virker scriptet ikke eller hvad?
Oprettet af:
  Mail
14:36 16/12/2005
Jo eller nej, har ændre en masse på det.
Og jeg har fået det til at virke.
Oprettet af:
  Mail
17:15 12/01/2006
Fint ;) Måske skal du lige læse overskriften igennem igen :)
Oprettet af:
  Mail
17:29 16/09/2006
Frækt fejl i overskriften, mener da der burde stå "Lær at lave et link system" ikke "Lær at laver et link system" Men det ser meget fint ud 4/5
Oprettet af:
  Mail
15:28 14/12/2006
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes