login  Naam:   Wachtwoord: 
Registreer je!
 Forum

geen correct post tijd (Opgelost)

Offline keverineke - 26/10/2010 18:58
Avatar van keverinekeLid 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
Offline Martijn - 26/10/2010 19:16
Avatar van Martijn 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
Offline keverineke - 26/10/2010 19:23 (laatste wijziging 26/10/2010 19:24)
Avatar van keverineke Lid Hier een stukje van het script (nieuws toevoegen):

  1. <?php
  2.  
  3. 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";
  4.  
  5. $datum = date('j-n-Y');
  6. $tijd = date('H:i:s');
  7.  
  8.  
  9. if($_POST[Submit]){
  10. if($_POST[titel] != "" AND $_POST[bericht] != "" AND $_POST[naam] != ""){
  11. mysql_query("INSERT INTO nieuws (titel, naam, bericht, datum, tijd) VALUES ('$_POST[titel]', '$_POST[naam]', '$_POST[bericht]', '$datum', '$tijd' )");
  12. echo"<div class=\"style1\"><br /><b>Beste ". $_POST["naam"] .", je nieuwsbericht is succesvol toegevoegd!<br />U wordt doorgestuurd, een ogenblikje geduld...</b></div>";
  13. echo"<meta http-equiv=\"refresh\" content=\"3; url=../admin/admin_nieuws.php\" />";
  14. }
  15. else{
  16. echo"<div class=\"style1\"><b><br />Je moet alle velden invullen!</b><br /><a href=\"javascript:history.back(1)\">&lt; Ga terug!</a></div>";
  17. }
  18. }else{
  19. echo "<table><tr><td align=\"left\"'><a href=\"javascript:history.back(1)\" class=\"style1\">&lt; Ga terug!</a><br /><br /><br /></td></tr></table>\n";
  20. echo "<form name=\"form\" method=\"post\" action=\"\"><table width=\"400\" border=\"0\" cellspacing=\"0\" class=\"style1\">
  21. <tr>
  22. <td width=\"50%\">Titel:</td>
  23. </tr>
  24. <tr>
  25. <td width=\"50%\">
  26. <input type=\"text\" name=\"titel\"><br />
  27. </td>
  28. </tr>
  29. <tr>
  30. <td width=\"50%\">Door:</td>
  31. </tr>
  32. <tr>
  33. <td width=\"50%\">
  34. <input type=\"text\" name=\"naam\"><br />
  35. </td>
  36. </tr>
  37. <tr>
  38. <td>Nieuws:</td>
  39. </tr>
  40. <tr>
  41. <td>";
  42. klik(); buttons();
  43. echo "<textarea rows=5 cols=\"60\" name=\"bericht\"></textarea><br /><br />";
  44. smileys();
  45. echo "</td>
  46. </tr>
  47. <tr>
  48. <td width=\"50%\">
  49. <input type=\"submit\" name=\"Submit\" value=\"Toevoegen!\"></td>
  50. </tr>
  51. </table>
  52. </form>";
  53. }
  54. ?>


In de database staat het veld tijd op varchar(20).
Offline Martijn - 26/10/2010 20:31 (laatste wijziging 26/10/2010 20:34)
Avatar van Martijn 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:
  1. echo '<td width="50%">';
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:

  1. <?php
  2. if ($var == "waarde") {echo "Een klein beetje tekst";}
  3. else{
  4. ?>
  5. <div class="voorbeeld>
  6. Tekst
  7. </div>
  8. <?php
  9. }

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
  1. $datum = date('j-n-Y',$fetchUitDatabase['date']);
  2. $tijd = date('H:i:s',$fetchUitDatabase['date']);
  3. echo $tijd." ".$datum;
  4. // of ook:
  5. $tijdEnDatum = date('H:i:s j-n-Y',$fetchUitDatabase['date']);
  6. echo $tijdEnDatum;


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:
  1. 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 
Offline keverineke - 26/10/2010 21:32
Avatar van keverineke Lid mijn host is 000webhost, en dat is niet dezelfde tijdzone. Daarom moest er dit bij:

  1. date_default_timezone_set("Europe/Amsterdam");


Toch bedankt! ;)
Offline Martijn - 26/10/2010 21:40
Avatar van Martijn Crew PHP zucht. Dan doe je dat, later kom je wel terug als je systeem lastig begint te worden 
Offline keverineke - 26/10/2010 21:48
Avatar van keverineke Lid maar ik heb het veranderd he 

die $datum enzo...

thanks ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.232s