Man sollte niemals eine Benutzereingabe direkt ausgeben bzw. anders weiterverwenden.
Man sollte die Eingabe immer erst prüfen bzw. dafür sorgen, das keine gefährlichen Daten drin vorkommen.
In diesem Fall kämme wohl intval in Frage.
Man sollte niemals eine Benutzereingabe direkt ausgeben bzw. anders weiterverwenden.
Man sollte die Eingabe immer erst prüfen bzw. dafür sorgen, das keine gefährlichen Daten drin vorkommen.
In diesem Fall kämme wohl intval in Frage.
...
Javascript und HTML kann ja sowieso vom Benutzer geändert werden, also was kann denn in diesem Falle passieren?
Javascript und HTML kann ja sowieso vom Benutzer geändert werden, also was kann denn in diesem Falle passieren?
...
Der Inhalt der Seite kann über die URL beinflußt werden, in diesem Falle könnte beliebiges HTML eingeschleust werden. Damit lässt sich beliebiger Inhalt in die Seite einfügen und damit kann man den User wunderbar täuschen, indem man falsche Informationen einbindet. Oder man stiehlt dem User einfach seine Cookies und damit möglicherweise seine Login-Informationen. Im Zweifelsfalle wartet man, bis der User sein Passwort eingibt und schickt es dann an den Angreifer. XSS sollte man nicht unterschätzen.
Ist mir durchaus bewusst, aber ich sehe mich einfach nicht in der Pflicht, produktionsreifen Code zu liefern.
Ich denke, sowas sollte man jemandem nicht vorkauen, sondern wenn überhaupt gleich mit erklären.
Hallo,ich bin ein absoluter PHP-Anfänger,und möchte ein Formular erstellen,dass die Ergebnisse auf eine andere Seite überträgt und anzeigt.
Das funktioniert aber nicht,sooft ich das auch umändere.
Das Formular in HTML:
Das PHP-Script,wo es ausgelesen wird:
Ich habe irgendwie das Gefühl,dass was fehlt...
Ist es überhaupt möglich,die Daten in einem reinen HTML-Dokument (ohne irgendwelche PHP-Zeilen) zu erhalten?
Das seltsamste ist eigentlich,dass der größte Teil eigentlich aus einer anderen Seite rüberkopiert wurde und trotzdem im dem Zieldokument nix steht!(Ich benutze Firefox 2.0.0.14)
Natürlich ist
in der dataget.php.Aber wenn ich ja mir die dataget.php ansehe,steht da nichts!
Zur Verarbeitung:Ich habe die Form action auf ="Abc.html" umbenannt,die Seite,wo die die Formulardaten eingebe,damit sie sich selbst wieder aufruft.Und unter dem Formular-Code habe ich die eingegeben,damit er sie ausgibt.Aber das funktioniert auch nicht.Oder wie soll man das machen?
Also so:
Noch ein Tipp: Zum Testen fand ich es am Anfang immer sehr praktisch, die Methode auf "get" statt auf "post" zu stellen (und natürlich dementsprechend in der PHP-Datei $_GET zu verwenden), da man dann die übergebenen Daten gleich in der URL sieht. Und auch selber leicht Sachen einspeisen kann, indem man einfach (als Beispiel den jetzigen Fall) ".../dataget.php?benutzername=blabla" in die Adressleiste eingibt.
Und wie mitaki schon gesagt hat, wenn du sagst, dass da "nichts steht", schau auf jeden Fall auch in den Seitenquelltext, um zwischen "der Server gibt nichts aus" und "der Browser zeigt nichts an" zu unterscheiden.
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich?
Wie kann ich das Verhindern oder Optimieren?
...
Sofern du den Kategorienamen nicht per phpmyAdmin veränderst, sondern mit einem Script, sehe ich da keine Probleme.
$update0 = mysql_query("UPDATE kategorien Set kategorie_name='456'"); $update = mysql_query("UPDATE tabelle Set kategorie='456' WHERE kategorie = '123'");
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich?
Wie kann ich das Verhindern oder Optimieren?
...
Sorry, aber wie grauenhaft schlechter Stil ist das denn bitte?
Du legst gefälligst in der Tabelle für die Kategorien eine Spalte ID (die meinetwegen auch anders heißen kann) an, die eine einzigartige und unveränderliche Nummer enthält (also einfach PRIMARY KEY auto_increment in PMA setzen) und referenzierst diese Nummer in der Tabelle der Spiele statt des Namens. Problem solved, so musst du den Namen eh erst abfragen und er wird nur einmal gespeichert.
Neben der Lösung deines Problems spart es Speicherplatz in der Tabelle und erhöht die Performance (da du vermutlich den Namen nicht zum Key gemacht hast), auch wenn du erst noch den Namen abfragen musst. Geht sogar mit nur einem Query:
SELECT g.*, c.name AS category_name FROM games AS g LEFT JOIN categories AS c ON (g.category = c.id)
(und bitte kommt mir jetzt nicht mit "ne ganze Zeile zu selecten ist schlechter Stil", das ist nur Beispielcode! )