Didito's php Probleme

Didito
Habe das jetzt mit einem BadwordFilter gelöst.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
				$text = $row['text_eintragen'];

				function email_umwandlung($text,$email)
				{
					$Badwords = array("-email-");

					foreach($Badwords as $Badword)
					{
						$text = str_replace($Badword,str_repeat("$email",1),$text);
					}

					return $text;
				}

				$text = email_umwandlung($text,$email);

mail("$email","$row[betreff_eintragen]","$text","From: $admin_email");


-email- ist der Platzhalte für die E-Mail-Adresse
Hawkes
Wäre auch einfacher gegangen, aber wayne.

Dennoch: Dein Script enthält weiterhin eine SQL Injection. Du musst in deinen SQL Queries die Textfelderwerte (also alle die in Hochkommata geschrieben werden) escape,n also durch addslashes oder mysql_real_escape_string jagen. Ansonsten kann man zum Beispiel mit einem manipuliertem userAgent eine Blind-SQL Injection ausführen.
Didito
Habe mal wieder ein Problem

URL überprüfen

Das klappt bisher

code:
1:
if(!preg_match("!^(http|https)+(://)+(www\.)?([a-z0-9\.-]{3,})\.[a-z]{2,4}(/)?$!i",$url))


Will also das man folgende Sachen eingeben muss:

http oder https

:

//

www.

mindestens 3 Zeichen von a-z0-9

. zwischen 2-4 Zeichen, also .de oder .com


Klappt auch alles.

Ich möchte es nun aber so haben, dass man aber noch mehr eingeben kann.

Zum Beispiel: http://www.google.de/blabla/bla.php

Also hinter .de noch zusätzlich etwas.

Wenn ich das so eingebe (http://www.google.de/blabla/bla.php), dann gibt er meine Fehlermeldung aus.

Wie muss meine Überprüfung lauten, das meine Eingabe überprüft wird, aber dass man noch hinter .de etwas schreiben darf.

Aber überprüfen soll er bis zum Schluss (.de)