Avatar billede fjammi Nybegynder
02. marts 2003 - 21:13 Der er 39 kommentarer og
1 løsning

Dagens tip

Hvordan laver jeg dette script om så der kun vises et tip hver dag. Altså den ene dag skal der vises et tip og den næste dag et ny osv. Nu skifter den tip hver gang man opdater...

Scriptet:

<?
global $tip; // Så kan du også bruge denne variabel udenfor while-løkken.
$dbh=mysql_connect ("host", "bruger", "xxxxxx") or die ('I cannot connect to the database.');
mysql_select_db ("database");
$tip_query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 1");
while ($tip_array = mysql_fetch_array($tip_query))
{
$tip = $tip_array[Tips];
echo ("$tip");
}

?>
Avatar billede gladmhensk Nybegynder
02. marts 2003 - 21:25 #1
ændr LIMIT 1 til LIMIT 0,1
Avatar billede benoit Nybegynder
02. marts 2003 - 21:27 #2
<?
if (!isset($tipervist)) {
setcookie("tipervist","Yep!",time()+60*60*24);
Echo "Hvis Tip";
// Hvis tip
}
?>

Læg koden her som det allerførste.
:-)
Avatar billede fjammi Nybegynder
02. marts 2003 - 21:31 #3
>benoit
jeg kan ikke få det til at virke, den skifter stadig når jeg opdater
Avatar billede benoit Nybegynder
02. marts 2003 - 21:51 #4
Her virker den (APACHE). jeg kan sende dig filen?

Jeg har lavet en version der holder i 5 sekunder, isf. et døgn...
Avatar billede fjammi Nybegynder
02. marts 2003 - 21:52 #5
ok
admin@jul-for-alle.dk
Avatar billede fjammi Nybegynder
02. marts 2003 - 21:59 #6
præcis hvor skal jeg indsætte din kode?

Sådan her
<?
if (!isset($tipervist)) {
setcookie("tipervist","Yep!",time()+60*60*24);
Echo "Hvis Tip";
// Hvis tip
}
?>
<?
global $tip; // Så kan du også bruge denne variabel udenfor while-løkken.
$dbh=mysql_connect ("host", "bruger", "xxxxxx") or die ('I cannot connect to the database.');
mysql_select_db ("database");
$tip_query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 1");
while ($tip_array = mysql_fetch_array($tip_query))
{
$tip = $tip_array[Tips];
echo ("$tip");
}

?>

eller hvordan???
Avatar billede benoit Nybegynder
02. marts 2003 - 22:05 #7
<?
if (!isset($tipervist)) setcookie("tipervist","Yep!",time()+10);
?>
<html>
<body>
<? if (!isset($tipervist)) {// herfra er det din kode (som jeg ikke har testet)
global $tip; // Så kan du også bruge denne variabel udenfor while-løkken.
$dbh=mysql_connect ("host", "bruger", "xxxxxx") or die ('I cannot connect to the database.');
mysql_select_db ("database");
$tip_query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 1");
while ($tip_array = mysql_fetch_array($tip_query))
{
$tip = $tip_array[Tips];
echo ("$tip");
}

} // Slut cookie test

Sådan vil jeg tro.
Når du sætter en cookie må der intet være før, ikke engang et mellemrum. Så tror php nemlig at det er headeren.
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:14 #8
nu viser den overhovedet ik noget
Avatar billede benoit Nybegynder
02. marts 2003 - 22:21 #9
Er cookien allerede sat? Så kan du først se den imorgen... :-)
Hvis det er tilfældet skal du lige skrive en setcookie("tipervist","Yep!", time()-3600); i linie 2. Gem det, opdater et par gange, fjern den så igen.
Avatar billede schaefner Juniormester
02. marts 2003 - 22:27 #10
Prøv den her. Utestet:

if($_COOKIE['erset'] != $dagsdato) {
    setcookie ("erset", $dagsdato, time()+86400);
} else {
    mysql_connect ("host", "bruger", "xxxxxx")
    mysql_select_db ("database");
    $query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 0,1");
    $tip = mysql_fetch_array($query));
    $dagenstip = "$tip[Tips]";
?>
<html>
<head></head>

<body>

<?php
echo "$dagenstip";
?>

</body>
</html>
Avatar billede schaefner Juniormester
02. marts 2003 - 22:27 #11
Der mangler lige det øverste:

<?
$dagsdato = date("Ymd"); // ååååmmdd F.eks 20030302
if($_COOKIE['erset'] != $dagsdato) {
    setcookie ("erset", $dagsdato, time()+86400);
} else {
    mysql_connect ("host", "bruger", "xxxxxx")
    mysql_select_db ("database");
    $query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 0,1");
    $tip = mysql_fetch_array($query));
    $dagenstip = "$tip[Tips]";
?>
<html>
<head></head>

<body>

<?php
echo "$dagenstip";
?>

</body>
</html>
Avatar billede schaefner Juniormester
02. marts 2003 - 22:30 #12
burde vise et nyt tip så snart dagen skifter uden at du skal vente på at cookie rent faktisk udløber som du skal med benoit's
Avatar billede schaefner Juniormester
02. marts 2003 - 22:32 #13
Der iøvrogt en lille fejl her:
mysql_connect ("host", "bruger", "xxxxxx")
Skal selvfølgelig være:
mysql_connect ("host", "bruger", "xxxxxx");
Avatar billede schaefner Juniormester
02. marts 2003 - 22:34 #14
Endnu en af slagsen:
$tip = mysql_fetch_array($query));
skal være:
$tip = mysql_fetch_array($query);

