php alles in einem Feld auf integer setzten?

TerraX10

Mitglied
hi @ all,

nochmal ne frage ^^

Ich les mir hier nen string aus ner spalte im admin bereich in der die zahl 90 steht.. Und mit der man einen Zeitraum bestimmen kann die 90 steht hier für Tage...

PHP:
$ipi = dPgetSysVal('PasswordIntervall');
$ipi['Intervall']

Nun ganz einfache frage...! (hoffe ich)
Kann ich irgendwie in ne if abfrage mit einbauen das nur integer ausgelesen werden? Und falls etwas anderes wie z.b "tw 90" drin steht das "tw" einfach als "00" interpretiert wird?
Das sollte normal zwar nicht passieren... Aber sicher sollte sicher sein :/

Freue mich wenn ihr mir mal wieder helfen könntet :)

mfg terra
 
Dann wandle den ausgelesenen Wert mit intval um.

Liefert den integer-Wert von var unter Benutzung der angegebenen Basis. (Standardwert ist base=10). intval() sollte nicht auf Objekte angewandt werden, da dies eine Meldung vom Typ E_NOTICE erzeugt und den Wert 1 zurückgibt.

PHP:
<?php

// ergibt natürlich 10
echo intval("10");

// ergibt den Wert 5
echo intval("5und noch Text dazu)");

// ergibt 0
echo intval("Text steht vor der Zahl 7");

?>
 
Zuletzt bearbeitet:
ähm wie genau meinst du das jetzt?

Ich geb den wert ja nicht im quellcode an sondern in dem admin feld...
 
Zuletzt bearbeitet:
Ja gut aber irgendwo liest du dann den eingegebenen Wert aus diesem Feld aus (eventuell schickst du ein Formular ab?). Diesen Wert wandelst du dann mit intval um.

Oder liest du den Wert aus einer Datenbank aus? Dann kannst du dort schon durch den Feldtyp steuern das nur numerische Werte gespeichert werden können.

Ansonsten halt mit einer IF-Anweisung

PHP:
if (intval($ipi['Intervall'])) == 0) {
    echo "Ungültiger Wert.";
} else {
    echo "Der Wert ist in Ordnung.";
}

Die Frage ist auch was verstehst du unter einem "Adminfeld" ?
 
Zuletzt bearbeitet:
Naja also... Auf diesen speziellen bereich hat nur ein admin zugriff...
Und dort gibts eben ne spalte Namens PasswordIntervall .. Diese spalte regelt wie lange etwas dauert bis ne bestimmte funktion zugreift.. Und da möchte ich eben das man dort wirklich nur Zahlen eingeben kann! Sonst nichts anderes

Ja ich les dem aus nem feld aus...

Soweit hat ichs ja auch schon hinbekommen...
aber so ließt er mirs ja nur aus und ignoriert das "tw" nicht >.<
 
Zuletzt bearbeitet:
Naja versuchen trifft es ja ..

Also momentan hab ichs so stehen...

PHP:
$ipi = dPgetSysVal('PasswordIntervall');
	
				if(!ereg("^[0-999]+$",$ipi)){
					echo "Ok";
					}else{
					echo "Falsche Eingabe";
					}
 
Zuletzt bearbeitet:
Sorry aber die Funktion "dPgetSysVal" kenne ich nicht und weiß deshalb auch nicht welchen Wert sie an $ipi übergibt.

Weiter oben sah es so aus als ob $ipi ein Array wäre weil du da mal geschrieben hast $ipi['Intervall'].

Kann es vielleicht sein das da dein Fehler liegt!?

Arbeite doch mal mit "offenen Werten" und gebe $ipi = "123" oder $ipi = "abc0815" an. Dann siehst du was mit welchen Werten passiert.
 
PHP:
 $ipi = dPgetSysVal('PasswordIntervall');
echo $ipi['Intervall']

Nene das passt schon :)
also damit les ich einfach nur das Feld aus um zusehen was eben drinne steht .. In meinem Falle hab ich da nun grad "tw90" drin..

Er gibt mir auch ohne weiters aus das die eingabe falsch ist ... Aber ich möchte ja einfach nur verhindern das dort "tw90" aktzeptiert wird... Ich will wirklich einzig und allein das in dem feld nur Integer übernommen werden... Oder renn ich da grad gegen ne wand...?
 
Ja und zwar gegen eine ganz dicke.

Wenn du den Wert erst aus der DB holst und dann prüfst, dann ist er doch schon falsch gespeichert. Du musst die Prüfung beim Speichern vornehmen oder wie bereits geschrieben den Feldwert auf z.B. Integer einstellen.
 
Zurück