ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
2284
2284
EMPFEHLEN
-
Hi Leute
Habe ein Problem mit den Regular Expressions hab auch schon das Tutorial angschaut verstehe aber noch ein paar Sachen nicht.
Mit dieser Funktion möchte ich überprüfen ob ein , bzw ein | eingegeben wurde. Wenn ja dann soll er mir einen 1ser zurückgeben! was hab ich da falsch geshrieben. wenn ich zb Martin| eingebe dann haut das nicht hin der gibt mir keinen Fehler aus.PHP-Code:function checkspstring($char)
{
if (ereg("[,|]+",$char))
{
$error=1;
return $error;
}
}
-
02.04.04 15:03 #2
- Registriert seit
- Nov 2002
- Ort
- Altdorf bei Nürnberg
- Beiträge
- 3.027
Das geht auch ohne RegEx:
PHP-Code:function checkstring($a_sInput)
{
if ((strpos($a_sInput, '|') !== false) || (strpos($a_sInput, ',') !== false)) {
return false; // bei einem `check' im Funktionsnamen erwartet man eher ein false bei einem Fehler
} else {
return true;
}
}
// oder mit RegEx:
function checkstring($a_sInput)
{
return !preg_match('#[,|]#', $a_sInput);
}
-
02.04.04 15:06 #3
Das Problem bei Deinem RegExp war, dass das Zeichen "|" reserviert ist. und zwar wird dadurch eine Zeichenauswahl erstellt. Wenn Du das Zeichen dennoch verwenden möchtest, musst Du es quoten:
Code :1 2 3 4 5 6 7 8
function checkspstring($char) { if (ereg("[,|\|]+",$char)) { $error=1; return $error; } }
snuuDas Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Code :
1 2 3 4 5 6 7 8
function checkspstring($char) { if (ereg("[,|\|]+",$char)) { $error = '1'; return $error; } }
So funktionierts leider auch nicht
Ich übergebe im $char = 'asdf,';
und frage so ab
PHP-Code:if (checkspstring($char)=='1')
{
echo 'error';
}
-
02.04.04 15:26 #5
Also das funktioniert bei mir!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<?php function checkspstring($char) { if (ereg("[,|\|]+",$char)) { $error = '1'; return $error; } } $char = 'asdf,'; if (checkspstring($char)=='1') { echo 'error'; } ?>Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Diese Beide Funktionen überprüfen eine Eingabe von einem User
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
function checksql($char) { $char=mysql_escape_string($char); $char=addslashes($char); return $char; } function checkspstring($char) { if (ereg("[,|\|]+",$char)) { $error = '1'; return $error; } }
Ok?
Nun sagen wir gibt der User ein Martin|
dann wird auf der Action Seite so überprüft
Zuerst kommt
Code :1
$f_uv_vorname = checksql(trim($HTTP_POST_VARS["f_uv_vorname"]));
und dann noch
Code :1 2 3 4 5 6 7
if (($f_uv_vorname=='')||(checkspstring($f_uv_vorname)=='1')) { echo 'Bitte geben Sie einen gültigen Vornamen ein<br><br>'; echo '<div class="buttonuv" onMouseOver="javascript:highlight(this);" onMouseOut="javascript:unhighlight(this);"><a href="javascript:history.back()">Zurück zum Formular</a></div>'; echo '</tr></td></table>'; return; }
Aber der liefert mir keinen Fehler
der tragt dies ganz normal in die Datenbank ein
Auch wenn der Name MartinINSERT hießt zb (Wobei ich nicht weiß ob die escape string fkt dies akzeptiert oder nicht
-
kann mir da keiner helfen
-
Ich arbeite nun mit den Regular Expressions und die sind mit der Zeit sogar ziemlich verständlich... nun tritt aber ein Problem auf:
Parse error: parse error in c:\programme\apache group\apache\htdocs\docs\vorlagen\work_psgeneralt.php on line 26
Der Code dazu:
Die Variable:PHP-Code:if(preg_match("$code, '$_POST[code]'"))
{
}
else
{
$Val = 1;
print "Falsche Eingabe in Code";
}
$Val steht dafür da, wenn bei einer späteren Abfrage $Val nicht 0 ist, geht die ganze Eintragung gar nicht weiter...PHP-Code:$code = "/^[0-9]{2}$/";
Ich finde da oben einfach keinen Fehler...
-
02.03.05 13:54 #9PHP-Code:
if(preg_match($code, $_POST['code']))
Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
Mir ist gerade aufgefallen, das ich obeerhalb noch ne Variable offen hatte... hab das geändert, dann kam diese Nachricht: (Immer noch mit den gleichen Texten)
Warning: preg_match() expects at least 2 parameters, 1 given in c:\programme\apache group\apache\htdocs\docs\vorlagen\work_psgeneralt.php on line 26
Falsche Eingabe in Code
Ändere ich den Code wie du es mir vorgeschlagen hast, Sven, kommt diese Meldung:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\programme\apache group\apache\htdocs\docs\vorlagen\work_psgeneralt.php on line 26
-
Gut dieses Problem ist gelöst:
so muss es richtig aussehen und so:PHP-Code:$code = "/^([0-9]{2})$/";
PHP-Code:if(preg_match("$code", "$_POST[code]"))
Nun aber ne andere Frage...
Was muss ich schreiben damit ich Punkte und/oder Leerzeichen habe?
Für Punkte hab ich das hier überlegt:
Für Leerzeichen hab ich das hier:PHP-Code:$tnumdot8 = "/^([0-9{1,6})(\.[0-9]{2})$/";
Aber nichts funktioniert...PHP-Code:$tnumdot8 = "/^([0-9{1,6})(\ [0-9]{2})$/";
-
Gehts so?
das würde auf 1-6 Ziffern, gefolgt von Punkt oder Leerzeichen.... beendet mit 2 ZiffernCode :1
$tnumdot8 = "/^(\d{1,6})([\.\s]\d{2})$/";
...zutreffen
-
Wofür steht das \d?
Und warum wird \.\s eingefügt?
Und nein, es geht noch immer nicht... ich vermute, da die Formatierung des Wertes in der MySQL Datenbank auf decimal(19,2) ist, sich das ganze irgendwie nicht verträgt...
Geändert von Torgath (03.03.05 um 09:10 Uhr)
-
Das \d steht für Ziffern(Digit)
[\.\s] steht für eine Zeichenklasse mit Punkt und Leerzeichen \s-->Space
Warum es nicht funktioniert?... an dem Spaltenformat dürfte es eigentlich nicht liegen... die untersuchte Zeichenkette muss halt genau übereinstimmen.
Wenn 7 Ziffern(oder mehr) vor dem Komma sind, ist dies nicht mehr der Fall.
-
Hab aber als Test nur mal 0.00 geschrieben und trotzdem gabs nen Fehler...
Ähnliche Themen
-
Regular Expressions
Von aeiber im Forum PHPAntworten: 0Letzter Beitrag: 07.04.07, 02:28 -
Regular Expressions
Von Drizztd im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 03.01.07, 15:26 -
Regular Expressions
Von yan1 im Forum .NET CaféAntworten: 2Letzter Beitrag: 28.06.06, 00:21 -
Regular Expressions
Von dennislassiter im Forum PHPAntworten: 1Letzter Beitrag: 21.05.06, 16:11 -
regular expressions
Von Scalé im Forum PHPAntworten: 0Letzter Beitrag: 06.03.02, 11:16





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren