Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Lav din helt egen tekst scroller!

Forord

Lær hvordan du kan lave din helt egen tekst scroller, som dine gæster kan tilføje beskeder til!

Indholdsfortegnelse

1.0   Artiklen
   1.1   Hvad lærer jeg?
   1.2   Hvem er artiklen for?
   1.3   Hvad kræver det af mig?
2.0   Lets rock and roll
   2.1   MySQL
      2.1.1   Vores "taktik"
      2.1.2   Vores tabel
   2.2   PHP
      2.2.1   Filoversigt
      2.2.2   config.php (Konfigurationer)
      2.2.3   addMessage.php (Tilføj besked)
      2.2.4   index.php (Udskrivning af beskeder)
3.0   SMS Scroller?
4.0   Demo og andet gøjl

1.0  Artiklen

Hej alle sammen :)
Jeg er sgu kommet på den skøre idé, at vise hvordan, at man kan lave et lille script, som kan vise noget tekst i en marquee.
Så synes jeg også, at det kunne være sjovt, at den fx. kun blev vist i 10 minutter eller noget, men nu kan I ihvertfald kigge med, hvis i lyster.

1.1  Hvad lærer jeg?

Du lærer lidt om hvordan, at du kan arbejde med SQL, og få udtrukket noget tekst, som kun vises i x antal tid.
Du kan også bruge det her til, at lave en SMS Scroller på din hjemmeside, men det kræver dog, at du har mulighed for, at få sådan noget skidt hostet et sted.
Men det vil jeg selvfølgelig komme ind på senere i artiklen!

1.2  Hvem er artiklen for?

Den er for dig, som gerne vil lære lidt mere om at udtrække ting fra ens database, og hvordan vi kan lave nogle krav, for hvad den skal hente.
Artiklen er nok ikke særlig spændende for dem, som bare har helt styr på PHP & MySQL, men hvis du er nybegynder, så er det måske lige noget for dig.

1.3  Hvad kræver det af mig?

Det eneste, som jeg umiddelbart kan sige at det kræver, er nok, at du har styr på PHP Syntaksen, da jeg ikke på den måde beskriver grund ting.

2.0  Lets rock and roll

2.1  MySQL

2.1.1  Vores "taktik"

Vi laver vores database tabel, som vi kalder for textmessages (Tekstbeskeder), som kommer til at indeholde alle vores beskeder, som skal vises.
Vi skal have et felt kaldet id, som vi kan bruge, som vores primære nøgle.
Og så skal vi ellers have et timestamp (Tidsstempel), som vi skal bruge til at tjekke, hvornår personen nu har tilføjet beskeden, og til sidst men ikke mindst message, som skal have indholdet af vores output til vores marquee.

2.1.2  Vores tabel

Her er hvordan vores CREATE ser ud, når vi skal have fx. PhpMyAdmin til, at kunne forstå det, som vi nu laver.

