Fehler: mktime() expects parameter 6 to be long

Support für weitere IT-Themenbereiche
Antworten
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Fehler: mktime() expects parameter 6 to be long

Beitrag von Holger »

Hi,

wir benutzen ein vCard-Script von Belchior Foundry (gibt es nicht mehr).
Nach dem Umzug auf einen neuen Server bekomme ich:
Warning: mktime() expects parameter 6 to be long, string given in /var/www/vhosts/maskinisten.net/httpdocs/vykort/include/functions.inc.php on line 438

Zeile 438 ist

Code: Alles auswählen

	$sec_pass = mktime() - mktime(0,0,0, $month, $day, $year);
in der Funktion

Code: Alles auswählen

function get_day_after($card_date) {
	list ($year, $month, $day) = split ('[/.-]', $card_date);
	$sec_pass = mktime() - mktime(0,0,0, $month, $day, $year);
	$day_pass = floor( $sec_pass / 86400); // % div modulo
	return $day_pass;
}
Kann ich das irgendwie wegbekommen?
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was steckt denn in $year drinnen? Das darf nur maximal 4-stellig sein, bzw. kleiner als 2049 sein (glaub ich).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Dies ist kein phpBB-Mod.
Es ist ein externes vCard-skript.

Wie kann ich genauere Angaben machen?
Wie finde ich heraus, was in $year drinsteckt?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

[quote="Holger";p="87787"]Dies ist kein phpBB-Mod.
Es ist ein externes vCard-skript.[/quote]
Sorry...

[quote="Holger";p="87787"]Wie kann ich genauere Angaben machen?
Wie finde ich heraus, was in $year drinsteckt?[/quote]
Ich kenne das Script nicht, aber irgendwo her muss ja ein Wert dort reinkommen.
Am besten mal mit echo $year;exit; debuggen, dann erwährt man ja mehr...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Wo muss ich das reinpacken? Direkt nach der Funktion?
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Vorher, sonst würde nur der Fehler angezeigt, nicht aber der Inhalt von $year ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Geht nicht, dann lässt sich das vCard-Skript gar nicht mehr aufrufen, weisse Seite!

Sie sieht es jetzt aus:

Code: Alles auswählen

echo $year;
exit;

function get_day_after($card_date) {
	list ($year, $month, $day) = split ('[/.-]', $card_date);
	$sec_pass = mktime() - mktime(0,0,0, $month, $day, $year);
	$day_pass = floor( $sec_pass / 86400); // % div modulo
	return $day_pass;
}
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Doch nicht vor die Funktion, sondern vor dem ersten Wert $year innerhalb der Funktíon ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Oh!
Also so:

Code: Alles auswählen

function get_day_after($card_date) {
echo $year; 
exit;
   list ($year, $month, $day) = split ('[/.-]', $card_date); 
   $sec_pass = mktime() - mktime(0,0,0, $month, $day, $year); 
   $day_pass = floor( $sec_pass / 86400); // % div modulo 
   return $day_pass; 
}
??????????????
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So wäre besser, da in Deinem Beispiel $year noch klar leer ist ;)

Code: Alles auswählen

function get_day_after($card_date) {
   list ($year, $month, $day) = split ('[/.-]', $card_date); 
echo $year; 
exit;
   $sec_pass = mktime() - mktime(0,0,0, $month, $day, $year); 
   $day_pass = floor( $sec_pass / 86400); // % div modulo 
   return $day_pass; 
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

2003
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ach! Jetzt sehe ich auch, was Du gemacht hast:

Code: Alles auswählen

mktime()
funktioniert so nicht, denn die Funktion braucht immer Parameter. Nimm hier statt dessen einfach

Code: Alles auswählen

time()
.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Iiiiiich???? ;)
Ne, also, ja, wie auch immer ... auf dem alten Server hat es funktioniert.
Auf dem Neuen nicht.
Ich werde Dein Tip mal testen! Danke!
Antworten