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.
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.
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?
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.
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.
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.
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.
<?php
session_start();
include('dbc.php');
error_reporting(E_ALL);
$query = mysql_query("SELECT * FROM advertenties WHERE maker_id = '".$_SESSION['id']."'");
$row = mysql_fetch_assoc($query);
echo "De advertentie van gebruiker ";
echo $row['maker_id'];//even testen voor de id
$nu = time();
$timestamp = $row['datum'];
if((time() - $timestamp) >= 3600)
{
mysql_query("UPDATE advertenties SET datum = NOW() WHERE maker_id = '".$_SESSION['id']."'");//update datum
echo ' is om hoog gezet.<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
}
else
{
echo 'kan nu nog niet updaten.<META HTTP-EQUIV="refresh" content="6; URL=gelogd2.php?id='. $_SESSION['id'] .'">';//doorsturen
}
?>
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.
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.
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.