4Danke
ERLEDIGT
JA
JA
ANTWORTEN
14
14
ZUGRIFFE
311
311
EMPFEHLEN
-
Hallo alle,
wie einige nun schon mitbekommen haben, bin ich dabei eine Datenbank übers Web bearbeiten zu können mit hilfe von Formulare.
Alles funktioniert, dank euch
ich habe es so versucht zu verhindern:jedoch wird mir dann das angezeigt: Notice: Undefined variable.PHP-Code://verhindert alle leerzeichen
$Firma = str_replace(" ", "", $Firma);
$Nachname = str_replace(" ", "", $Nachname);
$Vorname = str_replace(" ", "", $Vorname);
$Strasse = str_replace(" ", "", $Strasse);
$Hausnnummer = str_replace(" ", "", $Hausnnummer);
$Ort = str_replace(" ", "", $Ort);$Vorname = str_replace(" ", "", $Vorname);
$PLZ = str_replace(" ", "", $PLZ);
$Telefonnummer = str_replace(" ", "", $Telefonnummer);
$Fax = str_replace(" ", "", $Fax);
$Mail = str_replace(" ", "", $Mail);
$Datum = str_replace(" ", "", $Datum);
//verhindert alle Sonderzeichen
$Firma = str_replace("<", ">", $Firma);
$Nachname = str_replace("<", ">", $Nachname);
$Vorname = str_replace("<", ">", $Vorname);
$Strasse = str_replace("<", ">", $Strasse);
$Hausnnummer = str_replace("<", ">", $Hausnnummer);
$Ort = str_replace("<", ">",$Ort);
$PLZ = str_replace("<", ">", $PLZ);
$Telefonnummer = str_replace("<", ">", $Telefonnummer);
$Fax = str_replace("<", ">", $Fax);
$Mail = str_replace("<", ">", $Mail);
$Datum = str_replace("<", ">", $Datum);
-
02.02.12 15:30 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Was ist wenn jemand einen Doppelnamen wie zum Beispiel "Hans Peter" hat. Dann machst du daraus "HansPeter".
Ergibt für mich keinen Sinn.
Wenn du verhindern willst, das jemand NUR ein oder mehrere Leerzeichen eingibt, dann nimm trim.
Was die zweite "Überprüfung" soll ist mir auch völlig unklar und im ersten Abschnitt steht die Zeile mit dem Vornamen auch noch doppelt drin (hinter Ort).
Bei der Fehlermeldung wird doch sicher auch angegeben um welche Variable es sich handelt!?Geändert von tombe (02.02.12 um 15:37 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Bei allen zeigt er mir das an. Jedoch hatte ich das Problem ja gestern auch, da lag es dann an einem Tippfehler! Diesen Tippfehler habe ich dann beseitigt und dann funktionierte auch alles ohne probleme.
Und jetzt zeigt er mit es wieder an, das die Variable nicht definiert wäre, obwohl es in der selben Datei ist.
Ok, das ist wirklich unsinnig mit den Leerzeichen, danke das du mich darauf aufmerksam gemacht hast.Geändert von Big-A (02.02.12 um 15:40 Uhr)
-
02.02.12 15:40 #4
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Wo kommen die Werte der Variablen denn her, aus einem Formular? Dann sind es doch bestimmt $_POST- oder $_GET-Variablen!
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
02.02.12 15:54 #5
Wie schon gesagt wurde macht das mit den leerzeichen filtern wenig sinn...
falls du durch das <> das eingeben von html verhindern willst,
solltest du auf http://de3.php.net/manual/de/function.strip-tags.php zurückgreifen.
Und das kommentarverstehe ich nicht.PHP-Code://verhindert alle Sonderzeichen
den du filterst ja nur '<' und '>' heraus.
Und worauf tombe warscheinlich hinaus will,
ist das du variablen die von ausserhalb des scriptes kommen erstmal darauf prüfen solltest ob diese gesetzt wurden bzw. einen wert enthalten.
Eine Methode von PHP die sich dazu eignet ist http://de3.php.net/manual/de/function.isset.php
hoffe ich konnte dir helfen
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
@H4ckHunt3r
ich habe erst einmal nur die beiden Zeichen eingetragen, um zu überprüfen ob es funktioniert, damit ich nicht so viel eingebe und am ende eventuell doch alles löschen muss. Aber danke für den Link bezüglich des verhindern von html-Code
liegt das eventuelle an den " "?PHP-Code:$ID= $_POST["ID"];
$Firma= $_POST["Firma"];
$Nachname = $_POST["Nachname"];
$Vorname = $_POST["Vorname"];
$Strasse = $_POST["Strasse"];
$Hausnummer = $_POST["Hausnummer"];
$PLZ = $_POST["PLZ"];
$Ort = $_POST["Ort"];
$Telefonnummer = $_POST["Telefonnummer"];
$Fax = $_POST["Fax"];
$Mail = $_POST["Mail"];
$Datum = $_POST["Datum"];
und so habe ich das ganze im Formular angegeben:
PHP-Code:echo "<ol>";
echo "<fieldset>";
echo "<legend>Welchen Datensatz möchten Sie bearbeiten?</legend>";
echo "<form method='bearbeiten'>";
echo 'ID: <input type="text" value="'.$row->ID.'" name="ID" /><br />';
echo 'Firma: <input type="text" value="'.$row->Firma.'" name="Firma" /><br />';
echo 'Nachname: <input type="text" value="'.$row->Nachname.'" name="Nachname" /><br />';
echo 'Vorname: <input type="text" value="'.$row->Vorname.'" name="Vorname" /><br />';
echo 'Strasse: <input type="text" value="'.$row->Strasse.'" name="Strasse" /><br />';
echo 'Hausnr.: <input type="text" value="'.$row->Hausnummer.'" name="Hausnummer" /><br />';
echo 'PLZ: <input type="text" value="'.$row->PLZ.'" name="PLZ" /><br />';
echo 'Ort: <input type="text" value="'.$row->Ort.'" name="Ort" /><br />';
echo 'Telefonnummer: <input type="text" value="'.$row->Telefonnummer.'" name="Telefonnummer" /><br />';
echo 'Fax: <input type="text" value="'.$row->Fax.'" name="Fax" /><br />';
echo 'Mail: <input type="text" value="'.$row->Mail.'" name="Mail" /><br />';
echo 'Datum: <input type="text" value="'.$row->Datum.'" name="Datum" /><br />';
echo '<input type="submit" name="speichern" value="speichern">';
echo "</form>";
echo "</ol>";
echo "</fieldset>";
-
02.02.12 16:12 #7
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Keine Ahnung welche Werte ein solches Formular liefert:
Habe ich dir aber gestern auch schonmal geschrieben.HTML-Code:<form method='bearbeiten'>
NACHTRAG: Habe es eben mal so getestet. Das Formular wir mit GET versendet.Geändert von tombe (02.02.12 um 16:14 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Sorry das falsche kopiert, ich habe da
stehenPHP-Code:echo "<form method='post'>";
-
Also muss ich anstatt $_POST, $GET verwenden?
-
02.02.12 16:20 #10
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ok, und wo steht der obige Code?
Wird er vermutlich immer ausgeführt und nicht nur dann wenn das Formular abgeschickt wurde?
Zu deiner letzten Frage: NEIN wenn du das Formular mit method="Post" abschickst, dann musst du natürlich auch die POST-Variablen verwenden!Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
02.02.12 16:33 #11
Nein da ist $_POST schon richtig wenn da post bei method drin steht.
Du solltest aber die werte am besten ihrer natur gemäß filtern anstatt bestimmte Zeichen zu entfernen.
Beispiel:
und setze mal um den gesammten code falls du nicht etwas in der art bereits hast vom einlesen bis zum speichern,PHP-Code:$ID= intval($_POST["ID"]); // intval() für zahlenwerte
$PLZ = (preg_match('^[0-9]{5}$', $_POST["PLZ"]) ? $_POST["PLZ"] : ''); // RegEx für PLZ
folgende if anweisung:
Um zu prüfen ob das Formular abgeschickt wurde auf den von tombe genannten PunktPHP-Code:if($_POST['speichern'] == 'speichern')
{
// [Dein Code hier...]
}
einzugehen.
Zitat von tombe
ACHJA, und demnächst benutz die Edit oder auch Bearbeiten funktion des Forums... Doppelposts sind ******e ;DLg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
@H4ckHunt3r
Danke, jetzt "funktioniert" es ohne das mir Fehler angezeigt werden.
Jedoch werden die Zeichen nicht verhindert, sondern "geändert". Wenn ich z.B: <table> eingebe, kommt >table> raus.
Wie kann ich denn sagen, das die nicht mal eingegeben werden dürfen!? bzw. gar nicht erst gespeichert werden
-
02.02.12 17:05 #13
um das komplette <table> und andere Tags zu entfernen wie von mir schon erwähnt:
http://de2.php.net/manual/de/function.strip-tags.php
am sonsten um auch das <table> einfach als text auszugeben:
http://de2.php.net/manual/de/function.htmlentities.php
oder über str_replace die '<' und '>' Zeichen durch nichts ersetzen:
geht übrigens auch via RegEx:PHP-Code:$string = str_replace('<', '', $string);
$string = str_replace('>', '', $string);
so irgendwie dürfte das dan aussehenPHP-Code:$string = preg_replace('/(<|>)/', '', $string);
Geändert von H4ckHunt3r (02.02.12 um 17:07 Uhr)
Lg H4ckHunt3r
Auf Danke klicken kostet nichts und weh tut es auch nicht ;)
Meine Homepage | Mein Projekt | Mein Clan
-
Herzlichen Danke, jetzt funktioniert es!
-
Wenn du nur html Tag´s für eine XSS Lücke verhindern willst, dann benutz htmlspecialchars().
Ähnliche Themen
-
Sonderzeichen Fehler mit Curl
Von Beutel2008 im Forum PHPAntworten: 1Letzter Beitrag: 20.02.11, 12:04 -
Ajax Sonderzeichen Fehler
Von RaVenC im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 20.06.08, 12:42 -
Eingabe Sonderzeichen verhindern!?
Von markberg im Forum PHPAntworten: 5Letzter Beitrag: 11.06.06, 18:35 -
Doppelpost verhindern – Fehler im SQL-Query?
Von Hektik im Forum PHPAntworten: 2Letzter Beitrag: 14.04.06, 23:43 -
Eingabe von Sonderzeichen verhindern
Von Stiffler im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 03.01.04, 14:15





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren