login  Naam:   Wachtwoord: 
Registreer je!
 Forum

60 minuten wachten (Opgelost)

Offline willie - 14/03/2009 21:11
Avatar van willie0 Haai,

Ik heb hier een stukje script, voor het updaten van een advertentie.
De adverteerder, moet 60 min.wachten voor hij weer kan updaten.
Het script update de database goed, maar het gedeelte met de timestamp werkt niet echt.
  1. <?php
  2.  
  3.  
  4. include('dbc.php');
  5.  
  6.  
  7. $query = mysql_query("SELECT * FROM advertenties WHERE maker_id = '".$_SESSION['id']."'");
  8.  
  9. echo $id ;//even testen voor de id
  10.  
  11. $nu = time();
  12. $timestamp = $id['datum'];
  13.  
  14. if((time() - $timestamp) >= 3600)
  15.  
  16. {
  17.  
  18. mysql_query("UPDATE advertenties SET datum = NOW() WHERE maker_id = '".$_SESSION['id']."'");//update datum
  19. echo 'geupdate<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
  20.  
  21. }
  22.  
  23. else
  24.  
  25. {
  26.  
  27. echo 'nog geen tijd<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
  28.  
  29. }
  30.  
  31. ?>

Wie weet wat hier fout aan is.

21 antwoorden

Gesponsorde links
Offline Koen - 14/03/2009 21:18
Avatar van Koen PHP expert Wat probeer je te bereiken en wat werkt er niet aan je code?
Offline willie - 14/03/2009 21:22 (laatste wijziging 14/03/2009 21:22)
Avatar van willie 0 Ik wil dat een adverteerder, niet meer dan 1 keer per (nu ingesteld als uur)zoveel uur zijn advertentie kan omhoog gooien.

Het script, update de tabel wel goed, maar het gedeelte waarmee
de tijd wordt berekend, werkt niet.
Dus kan de adverteerder kan continu zijn advertentie omhoog gooien.
Offline Koen - 14/03/2009 21:25
Avatar van Koen PHP expert ben je $id = mysql_fetch_assoc($query); niet vergeten op lijn 10?
Offline Jas_per_post - 14/03/2009 21:29
Avatar van Jas_per_post JS interesse Wat sliphead zegt, en dan ook nog dat de datum uit de database ook nog een keer door strtotime moet voordat je er zo mee kunt rekenen.
Offline willie - 14/03/2009 21:31 (laatste wijziging 14/03/2009 21:36)
Avatar van willie 0
sliphead schreef:
ben je $id = mysql_fetch_assoc($query); niet vergeten op lijn 10?

Als ik dat doe, geeft die de advertentie id niet weer, bij het updaten.
En het timestamp gedeelte werkt daar ook niet mee.
-------------------------------------------------
Hoe krijg ik dat voor elkaar.
De in de database staat DATUM ook op timestamp ingestelt.
Dus moet die dat toch gewoon herkennen?
Offline Jas_per_post - 14/03/2009 21:35
Avatar van Jas_per_post JS interesse dan maak je er $row = mysql_fetch_assoc($query) van en vervang je $id['datum'] door $row['datum']
Offline willie - 14/03/2009 21:44
Avatar van willie 0 Helaas, werkt niet krijg ik een http//500 fout.
Offline Jas_per_post - 14/03/2009 22:02
Avatar van Jas_per_post JS interesse Bij mij doet ie het anders prima. Een http 500 kan door de server komen ipv jou, en anders heb ik hem ook wel gezien bij een infinite loop, maar die zit zeker niet in dit stukje code.
Offline willie - 14/03/2009 22:08 (laatste wijziging 14/03/2009 22:12)
Avatar van willie 0 Ik werk hier via localhost, heeft het daar mee te maken ?
Ik heb hier zelf een servertje staan, maar ik zit bij tele2 dus ik kan niet mijn werk online zien.
Offline Koen - 14/03/2009 22:15
Avatar van Koen PHP expert Gebruik dan een andere poort dan 80 en forward die correct? 
Offline willie - 14/03/2009 22:17
Avatar van willie 0 Heb ik algeprobeert, maar bij tele2 is maar heelweinig mogelijk.
Ik kan dus bvb wel een site thuis laten draaien, maar kan van uit thuis niet mijn eigen site zien.
Offline Jas_per_post - 14/03/2009 22:18
Avatar van Jas_per_post JS interesse Dan kun je via clickherefree.com even een gratis host zoeken om het op te testen
Offline roberini - 14/03/2009 22:24 (laatste wijziging 14/03/2009 22:24)
Avatar van roberini HTML beginner Tele2 is inderdaad heel irritant. Heb het zelf ook, de tele2 router blokkeerd poort 80, en 8080 werkt niet als je localhost wil draaien. Het liefst zou ik gewoon die tele2 router zo het raam uit willen smijten en...

ehmm

