Hallo,
ik heb een probleem.
Ik ben een beginnende PHPer en heb een probleem met een bepaald script dat nieuws artikelen aan de database toevoegd, waarna de database ze weer op de nieuws pagina laat zien.

Elk nieuwsartikel dat ik plaats heeft als "Datum toegevoegd" Januari 1970. Ik heb geprobeerd de fout op te lossen maar kom er niet achter hoe het zit. Het sorteren van het nieuws heb ik op ID gedaan en niet op Date.

HIER KAN JE ZIEN WAT IK BEDOEL: http://www.voetbalkampioenschap.nl/nieuws.php

Dit is de code:
<?php // dit is even om het tussen PHP tags te zetten in het forum, ik wist niet hoe het anders moest.

<HTML>
<HEAD>
<TITLE>Post News</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY>

<?php
if (isset($addnews)):
?>

<FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD=POST>
<p>Type the authors name here:<BR>
<input size="25" NAME="author">
<p>Type news title here:<BR>
<input size="25" NAME="newstitle">
<P>Type your news here:<BR>
<TEXTAREA NAME="newstext" ROWS=10 COLS=40 WRAP>
</TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="submitnews" VALUE="SUBMIT">
</FORM>

<?php
else:

$dbcnx = @mysql_connect(
"xxxxx", "xxxx", "xxxxx");
if (!$dbcnx) {
echo( "<P>Unable to connect to the " .
"database server at this time.</P>" );
exit();
}

// the news database
if (! @mysql_select_db("xxxxx") ) {
echo( "<P>Unable to locate the news " .
"database at this time.</P>" );
exit();
}

date1 = date("D M Y G");
if ("SUBMIT" == $submitnews) {
$sql = "INSERT INTO News SET " .
"NewsText='$newstext', " .
"author='$author', " .
"NewsTitle='$newstitle',".
"NewsDate='$date1'";
if (mysql_query($sql)) {
echo("<P>Your news has been added.</P>");
} else {
echo("<P>Error adding submitted news: " .
mysql_error() . "</P>");
}
}


if (isset($deletenews)) {
$sql = "DELETE FROM News " .
"WHERE ID=$deletenews";
if (mysql_query($sql)) {
echo("<P>The news has been deleted.</P>");
} else {
echo("<P>Error deleting news: " .
mysql_error() . "</P>");
}
}

echo("<P> Here are all the news " .
"in our database: </P>");

$result = mysql_query(
"SELECT ID, NewsText FROM News");
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}

while ( $row = mysql_fetch_array($result) ) {
$newsid = $row["ID"];
$newstext = $row["NewsText"];
echo("<P>$newstext " .
"<A HREF='$PHP_SELF?deletenews=$newsid'>" .
"Delete this News</A></P>");
}

echo("<P><A HREF='$PHP_SELF?addnews=1'>" .
"Add News!</A></P>");

endif;

?>


</BODY>
</HTML>

?>

Ik hoop dat jullie mij kunnen helpen met het probleem van mijn site dat hij de datum verkeerd neerzet.

Alvast bedankt,
Viktor
Je hebt je topic in de verkeerde categorie gedumpt, maar dat heb ik al gemeld. Dus een of andere mod zal hopelijk wel langs komen en dit topic een schop ergens anders naar toe geven.

De oplossing:
Gooi dit script weg.

Waarom?
- Structurele fouten.
- Oude dingen die niet meer werken.
- Beveiligingsgaten.
- Jou probleem.
- etc.

Als ik jou was zou ik nog even verder leren, dan kan je het zelf schrijven.
Het is alleen voor een schoolproject dus beveiliging is niet echt heel belangrijk.

Ik heb dit stuk php geintegreerd met een Single User log in systeem zodat als ik inlog ik alleen vanaf daar nieuws kan plaatsen. Ook heb ik register.php weggehaald zodat alleen IK accounts kan aanmaken en niemand anders. Dus met die beveiliging zit het wel goed.

Ik wil alleen weten hoe ik die datum kan fixen dan is het goed.
@Karl; er is geen melding ontvangen?

Verplaatst naar categorie PHP Algemeen.
Viktor Schelling op 04/02/2011 00:22:29

...
// dit is even om het tussen PHP tags te zetten in het forum, ik wist niet hoe het anders moest.


Zet je code tussen code tags:
[code][/code]


Ik moet de mensen boven mij gelijk geven. Gooi dit weg.
Je zegt dat dit voor school is.
Wat was de opdracht?
Gaat het misschien enkel over design, of gaat het om "Zorg dat het werkt; maakt niet uit hoe."?

Wat ze je op school moeten leren (daar heb je niet echt zelf iets over te zeggen ...), zijn de skills die je nodig hebt om zo-iets zelf te maken, maar dan deftig.
Hier ben je bezig met aanpassingen aan een slecht script.


Wat je vraag betreft:
1 januari 1970, middernacht (tijdszone: Greenwich) is het moment 0 voor de UNIX seconden.

Waar komt het op neer?
Dit:
<?php
echo time();
?>

geeft je exact het aantal seconden die verlopen zijn sinds dat moment 0.
Maar je gebruikt het niet zoals het hoort.

Wil je weten hoe dat werkt, vergeet dan even dit script en speel wat met tijdsberekeningen. Hier vind je wat documentatie en voorbeelden
http://php.net/manual/en/function.time.php

Dit is géén datum.
date1 = date("D M Y G");

Een datum is in YYYY-MM-DD format.

Gebruik NOW() in de query.
Dit script gaat ook niet werken omdat het in php 3 of 4 ofzo is geschreven.

Chris Horeweg op 04/02/2011 10:27:53

@Karl; er is geen melding ontvangen?

Verplaatst naar categorie PHP Algemeen.

Ik heb volgens mij ontzettend veel meldingen gedaan. Maar goed, ik geef weer de schuld aan freelancehulp.nl:
Wie kan Freelancehulp.nl omhoog gooien?.
Screenshot is gemaakt bij melding doen.

Reageren