Avatar billede krea Praktikant
29. august 2006 - 17:37 Der er 28 kommentarer og
1 løsning

datofunktion i script i phpbb forum

Jeg skal have rettet if sætningen (scriptet skal indsættes i en template i et phpbb forum)

<SCRIPT language="JavaScript">
if(registreringsdato ældre end 30 dage) [eventuelt: før "1. august 2006"]
{

}
else
{

}
</SCRIPT>
Avatar billede mcgoat Nybegynder
29. august 2006 - 18:07 #1
der skal du sq nok have fat på noget serverside(php/asp) der kan finde ud af tilmeldingsdatoen fra databasen
Avatar billede mcgoat Nybegynder
29. august 2006 - 18:11 #2
Javascript er jo clientside mens php/asp er serverside.

Og din computer(client) kan jo ikke vide hvornår du er registreret, det er kun serversiden der kan det fra databasen
Avatar billede thesurfer Nybegynder
29. august 2006 - 18:11 #3
Du kan godt lave IF-sætningen i JavaScript, men du skal hente "registreringsdato" fra databasen(?) via ASP, PHP eller ligende..
Avatar billede krea Praktikant
29. august 2006 - 18:21 #4
Ok - Jeg fik følgende forslag på et andet forum men det genererer bare intet output ?


<?php

// basic phpBB init:
define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Init phpBB user
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

// Start phpBB header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);


// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}

// phpBB Footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Avatar billede thesurfer Nybegynder
29. august 2006 - 18:34 #5
Jeg vil skyde på, at det går galt i denne linie:

$userdata = session_pagestart($user_ip, PAGE_INDEX);

Hvis $userdata ikke får en værdi, vil den skrive "Ingen brugerdata?"
Avatar billede krea Praktikant
29. august 2006 - 18:43 #6
Han siger det er testet: http://www.phpbb2.dk/forum/viewtopic.php?p=50038#50038

Jeg får som sagt intet output overhovedet...
Avatar billede thesurfer Nybegynder
29. august 2006 - 19:05 #7
Problemet med indlægget http://www.phpbb2.dk/forum/viewtopic.php?p=50038#50044 er, at du blader JavaScript og PHP, uden først at udskrive fra PHP og til JavaSript..

For at http://www.phpbb2.dk/forum/viewtopic.php?p=50038#50044 skulle virke korrekt, skulle det se sådan ud:

<SCRIPT language="JavaScript">

document.write("<? echo $userdata['user_regdate'] ?>");

</SCRIPT>

Du skal huske på, at der vil opstå fejl, hvis $userdata['user_regdate'] indeholder "-tegnet, da JavaScript bruger det (i mit eksempel) til at define en streng..

Hvis du har "-tegnet i $userdata['user_regdate'], men ikke '-tegnet, skal det bare se sådan ud:

<SCRIPT language="JavaScript">

document.write('<? echo $userdata['user_regdate'] ?>');

</SCRIPT>

Ellers skal det se sådan ud (erstat '-tegnet med \'):

document.write('<? echo str_replace("'", "\'", $userdata['user_regdate'] ?>'));

Jeg ved dog ikke, om det er korrekt sat op i PHP koden..
Avatar billede thesurfer Nybegynder
29. august 2006 - 19:06 #8
Rettelse:

document.write('<? echo str_replace("'", "\'", $userdata['user_regdate']) ?>');
Avatar billede krea Praktikant
29. august 2006 - 19:17 #9
For mig er det egentlig ligemeget om det laves i php eller java da jeg forstår begge sprog lige lidt...Lige nu prøver jeg på at forstå hvilken del af php koden der skal lægges hvor hen... I første omgang er det ok bare at skrive datoen ud som en test...
Avatar billede thesurfer Nybegynder
29. august 2006 - 19:27 #10
Din PHP kode burde udskrive datoen her:

// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}

Men som jeg sagde.. hvis $userdata['user_regdate'] er tom/ikke indeholder noget, vil den udskrive "Ingen brugerdata?"..

Her er en test:

Indsæt de her 3 linier, lige over "// Contents here":

$mintest = "abc";
if ($userdata['user_regdate'] != '') { $mintest = $userdata['user_regdate'] };
echo "Værdien af mintest er: " . $mintest;


Det skal se sådan ud:

$mintest = "abc";
if ($userdata['user_regdate'] != '') { $mintest = $userdata['user_regdate'] };
echo "Værdien af mintest er: " . $mintest;


// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}
Avatar billede thesurfer Nybegynder
29. august 2006 - 19:28 #11
Den skulle så gerne skrive "Værdien af mintest er: x", hvor x er indholdet af variablen $mintest.