CREATE TABLE `textmessages` (
`id` int(18) NOT NULL auto_increment,
`timestamp` text NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id`)
) ;


Det skal bare indsættes i databasen, og så har du tabellerne klar.

2.2  PHP

2.2.1  Filoversigt

Vi kommer til at have med 3 filer at gøre, og det bliver:
config.php
Her kan du rette følgende informationer:
Database (Host, Brugernavn, Password og Database)
Antal minutter beskeder skal vises
Hvad som skal skille beskederne fra hinanden
(Info: 7 linjer)

index.php
Filen hvor selve beskederne vises, og linket til tilføj siden.
Her skal du ikke rigtigt rette noget, men det er selvfølgelig muligt, hvis du har "erfaring" nok til det.
(Info: 47 linjer)

addMessage.php
Filen hvor du tilføjer beskeder.
Her skal der heller ikke rigtigt rettes noget, men det er selvfølgelig muligt, hvis man ønsker det.
(Info: ´48 linjer)

2.2.2  config.php (Konfigurationer)

Kopier venligst ikke fra kodeboksende, men brug download linket i bunden!
  1. <?php
  2. mysql_connect("HOST","USER","PASS");
  3. mysql_select_db("DB");

  4. $numerMinutes    = 5;        // Antal minutter før beskeden forsvinder (Min. 1)
  5. $splitText    = " | ";    //Tekst som splitter de forskellige beskeder fra hinanden
  6. ?>

Linjeforklaring
Linjenummer - Forklaring

2-3 - Tilslutning til database
5 - Antal minutter før besked forsvinder
6 - Teksten som splitter beskederne

Nu har du sådan set din config fil!

2.2.3  addMessage.php (Tilføj besked)

Kopier venligst ikke fra kodeboksende, men brug download linket i bunden!
  1. <?php
  2. include("config.php");

  3. if ( $_GET['do'] != "add" )
  4. {
  5.     $thisState    = "Tilføj en besked";
  6.     $stateNumber    = 1;
  7. }
  8. else
  9. {
  10.     $thisMessage    = htmlentities(mysql_real_escape_string($_POST['message']));
  11.     $thisState    = "Tilføj en besked : Afslut";
  12.     $stateNumber    = 2;
  13. }
  14. ?>
  15. <html>
  16. <head>
  17.     <title>Tekst Scroller : <?=$thisState?></title>
  18. </head>
  19. <body>

  20. <?php
  21. if ( $stateNumber == 2 )
  22. {
  23.     if( !empty($thisMessage) )
  24.     {
  25.         mysql_query("INSERT INTO `textmessages` (`timestamp`, `message`) VALUES ('" . time() . "', '" . $thisMessage . "')");
  26.         echo "Tillykke, beskeden er nu indsat!<br>
  27.         <a href=\"index.php\">« Tilbage til forsiden</a>";
  28.     }
  29.     else
  30.     {
  31.         echo "Der opstod desværre en fejl!";
  32.     }
  33. }
  34. else
  35. {
  36.     echo "<form action=\"?do=add\" method=\"POST\">
  37.     Din besked:<br>
  38.     <textarea name=\"message\" style=\"width: 250px; height: 200px;\">Skriv venligst din besked her!</textarea><br>
  39.     <input type=\"submit\" value=\"Indsæt\">
  40.     </form>";
  41. }
  42. ?>

  43. </body>
  44. </html>

Linjeforklaring
Linjenummer - Forklaring

2 - Inkludere vores konfigurations fil
4 - Tjekker om vi har postet en besked
6-7 - Sætter variablerne, hvis man ikke har postet besked
11-13 - Sætter variablerne, hvis man har postet besked
23 - Tjekker om man har postet en besked
25 - Tjekker om man har skrevet noget i ens besked
27-29 - Tilføjer beskeden til databasen, og udskriver en "Tillykke du klarede det" besked
33 - Udskriver på skærmen, hvis der er opstået en fejl
38-42 - Formluaren hvor man skal indsætte den tekst, som vi skal have postet til databasen

Det var så tilføj besked siden

2.2.4  index.php (Udskrivning af beskeder)

Kopier venligst ikke fra kodeboksende, men brug download linket i bunden!
  1. <?php
  2. include("config.php");
  3. ?>
  4. <html>
  5. <head>
  6.     <title>Tekst Scroller</title>
  7. </head>
  8. <body>

  9. <?php
  10. $timeStamp    = time();
  11. $selectStamp    = $timeStamp - (60*$numerMinutes);

  12. $selectMessages    = mysql_query("SELECT `message`, `timestamp` FROM `textmessages` WHERE `timestamp` > '" . $selectStamp . "'") or die('Der opstod desværre en fejl: <b>' . mysql_error() . '</b><br>Du kan skrive på rowl angående dine fejl!');
  13. $countMessages    = mysql_num_rows($selectMessages);

  14. if( $countMessages )
  15. {
  16.     $thisMessage    = 1;

  17.     echo "Beskeder:\n<marquee>";

  18.     while( $messageData = mysql_fetch_assoc($selectMessages) )
  19.     {
  20.         echo "(" . date("H:i", $messageData['timestamp']) . "): <b>" . stripslashes($messageData['message']) . "</b>";

  21.         if ( $thisMessage != $countMessages )
  22.         {
  23.             echo $splitText;
  24.         }

  25.         $thisMessage++;
  26.     }

  27.     echo "</marquee>
  28.     <br>
  29.     <a href=\"addMessage.php\">Tilføj din egen besked her!</a>";
  30. }
  31. else
  32. {
  33.     echo "<center>Der er ikke postet nogle beskeder!<br>Men bliv selv den første! <a href=\"addMessage.php\" title=\"Tilføj din egen besked nu!\">KLIK HER!</a></center>";
  34. }
  35. ?>

  36. </body>
  37. </html>

Linjeforklaring
Linjenummer - Forklaring

2 - Inkludere vores konfigurations fil
10-11 - Sætter variablerne til timestamps (Tidsstempler)
13-14 - Henter beskederne fra databasen, og tæller antallet
16 - Tjekker om der er tilføjet nogle beskeder
18 - Sætter en variabel, som vi bruger til, at tjekke om det er den sidste besked i løkken.
22 - Starter vores WHILE løkke, som skal udskrive beskederne fra databasen
24 - Udskriver beskeden + giver en tidsangivelse for, hvornår beskeden er tilføjet
26-29 - Tjekker om beskeden er den sidste, og hvis ikke, så udskriver den "split beskeden", som skiller de forskellige fra hinanden
31 - Plusser variablen, som holder styr på hvilket besked id vi er på
34-36 - Slutter vores marquee tag

Tillykke, hvis du har fulgt artiklen korrekt, så har du dig nu en tekst scroller!

3.0  SMS Scroller?

Du har faktisk mulighed for at lave det her om til en SMS scroller, men det kræver somsagt, at du har adgang til sådan en service, og det er der heldigvis råd for.

Hvis det er et firma, så kan du benytte servicen stadel, men der findes masser, og du kan bare søge på google efter det!

Du kan f.eks. søge på SMS Gateway

4.0  Demo og andet gøjl

Jeg har selvfølgelig væres så venligt at smide en demo op, og den kan i bare prøve løs på!
Link: Nikolajpetersen : Tekst Scroller

Og så har jeg selvfølgelig også zip'et filerne, så du nemt kan få dem!
MEN INDEN DU BARE TÆNKER PÅ AT DONWLOADE, SÅ LÆS LIGE ARTIKLEN!
Når jeg klikker på dette link, acceptere jeg samtidig, at jeg har læst hele artiklen, og prøvet mig frem!

Fortsæt venligst en god dag!
OBS: Har du opdaget noget sjusket? Så skriv lige en kommentar, så vi kan få det ordnet!
Sidst redigeret 20:43 12/05/2008
Oprettet af:

PHP

Point modtaget: 150

Rate:
17:26 08/05/2008

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.
Wow, tak. :-)
Oprettet af:
  Mail
16:22 14/05/2008
Np have fun ;D
Oprettet af:
  Mail
18:50 14/05/2008
God artikel. Det eneste problem jeg kan se, er at <marquee> funktionen ikke er valid xhtml hvis man altså går op i det :P
I sådan et tilfælde må man benytte javascript :)
Oprettet af:
  Mail
22:12 16/05/2008
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes