-
Hallo Leute.
In meinem Skript gibt es an einer Stelle ein interessantes Problem.
Die IF-Abfrage (preg_match) wird erst ein paar 100 Zeilen später geschlossen. Auf Grund einiger Veränderungen am Skript, muss ich nun eine neue IF-Abfrage dazu bauen.PHP-Code:if ($var_5 == 'Ja') {
if(preg_match('/^[A-Z0-9]{180}$/', $text) {
}
else
{
if(preg_match('/^[A-Z0-9]{280}$/', $text) {
}
Code Code Code Code Code
Code Code Code Code Code
Code Code Code Code Code
Code Code Code Code Code
Code Code Code Code Code
}
Könnte das Probleme geben? Ich meine jetzt z.B. auch Sicherheitsrelevante Probleme oder so ähnlich?
"Weiss" das Skript das die preg_match IF-Abfrage hier NICHT geschlossen werden soll? Oder gibt es für solche Probleme eine spezielle Vorgehensweise?
-
Du darfst nicht ein inneres IF nach dem äusseren schliessen. Das wirft den ganzen Code durcheinander.
Stufe für Stufe zuerst schliessen.
Vor allem intepretiert PHP das mit dem schliessen anderst als du. PHP sieht nur eine schliessende Klammer und schliesst damit den innersten if.
PHP-Code://So meinst du das Script:
if($a){
if($b){
echo 1;
} //if($a) schliessen
echo 2;
} //if($b) schliessen)
//Und so intepretiert PHP den Code
if($a){
if($b){
echo 1;
} //if($b) schliessen)
echo 2;
} //if($a) schliessen
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Danke für die Antwort.
Dann muss ich mir wohl etwas anderes ausdenken.
Was hälst du davon?
Die Variablen "$erlaubte_zeichen" und "$erlaubte_länge" wären dann natürlich Hardcoded im Skript.PHP-Code:$erlaubte_zeichen = 'A-Z0-9';
$erlaubte_länge = '280';
if(preg_match('/^[$erlaubte_zeichen]{$erlaubte_länge}$/', $text) {
Oder ist das zu unsicher?
-
10.02.12 22:16 #4
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Du kannst aber mit goto arbeiten. Das sorgt außerdem dafür, dass du in deinem Quelltext nicht mehr durchsiehst, wenn du nur genügend Sprungmarken verwendest.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Hi, das mit dem "goto" klingt interessant aber ich würde damit die Übersicht verlieren. Denn mein Skript ist schon ziehmlich lang.
Würde es mit meinem Beispiel nicht gehen?
PHP-Code:$erlaubte_zeichen = 'A-Z0-9';
$erlaubte_länge = '280';
if(preg_match('/^[$erlaubte_zeichen]{$erlaubte_länge}$/', $text) {
-
Keiner? Mich würde vorallem die Frage in Sachen Sicherheit interessieren.
-
12.02.12 16:20 #7
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Wenn du dein Problem noch einmal genau definieren würdest, dann bestimmt. Momentan glaube ich einfach, dass du nicht weißt, wie du eine weitere Verschachtelungsebene einfügen sollst. Also quasi so hier:
Vorher
NachherCode PHP:1 2 3 4 5
if($omas_geburtstag === $heute) { echo 'Meine Oma hat heute Geburtstag'; } else { echo 'Meine Oma hat heute nicht Geburtstag'; }
Code PHP:1 2 3 4 5 6 7 8 9
if($omas_geburtstag === $heute) { if($ich_habe_zeit) { echo 'Ich besuch meine Oma heute, weil sie Geburtstag hat'; } else { echo 'Ich besuch meine Oma heute nicht, obwohl sie Geburtstag hat'; } } else { echo 'Meine Oma hat heute nicht Geburtstag'; }
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Das stimmt, ich weiss es wirklich nicht. Irgendwie bin ich auch in letzter Zeit nicht wirklich Aufnahmefähig. Also bitte seit mir nicht böse.
Auch wenn es hier nicht ins Thema gehört und eigentlich auch nicht in das Forum, möchte ich kurz an dieser Stelle erwähnen, dass ich mich Beruflich verändert (vorher KFZ-Mechatroniker in Fachrichtung Kommunikationstechnik und Bürokaufmann) habe und seit ein paar Monaten Selbstständig bin. Und die Selbstständigkeit verbraucht alle meine Reserven.
Zum Thema:
Nach ein paar Überlegungen wäre es mir doch lieber es so zu machen:
Aber nur wenn es auch Sicher ist.PHP-Code:$text = 'Ich mag PHP';
if ($var_5 == 'Ja') {
$erlaubte_zeichen = 'A-Z0-9';
$erlaubte_länge = '180';
}
else
{
$erlaubte_zeichen = 'A-Z0-9';
$erlaubte_länge = '280';
}
if(preg_match('/^[$erlaubte_zeichen]{$erlaubte_länge}$/', $text) {
Code Code Code
Code Code Code
Code Code Code
}
Geändert von Alice (12.02.12 um 16:38 Uhr)
-
12.02.12 16:48 #9
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Was soll denn daran unsicher sein? Du verwendest doch keine Nutzereingaben direkt in deinem Suchmuster.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Das weiss ich ja nicht. Hatte deswegen ja extra den Hinweis gegeben das es Hardcoded im Skript ist.
Also kein Problem?
-
12.02.12 16:57 #11
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Wo hast du denn da oben bitte Nutzereingaben? Nirgendwo, nie, niemals, nicht, überhaupt nicht, gar nicht, null mal!
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Jetzt bin ich etwas verwirrt?
Bedeutet "Hardcoded" nicht, dass der Programmierer z.B. eine unverändere Variable gesetzt hat, die durch keine normale Eingabe eines Benutzer veränderbar ist?
Hardcoded = Fest im Skript eingebaut ?
-
Das wird so nicht funktionieren.
Die Variablen $erlaubte_zeichen und $erlaubte_länge (Umlaut im Variablennamen?) greifen in einem String, welcher in einfachen Anführungszeichen steht nicht.
Das Pattern erwartet in deinem Fall entweder genau 180 Zeichen oder genau 280 Zeichen.
Dann brauchst Du die erlaubten Zeichen auch nicht im if- und else-Block definieren, beides Mal sind die Zeichen gleich.
Code PHP:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$text = 'Ich mag PHP'; if ( $var_5 == 'Ja' ) { $erlaubte_laenge = '180'; } else { $erlaubte_laenge = '280'; } if ( preg_match( "#^[A-Z0-9]{0,$erlaubte_laenge}$#", $text ) ) { // Code und so }
Gruß
-
12.02.12 17:11 #14
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Ja eben, deshalb gibt es doch auch keine Sicherheitslücken.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
@Raisch:
Du hast natürlich recht.
Es muss:
sein.PHP-Code:{0,$erlaubte_laenge}
Die Pattern sind aber eigentlich auch unterschiedlich. Und die gehen als Variable nicht?
Ähnliche Themen
-
PHP und mysqli - Ergebnisarray einer Abfrage in zweiter Abfrage verwenden
Von TMM im Forum PHPAntworten: 3Letzter Beitrag: 10.11.11, 13:08 -
Access: Abfrage mit Ergebnissen aus Abfrage aktualisieren
Von Communicate im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 19.09.11, 08:43 -
Schleife zur abfrage des preises und alphabetische abfrage des namen
Von Johnny8519 im Forum JavaAntworten: 34Letzter Beitrag: 23.12.09, 20:56 -
Access : gespeicherte Abfrage als Grundlage für SQL Abfrage
Von tombe im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 10.02.07, 22:21 -
SQL Abfrage: Abfrage nach ungleichen Variablen? ne -.-
Von Nilman im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 31.05.05, 13:24



8Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren