XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Formular (http://xhtmlforum.de/showthread.php?t=71923)

Nördy 17.04.2015 15:25

Formular
 
Heyho:)
Ich habe eine Frage undzwar wie kann ich mithilfe if und else bestimmte zeichen erbieten? Oder das bestimmte Zeichen erhalten seien müssen!

Ich habe bisjetzt nur einen Befehl gefunden das nur Zahlen übertragen werden. Also wenn man etwas anderes als eine Zahl eingibt das der Brwoser dannn auf else zu greift.

Ich mache es ungefähr so:
PHP-Code:

$x = (int)$telefon;
if (
$x."" == $telefon)
  echo
"Ihre Telefonnummer: $telefon<br/>";
else
  echo
"Ihre Telefonnummer: Keine/Falsche Daten eingegeben.<br/>"

Also über den (int) Befehl werden ja nur Zahlen übertragen.

Aber ich möchte es noch so machen, das man ein / oder eine Lücke auch benutzen darf.
Geht das irgendwie mit PHP?

Und bei der E-mail möchte ich vorrausetzen das ein @ drin ist und mind. ein Punkt.





Ein anderes Problem: Wenn ich mehr als 12 Zahlen eingebe (egal ob sie mit 0 anfangen oder aufhören) greift der Browser auf else zu. Das sollte auch nicht so sein... Gibt es vllt irgendeinen Befehl der das fixt?

MFG Nördy;D

Thielo 17.04.2015 15:48

Regurläre Ausdrücke sind hier deine Freunde für beides. How to Find or Validate an Email Address

So bspw. kann eine E-Mail Adresse geprüft werden. Oder man macht es sich einfacher und nutzt einfach eine coole Funktion dazu:
PHP: Validate filters - Manual
sql - Check if a string is an email address in PHP - Stack Overflow

Das andere "Problem" ist auch recht klar: int != int | Du hast da keinen int-Wert mehr.
PHP: Integers - Manual

Edit sagt noch: bitte keine Telefonnummern versuchen mit PHP zu validieren. was ist eine korrekte Nummer für dich?
017766666666
0177/66666666
0177 / 66666666
0177 666 666 66
0177 / 666 666 66
+49 177 66 66 66 66

etc. such dir was aus.
Und was machen Amerikaner?
000-0000-0000
(000) 0000 0000

Nördy 17.04.2015 16:02

Okay das mit den emails guck ich mir gleich mal an.

Ich hab das jetzt einfach ein bisschen geändert:
PHP-Code:

$x = (int)$telefon;
if ((
$x>-1))
  echo
"Ihre Telefonnummer: $x<br/>";
else
  echo
"Ihre Telefonnummer: Keine/Falsche Daten eingegeben.<br/>"

Aber wenn ich dann mehr als 12 Zahlen eingebe gibt er immer (wirklich immer) diese Zahl aus: 2147483647

Nördy 17.04.2015 16:04

Zitat:

was ist eine korrekte Nummer für dich?
Es dürfen keine Buchstaben oder Sonderzeichen darin vorkommen..

Thielo 17.04.2015 16:07

Tja, wie kommt das wohl?

Ich poste den Link einfach noch einmal: PHP: Integers - Manual du kannst es dir ja einfach machen und mal nach der Nummer suchen, die rauskommt.

Die Frage war ironisch gemeint. Da es so viele unterschiedliche Nummer-Formate gibt, müsstest du eine Menge reguläre Ausdrücke schreiben.

Nördy 17.04.2015 16:07

Wenn ich bestimmte Zeichen verbieten will und dann soetwas habe:
PHP-Code:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

(ist nur ein Bsp) welcher Befhel muss denn davor damit das klappt?

Thielo 17.04.2015 16:10

Mit den Befehlen, die in der PHP-Dokumentation stehen?

Es ist immer interessant, wie kompliziert Google zu sein scheint:
Let me google that for you

Nördy 17.04.2015 16:15

Okay das mit preg_match funktioniert.
Aber mit dem mit int komm ich jz nichtmehr klar.
Nach was kann ich denn googlen (dann brauchst du es nicht machen :lol:) damit ich das mit int rauskriege also das da dann nicht immer diese eine Zahl rauskommt...?

Thielo 17.04.2015 16:20

Ok, du hast dir den Link durchgelesen?
Und was hast du festgestellt beim lesen? Wo das Problem mit dieser Nummer ist?

Hier nochmal andere Links für dich, vielleicht macht es dann Pling:
2147483647 - Wikipedia, the free encyclopedia
https://community.oracle.com/thread/2124366
integer - What is the maximum value for a int32? - Stack Overflow

Und jetzt überleg noch 3 mal bevor du weiter auf int prüfst.

Nördy 17.04.2015 16:29

Oh haha.. fail..
Ok danke. Ich mach das dann jetzt alles mal mit preg_match :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:04 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023