;)
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:36 #15
den sider der er fejl i linie 22
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:36 #16
sider=siger
Avatar billede benoit Nybegynder
02. marts 2003 - 22:38 #17
Schaefner>Lidt mere rafineret! :-)
Mit synes desuden også kun at virke på Apache. Kan du klare den?
Avatar billede schaefner Juniormester
02. marts 2003 - 22:39 #18
prøver lige at rette alle fejlene så den rent faktisk også virker ;)
Avatar billede schaefner Juniormester
02. marts 2003 - 22:48 #19
Nu burde den være der:

<?
$dagsdato = date("Ymd"); // ååååmmdd F.eks 20030302
if($_COOKIE['erset'] != $dagsdato) {
    setcookie ("erset", $dagsdato, time()+86400);
    $cookiersatidag = "on";
}
?>
<html>
<head></head>

<body>

<?php
if($cookiersatidag == "on") {
    mysql_connect ("", "", "");
    mysql_select_db ("");
    $query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 0,1");
    $row = mysql_fetch_array($query);
    echo "$row[Tips]";
}
?>

</body>
</html>
Avatar billede schaefner Juniormester
02. marts 2003 - 22:51 #20
På den måde den er lavet nu vil man ikke se noget tip efter du først har set det en gang. Prøver lige at lave det så den viser "det gamle tip" indtil det bliver en ny dag :)
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:52 #21
ok men den viser overhovedet ikke noget http://www.friserverplads.dk/fjammi/joke.php
skal jeg indtaste Dagsdato?
Avatar billede schaefner Juniormester
02. marts 2003 - 22:54 #22
jeg kunne fint se dagens tip, men nu da cookien er sat, så kan jeg ikke mere :)
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:55 #23
også på det link der står ovenfor???
Avatar billede schaefner Juniormester
02. marts 2003 - 22:55 #24
jep
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:56 #25
ja ok det ku jeg også da jeg prøvede på en anden computer...
Avatar billede schaefner Juniormester
02. marts 2003 - 22:58 #26
laver den lige så den gemmer det gamle tip, så man bliver ved med at se det indtil det bliver en ny dag :)
Avatar billede fjammi Nybegynder
02. marts 2003 - 22:59 #27
ok det lyder godt
Avatar billede schaefner Juniormester
02. marts 2003 - 23:09 #28
Burde virke:

<?
$dagsdato = date("Ymd"); // ååååmmdd F.eks 20030302
if($_COOKIE['set_tippet'] != $dagsdato) {
    // Henter dagens tip
    mysql_connect ("localhost","","");
    mysql_select_db ("");
    $query = mysql_query("SELECT * FROM Tips ORDER BY RAND() LIMIT 0,1");
    $row = mysql_fetch_array($query);
    $tippet = $row[Tips];
    // Sætter cookien
    setcookie ("set_tippet", $dagsdato, time()+86400);
    setcookie ("tippet", $tippet, time()+86400);
}
?>
<html>
<head></head>

<body>

<b>Dagens tip:</b><br>
<?php
if(!empty($tippet)) {
    echo "$tippet";
} else {
    echo $_COOKIE['tippet'];
}
?>
</body>
</html>
Avatar billede fjammi Nybegynder
02. marts 2003 - 23:13 #29
Avatar billede fjammi Nybegynder
02. marts 2003 - 23:16 #30
jo det gør den. Det var igen min fejl:-)
Avatar billede fjammi Nybegynder
02. marts 2003 - 23:20 #31
skifter den så tip nu her kl 24 eller går der 24 timer fra man ser tip 1 til tip 2 kommer???
Avatar billede schaefner Juniormester
02. marts 2003 - 23:21 #32
den skifter her klokken 24, efter serverens ur, så der er ikke sikkert det passer helt nøjagtigt med dit ;)
Avatar billede fjammi Nybegynder
02. marts 2003 - 23:23 #33
ok mange tak for hjælpen....
Avatar billede fjammi Nybegynder
02. marts 2003 - 23:24 #34
du får dine point når jeg lige sikre mig at den nu også skrifter efter kl 24:-)
Avatar billede schaefner Juniormester
02. marts 2003 - 23:25 #35
helt iorden ;)
Avatar billede fjammi Nybegynder
03. marts 2003 - 10:03 #36
på de to computere som jeg har tjekket det på, er det stadig det samme tip der bliver vist
Avatar billede schaefner Juniormester
03. marts 2003 - 14:04 #37
Jeg må indrømme at den rand() ikke er så god, men denne her burde sørge for at det samme tip ikke bliver valgt tilfældig lige efter det har været vist:

// Henter dagens tip
    mysql_connect ("localhost","","");
    mysql_select_db ("");
    $query = mysql_query("SELECT * FROM Tips WHERE Tips !='$_COOKIE[tippet]' ORDER BY RAND() LIMIT 0,1");
    $row = mysql_fetch_array($query);
    $tippet = $row[Tips];
    // Sætter cookien
    setcookie ("set_tippet", $dagsdato, time()+86400);
    setcookie ("tippet", $tippet, time()+86400);
}
?>
<html>
<head></head>

<body>

<b>Dagens tip:</b><br>
<?php
if(!empty($tippet)) {
    echo "$tippet";
} else {
    echo $_COOKIE['tippet'];
}
?>
</body>
</html>
Avatar billede fjammi Nybegynder
03. marts 2003 - 16:58 #38
ok jeg tjekker lige om det så er skiftet i morgen...
Avatar billede fjammi Nybegynder
04. marts 2003 - 00:10 #39
nu virker det. Tak for hjælpen. nu skal du nok få dine point
Avatar billede schaefner Juniormester
04. marts 2003 - 17:19 #40
var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester