Hilfe bei Event Kalender

joseline

Grünschnabel
Hallo zusammen,

Vorweg: Ich hab überhaupt keine Ahnung von PHP - bin ein reiner Freizeit HTML Coder. Ich plane eine Seite, auf der man Events eintragen und anschauen kann. Dazu habe ich mir ein freies Script runtergeladen und komme nun nicht weiter. Der Fehler tritt auf, wenn man versucht einen neuen Event einzutragen.

Der Kalender liegt hier:
http://www.thegalaxy-sl.com/en/events/calendar/calendar.php

Die gesamte Kalender Datei wie sie auf dem Server ist, könnt ihr hier runterladen und anschauen:
http://www.thegalaxy-sl.com/en/events/calendar.zip

Bitte, bitte, bitte hilfe bevor ich den Kram auf dem Fenster schmeiss. Danke Danke Danke
 
Habe es dann doch mal geschafft, den Fehler zu lesen

<b>Fatal error</b>: Invalid string value field during add: event_month in <b>/mnt/web1/21/46/51596046/htdocs/en/events/calendar/ffdb.inc.php</b> on line <b>524</b><br />
Leider ist mir nicht so ganz klar, was der Programmierer da gemacht hat. Der Bereich sieht wie folgt aus. (aus ffdb.inc.php)

PHP:
/*!
    * @function add
    * @abstract Adds an entry to the database
    * @param record  array - record to add to the database
    * @result bool - true on success, false on failure
    */
   function add(&$record)
   {
      if (!$this->isopen)
      {
         user_error("Database not open.", E_USER_ERROR);
         return false;
      }

      // Verify record as compared to the schema
      foreach($this->fields as $key => $type)
      {
         // We don't mind if they include a FFDB_INT_AUTOINC field,
         // as we determine its value in any case.
         if ($type == FFDB_INT_AUTOINC)
            continue;

         // Ensure they have included an entry for each record field
         if (!$this->key_exists_array($key, $record))
         {
            user_error("Missing field during add: $key", E_USER_ERROR);
            return false;
         }

         // Verify the type
         switch($type)
         {
            case FFDB_INT:
               if (!is_int($record[$key]))
               {
                  user_error(
                     "Invalid int value field during add: $key", 
                     E_USER_ERROR
                  );
                  return false;
               }
               break;
            
            case FFDB_STRING:
               if (!is_string($record[$key]))
               {
                  user_error(
                     "Invalid string value field during add: $key", 
                     E_USER_ERROR
                  );
                  return false;
               }
               break;
 // usw für weitere cases....
Definiert wird FFDB String wie folgt:
PHP:
/*!
 * @defined FFDB_STRING
 * @discussion Flat File DataBase string type
 */
define("FFDB_STRING", 1);
der Methode add() wird der Parameter $record übergeben, der wiederum ein Schema der Datei - DB enthält. (aus calAdd.php)

PHP:
$schema = array(
      array("event_key", FFDB_INT, "key"),
      array("event_name", FFDB_STRING),
      array("event_description", FFDB_STRING),
      array("event_submitted_by", FFDB_STRING),
      array("event_month", FFDB_STRING),  // <<
      array("event_day", FFDB_INT),
      array("event_year", FFDB_INT)
   );
Wie man sieht, wird der als Fehler bemängelte event_month als FFDB_STRING deklariert. Schaut man sich aber das Script weiter an

PHP:
$record["event_submitted_by"] = $submitted;
   $record["event_month"] = $month;
   list($record["event_day"]) = sscanf($day, "%d"); // string -> int
   list($record["event_year"]) = sscanf($year, "%d"); // string -> int
Sollte dies auch als STRING durchgehen, vielleicht führt PHP hier eine automatische Typumwandlung durch?!

Wird dir Joseline vielleicht nicht weiterhelfen. Ich komm hier aber auch gerade nicht weiter. Aber eventuell gibts ja noch jemand anders hier, der das Script schonmal benutzt hat (woher haste es genau?) oder ein anderer hat nen geistesblitz.
 
Ohne das Ganze zu kennen, würd ichs da doch mal mit
PHP:
$record["event_month"] = (string)$month;
probieren :-(

Wenn es einen String haben will, soll es ihn halt kriegen :-)
 
Hallo,

erstmal vielen, vielen Dank für Eure schnellen antworten.

@ Mairhofer: Du hattest recht... hilft mir leider nicht viel weiter :( Den Kalender hab ich von hier: http://ffdb-php.sourceforge.net/

@ Sven Mintel: habs ausprobiert und nun gibt er mir ne neue Fehlermeldung:
<b>Fatal error</b>: Invalid int value field during add: event_day in <b>/mnt/web1/21/46/51596046/htdocs/en/events/calendar/ffdb.inc.php</b> on line <b>513</b><br />



Vielleicht sollte ich mich doch endlich mal mit mySQL auseinander setzen und mir nen vernünftigen Kalender suchen. Sobald ich eine Fehlermeldung beseitigt habe, krieg ich scheinbar die nächste .. die da oben wäre jetzt die Dritte von dem Script :(
 
Zurück