php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2005, 22:21  
Gast
 
Beiträge: n/a
Standard checkdate Fehler

Hi,

checkdate gibt
Code:
Warning:  checkdate() expects parameter 2 to be long, string given in /home/.../create_account.php on line 80
aus, wenn man sich vertippt und z.B. 2e.12.2008 eingibt.

Kann mir das mal jemand erklären?


Viele Grüße

Andreas
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2005, 22:29  
Gast
 
Beiträge: n/a
Standard

Ich glaube, dass ist, weil die Funktion keine Strings akzeptiert.

siehe Definition: http://php.benscom.com/manual/en/function.checkdate.php

PHP-Code:
bool checkdate int monthint dayint year 
Das heisst, du kannst als Parameter nur int-Werte geben. Da "2e" aber ein String ist, wird das nicht klappen.

Lösung:
Überprüfe zuerst, ob es sich bei den Werten um Zahlen handelt und führe dann erst checkdate aus.

Gruss

Stefan
 
Alt 16.10.2005, 22:39  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von stimhof
Lösung:
Überprüfe zuerst, ob es sich bei den Werten um Zahlen handelt und führe dann erst checkdate aus.
Hi,

daran hab ich auch schon gedacht...
kannst Du mir sagen wie bzw. mit welcher Funktion ich das mache?
so?
PHP-Code:
<?php
if (is_numeric($var)){
      if (
checkdate($var)){ ...

?>
Viele Grüße

Andreas
 
Alt 16.10.2005, 23:02  
Gast
 
Beiträge: n/a
Standard

Ich denke, dass könnte klappen. Probiers mal aus!
Mir fällt da zwar noch ein:

PHP-Code:
is_int() 
Diese Funktion wäre eigentlich noch besser als is_numeric. Nehmen wir an, der Benutzer gibt eine Kommazahl ein. Dann gibt is_nummeric true aus und is_int false. Und wir wollen ja nicht, dass der Benutzer z.B. beim Monat 8.5 eingibt.

Gruss

Stefan
 
Alt 16.10.2005, 23:04  
Gast
 
Beiträge: n/a
Standard

Die Eingaben aus einem HTML Formular oder überhaupt alles, was per POST/GET/COOKIE ankommt, sind Zeichenketten. Da liefert is_int immer false
PHP-Code:
<?php
echo is_int('2') ? 'is_int' '!is_int';
?>
Nutzt also nicht viel an dieser Stelle.
 
Alt 16.10.2005, 23:05  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von stimhof
Ich denke, dass könnte klappen. Probiers mal aus!
Mir fällt da zwar noch ein:

PHP-Code:
is_int() 
Diese Funktion wäre eigentlich noch besser als is_numeric. Nehmen wir an, der Benutzer gibt eine Kommazahl ein. Dann gibt is_nummeric true aus und is_int false. Und wir wollen ja nicht, dass der Benutzer z.B. beim Monat 8.5 eingibt.

Gruss

Stefan
Vielen Dank!

Ich wünsch Dir noch nen schönen Abend...

Viele Grüße

Andreas
 
Alt 16.10.2005, 23:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Bruchpilot
Die Eingaben aus einem HTML Formular oder überhaupt alles, was per POST/GET/COOKIE ankommt, sind Zeichenketten. Da liefert is_int immer false
PHP-Code:
<?php
echo is_int('2') ? 'is_int' '!is_int';
?>
Nutzt also nicht viel an dieser Stelle.
Hi,

also doch is_numeric? oder gibts da noch was anderes?


Viele Grüße

Andreas
 
Alt 16.10.2005, 23:30  
Gast
 
Beiträge: n/a
Standard

Nein, das geht ja wohl auch nicht, wegen den Kommazahlen.

Es gibt da schon noch eine Möglichkeit, das ganze rauszufinden. Das sind die Regex (Reguläre Ausdrücke).
Ich bin aber nicht so der Profi in denen. (Besser gesagt, ich hasse das Thema. )
Wenn du Zeit hast, kannst du ja das mal durchlesen:
http://tut.php-q.net/regex.html

Dann könnte man das Ganze mit der preg_match() - Funktion machen. Das sähe dann etwa so aus:
(Dort wo jetzt REGEX steht, würde dann der richtige Regex kommen.)

PHP-Code:
<?php

    
if(preg_match('REGEX'$var)) {
        echo 
"Geklappt!";
    } else {
        echo
"Nicht geklapt!";
    }

?>
Aber wie gesagt, in diesem Thema bin ich nicht so der Hirsch. Tut mir leid.

Gruss

Stefan
 
Alt 16.10.2005, 23:35  
Gast
 
Beiträge: n/a
Standard

ohje, Zeit, ... eigentlich nie und immer viel zu Wenig :wink:
Ich dank Dir auf jeden Fall vielmals.
... werd mich dann morgen mal an´s lesen machen...

Viele Grüße

Andreas
 
Alt 16.10.2005, 23:43  
Gast
 
Beiträge: n/a
Standard

wo läge das problem einfach eine typkonvertierung durchzuführen also einfach (int) $m zu schreiben, dann wird aus 2e eben bestenfalls 2
da checkdate() nachkommastellen ignoriert wäre auch is_numeric() in ordnung
falls doch stimhofs vorschlag nehmen, dann vielleicht preg_match('#\d{1,2}\.\d{1,2}\.\d{4}#', $date)
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
mysql fehler meldung: basicx Datenbanken 1 22.07.2008 09:48
Javascript bringt merkwürdigen Fehler sanz JavaScript, Ajax und mehr 5 27.06.2008 00:04
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
unerklärlicher fehler in der registrierungssite matthros PHP Tipps 2005-2 8 12.06.2005 18:08
[Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09
GDLIB -> Fehler : xxx.jpg is not a valid JPEG file PHP-Fortgeschrittene 11 09.06.2004 22:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
checkdate() expects parameter 2 to be long, checkdate() expects parameter 2 to be long, string given, checkdate expects parameter 2 to be long string given in, checkdate() expects parameter 2 to be long, string given in, checkdate() expects parameter 1 to be long, warning: checkdate() expects parameter 3 to be long, string given in, php checkdate, checkdate() expects parameter 1 to be long, string given, warning: checkdate() expects parameter 2 to be long, string given, checkdate() expects parameter 3 to be long, warning: checkdate() expects parameter 2 to be long, string given in, checkdate, warning: checkdate() expects parameter 1 to be long, string given in, php checkdate expects parameter 1 to be long, php checkdate warning, checkdate funktioniert nicht, checkdate() expects parameter 1 to be long, string given in, checkdate php, checkdate() expects parameter 3 to be long, string given, warning: checkdate() expects parameter 1 to be long

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.