Hvad skriver den til dig?
Avatar billede krea Praktikant
29. august 2006 - 19:39 #12
1. Jeg fik at vide at jeg skulle oprette en .php fil i roden af forumet med den php kode jeg postede oprindeligt. Det har jeg gjort - ved ikke om det var alt koden jeg skulle poste i den fil ? Vel ikke den del af koden som udskriver ?? Men jeg har altså postet alt koden. Da jeg ikke har fået noget andet at vide.

2. Jeg postede koden:
$mintest = "abc";
if ($userdata['user_regdate'] != '') { $mintest = $userdata['user_regdate'] };
echo "Værdien af mintest er: " . $mintest;


// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}

i toppen af en .tpl fil som du sagde.

output var koden i tekstforum... (sikker på der ikke skal et eller andet uden om koden for at fortælle at det er php kode og ikke tekst ?? )
Avatar billede thesurfer Nybegynder
29. august 2006 - 19:54 #13
A)
http://www.phpbb2.dk/forum/viewtopic.php?p=50038#50064 er samme forklaring som 29/08-2006 19:05:33

B)
Du har ikke givet noget svar på 29/08-2006 19:27:38: Hvad skriver den til dig?
Avatar billede krea Praktikant
29. august 2006 - 20:03 #14
B) Har jeg ikke svaret på det under 2) ? Den skriver bare koden som tekst....
Avatar billede krea Praktikant
29. august 2006 - 20:06 #15
De templates hvor man poster koden er vist i html format og man skal sikkert angive på en eller anden måde at det er php kode man poster...
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:15 #16
Ahh.. my bad..

Jeg regnede med, at du vidste at man altid skal putte PHP kode i mellem <? og ?>.

Det er nok det allerførste man ser/lærer..


Hele PHP koden ser sådan ud:

<?php

// basic phpBB init:
define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Init phpBB user
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

// Start phpBB header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$mintest = "abc";
if ($userdata['user_regdate'] != '') { $mintest = $userdata['user_regdate'] };
echo "Værdien af mintest er: " . $mintest;


// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}

// phpBB Footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Avatar billede krea Praktikant
29. august 2006 - 20:20 #17
ja du må bære over med mig. Hvis jeg poster den kode du poster i forgående post i en tpl. fil i mit forum sker der intet.

Du er sikker på det ikke har noget at gøre med at jeg har postet noget forkert i den .php fil et forkert sted ?
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:29 #18
Får du ikke nogen fejlmeddelelser?
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:31 #19
Når du loader urlen, kig lige i kildekoden.. Står PHP koden der?
Avatar billede krea Praktikant
29. august 2006 - 20:35 #20
Ja alt koden står i starten af .tpl filen helt sikkert. Ingen fejlmeddelelser overhovedet.

Derudover har jeg en fil jeg har kaldt dato.php jeg har uploaded i roden.

den indeholder:

<?php

// basic phpBB init:
define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Init phpBB user
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

// Start phpBB header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);


// Contents here
if ($userdata['user_regdate'] != '' )
{
echo $userdata['user_regdate'];
}
else
{
echo "Ingen brugerdata?";
}

// phpBB Footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:36 #21
Hvad sker der hvis du kalder dato.php filen, i stedet for den normale fil?
Avatar billede krea Praktikant
29. august 2006 - 20:38 #22
hvordan kalder jeg den ?
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:39 #23
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:39 #24
kalder/loader/indlæser.. :-)
Avatar billede krea Praktikant
29. august 2006 - 20:41 #25
ja så kommer der rigtig nok et tal...det er vist det der unix format med antal sekunder siden 1970...
Avatar billede krea Praktikant
29. august 2006 - 20:44 #26
Det er ikke sådan at man skal ind og definere at dato.php skal "kaldes" i en eller anden fil - eller det gør systemet måske automatisk når man logger sig på....
Avatar billede thesurfer Nybegynder
29. august 2006 - 20:44 #27
Så virker koden fint nok.. det er så noget andet galt..

Jeg tror ikke at man bare kan oprette en php fil, og få den automatisk inkluderet i template..

Jeg tror at man skal pege på filen, eller også skal koden indsættes i en template fil (husk at lave backup)..


Men anywayz.. jeg kan se at du har oprette spørgsmålet over i PHP kategorien.
Det er, ifølge Ekspertens regler, ikke tilladte at åbne samme spørgsmål åben flere gange (samtidigt), så du bliver nødt til at lukke et af dem.

Da spørgsmålet i PHP kategorien nok er mere relevant, i forhold til dit problem, er det nok bedste at du lukker dette spørgsmål (i JavaScript kategorien).


Ved lukning af spørgsmål:
Husk at MARKERE dit navn i boksen til venstre, og klikke på ACCEPTER-knappen, efter at du har lagt et SVAR.
Avatar billede krea Praktikant
29. august 2006 - 20:47 #28
ok så lukker jeg her vi ses i den anden tråd...
Avatar billede mclemens Nybegynder
30. august 2006 - 00:40 #29
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