ff ontopic: Je kan het beste een gratis host zoeken, en als je het echt localhost wil draaien, dan ben ik bang dat je een andere router nodig hebt.

Want als het goed is tapt je router je poorten af. Verbeter me hierop als dit niet zo is.
Offline willie - 14/03/2009 22:33 (laatste wijziging 14/03/2009 22:41)
Avatar van willie 0
Jas_per_post schreef:
Dan kun je via clickherefree.com even een gratis host zoeken om het op te testen


Maar werkt de timestamp gedeelte bij jou dus wel?

En ja, tele2 is echt erg, en geeft haast nergens ondersteuning op.
---------------------------------------------
Ik heb er nu dit van gemaakt
  1. <?php
  2.  
  3.  
  4. include('dbc.php');
  5.  
  6.  
  7. $query = mysql_query("SELECT * FROM advertenties WHERE maker_id = '".$_SESSION['id']."'");
  8.  
  9. $row = mysql_fetch_assoc($query);
  10. echo "De advertentie van gebruiker ";
  11. echo $row['maker_id'];//even testen voor de id
  12.  
  13. $nu = time();
  14. $timestamp = $row['datum'];
  15.  
  16. if((time() - $timestamp) >= 3600)
  17.  
  18. {
  19.  
  20. mysql_query("UPDATE advertenties SET datum = NOW() WHERE maker_id = '".$_SESSION['id']."'");//update datum
  21. echo ' is om hoog gezet.<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
  22.  
  23. }
  24.  
  25. else
  26.  
  27. {
  28.  
  29. echo 'kan nu nog niet updaten.<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
  30.  
  31. }
  32.  
  33. ?>

Het geeft geen fout melding, maar het omhoog zetten gaat gewoon door.
Offline vinTage - 14/03/2009 22:41
Avatar van vinTage Nieuw lid offtopic

Ik neem aan dat tele2 het dus verbied om webservers op te draaien?
Dat gebeurd namelijk ook bij telenet, deze blokkeren inderdaad poort 80 en 8080, maar dit is heel simpel op te lossen om in je httpd.conf de listen op bijvoorbeeld 5151 te zetten, je server bereik je dan door naar
h ttp://ipnr:listen
te surfen.

h ttp:123.123.12.12:5151

Je zult dan in je rooter ook nog die poort moeten forwarden (of hoe dat ook mag heten) maar als het goed is, gebruikt msn ook 5151 en zal deze poort (mss) al opens staan.
Ofmn lulverhaaltje over die msn poort echt waar is laat ik in het midden, maar dat heb ik iig ooit gehoord en ik draai gewoon een servertje wat voor iedereen bereikbaar is.
Offline willie - 14/03/2009 22:44
Avatar van willie 0 Ik kan wel een server draaien bij tele2, alleen kan ik dus niets zien online.
Daarom kan ik dus niet online testen,dan zou ik bij de buren telkens mijn site moeten testen.
Offline vinTage - 14/03/2009 22:46
Avatar van vinTage Nieuw lid Waarom kan je niets zien online ?
Surf gewoon naar h ttp://jouw-ip:5151 en hoppa?
Offline willie - 14/03/2009 22:47 (laatste wijziging 14/03/2009 22:52)
Avatar van willie 0 oke, gaat het even proberen.
---------------------------

Gaat dus echt niet hoor bij tele2
Offline vinTage - 14/03/2009 22:49
Avatar van vinTage Nieuw lid Wel eerst de stappen doorvoeren die ik in de post daarboven deed he (EN je server reboten)
Offline Jas_per_post - 14/03/2009 22:51
Avatar van Jas_per_post JS interesse Ik heb jouw script genomen, bovenaan $_SESSION['id'] = 1; geschreven en de include vervangen door een mysql_connect en een mysql_select_db statement, na regel 11 een nieuwe regel toegevoegd: "$row = mysql_fetch_assoc($query);", echo $id; uitgecomment, en van "$timestamp = $row['datum'];" "$timestamp = strtotime($row['datum']);" gemaakt en het werkt bij mij.

De database die ik heb gebruikt:

  1. --
  2. -- Database: `gmh_temp`
  3. --
  4.  
  5. -- --------------------------------------------------------
  6.  
  7. --
  8. -- Table structure for table `advertenties`
  9. --
  10.  
  11. CREATE TABLE IF NOT EXISTS `advertenties` (
  12. `datum` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  13. `maker_id` int(11) NOT NULL DEFAULT '0'
  14. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  15.  
  16. --
  17. -- Dumping data for table `advertenties`
  18. --
  19.  
  20. INSERT INTO `advertenties` (`datum`, `maker_id`) VALUES
  21. ('2009-03-14 14:46:44', 1);
Offline willie - 14/03/2009 23:02
Avatar van willie 0 Ja het werkt nu, eindelijk.
kan ik weer verder met mijn random script.

bedankt jasper
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s