geen correct post tijd (Opgelost)
keverineke - 26/10/2010 18:58
Lid
Ik heb een nieuwssysteem die de tijd van de post opneemt.
Als ik die dan vervolgens opvraag, dan klopt die niet...
Iemand een idee?
6 antwoorden
Gesponsorde links
Martijn - 26/10/2010 19:16
Crew PHP
Komt omdat vanwege t blauwe.
Zonder wat code kunnen wij niet zeggen wat je fout doet. Kan zijn dat je bij de date() functie een verkeerde letter gebruikt, kan zijn dat je t verkeerd opslaat.... Kan zoveel zijn
keverineke - 26/10/2010 19:23 (laatste wijziging 26/10/2010 19:24)
Lid
Hier een stukje van het script (nieuws toevoegen):
<?php
echo "<table border=\"0\" align=\"center\" width=\"100%\"><tr><td width=\"100%\" align=\"center\" class=\"top_td\"><div class=\"style1\"><b>Post nieuws</b></div></td></tr></table>\n";
$datum = date('j-n-Y');
$tijd = date('H:i:s');
if($_POST[Submit]){
if($_POST[titel] != "" AND $_POST[bericht] != "" AND $_POST[naam] != ""){
mysql_query("INSERT INTO nieuws (titel, naam, bericht, datum, tijd) VALUES ('$_POST[titel]', '$_POST[naam]', '$_POST[bericht]', '$datum', '$tijd' )");
echo"<div class=\"style1\"><br /><b>Beste ". $_POST["naam"] .", je nieuwsbericht is succesvol toegevoegd!<br />U wordt doorgestuurd, een ogenblikje geduld...</b></div>";
echo"<meta http-equiv=\"refresh\" content=\"3; url=../admin/admin_nieuws.php\" />";
}
else{
echo"<div class=\"style1\"><b><br />Je moet alle velden invullen!</b><br /><a href=\"javascript:history.back(1)\">< Ga terug!</a></div>";
}
}else{
echo "<table><tr><td align=\"left\"'><a href=\"javascript:history.back(1)\" class=\"style1\">< Ga terug!</a><br /><br /><br /></td></tr></table>\n";
echo "<form name=\"form\" method=\"post\" action=\"\"><table width=\"400\" border=\"0\" cellspacing=\"0\" class=\"style1\">
<tr>
<td width=\"50%\">Titel:</td>
</tr>
<tr>
<td width=\"50%\">
<input type=\"text\" name=\"titel\"><br />
</td>
</tr>
<tr>
<td width=\"50%\">Door:</td>
</tr>
<tr>
<td width=\"50%\">
<input type=\"text\" name=\"naam\"><br />
</td>
</tr>
<tr>
<td>Nieuws:</td>
</tr>
<tr>
<td>";
klik(); buttons();
echo "<textarea rows=5 cols=\"60\" name=\"bericht\"></textarea><br /><br />";
smileys();
echo "</td>
</tr>
<tr>
<td width=\"50%\">
<input type=\"submit\" name=\"Submit\" value=\"Toevoegen!\"></td>
</tr>
</table>
</form>";
}
?>
<?php
echo "<table border=\" 0\" align=\" center\" width=\" 100%\" ><tr><td width=\" 100%\" align=\" center\" class=\" top_td\" ><div class=\" style1\" ><b>Post nieuws</b></div></td></tr></table>\n " ;
if ( $_POST [ Submit] ) {
if ( $_POST [ titel] != "" AND $_POST [ bericht] != "" AND $_POST [ naam] != "" ) {
mysql_query ( "INSERT INTO nieuws (titel, naam, bericht, datum, tijd) VALUES ('$_POST[titel] ', '$_POST[naam] ', '$_POST[bericht] ', '$datum ', '$tijd ' )" ) ; echo "<div class=\" style1\" ><br /><b>Beste " . $_POST [ "naam" ] . ", je nieuwsbericht is succesvol toegevoegd!<br />U wordt doorgestuurd, een ogenblikje geduld...</b></div>" ; echo "<meta http-equiv=\" refresh\" content=\" 3; url=../admin/admin_nieuws.php\" />" ; }
else {
echo "<div class=\" style1\" ><b><br />Je moet alle velden invullen!</b><br /><a href=\" javascript:history.back(1)\" >< Ga terug!</a></div>" ; }
} else {
echo "<table><tr><td align=\" left\" '><a href=\" javascript:history.back(1)\" class=\" style1\" >< Ga terug!</a><br /><br /><br /></td></tr></table>\n " ; echo "<form name=\" form\" method=\" post\" action=\" \" ><table width=\" 400\" border=\" 0\" cellspacing=\" 0\" class=\" style1\" > <tr>
<td width=\" 50%\" >Titel:</td>
</tr>
<tr>
<td width=\" 50%\" >
<input type=\" text\" name=\" titel\" ><br />
</td>
</tr>
<tr>
<td width=\" 50%\" >Door:</td>
</tr>
<tr>
<td width=\" 50%\" >
<input type=\" text\" name=\" naam\" ><br />
</td>
</tr>
<tr>
<td>Nieuws:</td>
</tr>
<tr>
<td>" ;
klik( ) ; buttons( ) ;
echo "<textarea rows=5 cols=\" 60\" name=\" bericht\" ></textarea><br /><br />" ; smileys( ) ;
</tr>
<tr>
<td width=\" 50%\" >
<input type=\" submit\" name=\" Submit\" value=\" Toevoegen!\" ></td>
</tr>
</table>
</form>" ;
}
?>
In de database staat het veld tijd op varchar(20).
Martijn - 26/10/2010 20:31 (laatste wijziging 26/10/2010 20:34)
Crew PHP
ik heb niet gekeken naar de fout maar:
als je echo met single quotes doen, hoef je alle double quotes niet te escapen:
Dat maakt je code veel overzichtelijker Voor jou én anderen. Werkt ook andersom, je zou ook alle " kunnen vervangen door ' , maar " is 'netter/juister'.
Dan, je kunt prima html in php zetten, dat maakt t nog makkelijker lezen:
<?php
if ($var == "waarde") {echo "Een klein beetje tekst";}
else{
?>
<div class="voorbeeld>
Tekst
</div>
<?php
}
<?php
if ( $var == "waarde" ) { echo "Een klein beetje tekst" ; } else {
?>
<div class="voorbeeld>
Tekst
</div>
<?php
}
Is niets mee. (hier is de html gewoon zwart, in je eigen editor (als die highlight) kloppen de kleurtjes wel, dat is een bugje in dit highlight systeem)
Dan over je probleem, als ik jou was zou ik maar 1 kolom in je databsetabel gebruiken, en die datum of date ofzo noemen, met daar de waarde van time() in. Dan kun je dat later terug halen met
$datum = date('j-n-Y',$fetchUitDatabase['date']);
$tijd = date('H:i:s',$fetchUitDatabase['date']);
echo $tijd." ".$datum;
// of ook:
$tijdEnDatum = date('H:i:s j-n-Y',$fetchUitDatabase['date']);
echo $tijdEnDatum;
$datum = date ( 'j-n-Y' , $fetchUitDatabase [ 'date' ] ) ; $tijd = date ( 'H:i:s' , $fetchUitDatabase [ 'date' ] ) ; // of ook:
$tijdEnDatum = date ( 'H:i:s j-n-Y' , $fetchUitDatabase [ 'date' ] ) ;
Time geeft een aantal secondes aan vanaf een afgesrponken punt in tijd (since epoch, ergens in 1970). Je kunt er makkelijker mee rekenen dan met een varchar datum, omdat je er makkelijk dingen af kan halen.
Bijvoorbeeld een controle op spammen:
if($tijdUitDatabase+60 > time()){echo"Er zijn nog geen 60 seconden voorbij sinds de waarde die in de databse staat";}
if ( $tijdUitDatabase + 60 > time ( ) ) { echo "Er zijn nog geen 60 seconden voorbij sinds de waarde die in de databse staat" ; }
Waarschijnlijk gaat je tijd dan wel goed staan Als je en getal krijgt dat met 12 begint en dan n hoop cijfers, dan is dat getal het aantal secondes, dat klopt
keverineke - 26/10/2010 21:32
Lid
mijn host is 000webhost, en dat is niet dezelfde tijdzone. Daarom moest er dit bij:
date_default_timezone_set("Europe/Amsterdam");
date_default_timezone_set( "Europe/Amsterdam" ) ;
Toch bedankt! ;)
Gesponsorde links
Dit onderwerp is gesloten .