/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
loadfunktion?
Fra : Filip Hjermind


Dato : 27-12-06 10:25

Hejsa... jeg har et administrator site, hvor man kan tilmelde en
e-mail adresse, ved at trykke gem. Så bliver denne e-mail adresse
via php og mySql gemt i databasen. Problemet er så bare at e-mail
adressen ikke dukker op med det samme på clientens skærm, fordi
den først skal gemmes og hentes i databasen. Er der en funktion
som kan sige at siden loader indtil den nye indtastning i
databasen er klar til at blive hentet?

Mvh. Filip

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Erik Ginnerskov (27-12-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 27-12-06 14:17

Filip Hjermind wrote:
> Er der en funktion
> som kan sige at siden loader indtil den nye indtastning i
> databasen er klar til at blive hentet?

Kan dette ikke gøre det:

<?php
header ("Location: samme_sidenavn.php");
?>

Altså, du gennemtvinger en genindlæsning af siden og dermed en fornyet
datahentning fra databasen.

--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Dan Storm (27-12-2006)
Kommentar
Fra : Dan Storm


Dato : 27-12-06 16:21

Erik Ginnerskov skrev:
> Kan dette ikke gøre det:
>
> <?php
> header ("Location: samme_sidenavn.php");
> ?>
>
> Altså, du gennemtvinger en genindlæsning af siden og dermed en fornyet
> datahentning fra databasen.
>

Det eneste du opnår på den måde er en kontinuerlig løkke af den header
hvilket gør at siden blot timer ud på et tidspunkt. Hvis jeg da har
forstået dit forslag korrekt. :)

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Erik Ginnerskov (28-12-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 28-12-06 02:55

Dan Storm wrote:

> Det eneste du opnår på den måde er en kontinuerlig løkke af den header
> hvilket gør at siden blot timer ud på et tidspunkt.

Jeg er bange for, at du har ret. Det, jeg tænkte på, fungerer ved nærmere
eftertanke med et kald til et eksternt php-script, som foretager den ønskede
indskrivning i databasen, afsluttende med et returkald til siden, som så
bliver opdateret.

--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Dan Storm (28-12-2006)
Kommentar
Fra : Dan Storm


Dato : 28-12-06 17:30

Erik Ginnerskov skrev:
> Jeg er bange for, at du har ret. Det, jeg tænkte på, fungerer ved nærmere
> eftertanke med et kald til et eksternt php-script, som foretager den ønskede
> indskrivning i databasen, afsluttende med et returkald til siden, som så
> bliver opdateret.

Ja, man kunne også gøre det på den måde. Dog, ville det ikke være
besværligt at gøre headeren betinget i samme script:

if($_POST['gemmail']))
{
   // database indskrivning
   header('Location: '.$_SERVER['PHP_SELF'];
}
else
{
   // database udtræk
}

På den måde kan man også slippe for at lave to scripts.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Dan Storm (27-12-2006)
Kommentar
Fra : Dan Storm


Dato : 27-12-06 16:24

Filip Hjermind skrev:
> Hejsa... jeg har et administrator site, hvor man kan tilmelde en
> e-mail adresse, ved at trykke gem. Så bliver denne e-mail adresse
> via php og mySql gemt i databasen. Problemet er så bare at e-mail
> adressen ikke dukker op med det samme på clientens skærm, fordi
> den først skal gemmes og hentes i databasen. Er der en funktion
> som kan sige at siden loader indtil den nye indtastning i
> databasen er klar til at blive hentet?
>
> Mvh. Filip
>

Jeg er ikke sikker på jeg forstår dit problem?
Du har adgang til en administrations-del af et site hvor det er muligt
at tilmelde en emailadresse? Hvordan kan klienten have noget med det at
gøre?

Ikke desto mindre så er det naturligvis muligt at gemme og hente samme
række i databasen i samme fil.

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Kasper Johansen (28-12-2006)
Kommentar
Fra : Kasper Johansen


Dato : 28-12-06 12:42

Filip Hjermind skrev:
> Problemet er så bare at e-mail
> adressen ikke dukker op med det samme på clientens skærm, fordi
> den først skal gemmes og hentes i databasen. Er der en funktion
> som kan sige at siden loader indtil den nye indtastning i
> databasen er klar til at blive hentet?

Hej Filip.

Vær flink at bruge lidt flere linjeskift, næste gang du skriver

Hvis jeg har forstået dit problem korrekt, så består det i, at du først
gemmer emailen, efter at email-addresserne er blevet vist for brugeren?

Hvis det er problemet, så bør du (som Erik Ginnerskov også skriver)
først gemme dataen, og derefter "redirecte" brugeren til samme side igen
(så undgår du også dobbelt-post-problematikken, hvis brugeren trykker F5).

Det er illustreret via kode her:
<?
if ($_GET["valg"] == "gememail"){
//Gem data i databasen.
mysql_query(...) or die(mysql_error());

//Redirect brugeren til siden igen.
header("Location: vis_emails.php");

//Afbryd indlæsningen af resten af siden (brugeren bliver
redirected, så han ser det ikke anyways).
exit();
}

$f_gemails = mysql_query(...) or die(mysql_error());
while($d_gemails = mysql_fetch_assoc($f_gemails)){
UdskrivEmail($d_gemails);
}
?>
<form method="post" action="vis_emails.php?valg=gememail">
Gem din email: <input type="text" name="texemail" />
<br />
<input type="submit" value="Gem" />
</form>


Hvis header() giver dig problemer, så har du nok sendt noget HTML, inden
header() bliver kørt. Du kan derfor bruge JavaScript i stedet. Udskift
derved "header(...)" med følgende:
<?
if ($_GET["valg"] == "gememail"){
...

//Redirect brugeren til siden igen.
?>
<script type="text/javascript">
location.href = "vis_emails.php";
</script>
<?

...
}
?>


--
Med venlig hilsen
Kasper Johansen

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste