Verständnisfrage

Hallo,


danke ich werde das einmal durcharbeiten. Ist sicher besser von Beginn an mit den neueren Techniken zu arbeiten.

Ich hatte ja eigentlich schon mit PDO gestartet, bin hier aber wieder abgekommen, weil mit PDO habe ich die While Schleifen nicht hinbekommen und konnte somit einzelne Felder nicht schreiben. Wie mit Mysqli zum Beispiel row['datum'] oder ähnliches. Ich habe auch nicht viel gefunden über PDO Einsat. Ich war immer der Meinung das mit PDO die PS nur genutzt werden können.

Hasst du dir den Code eventuell noch einmal angesehen? Sicherheitsbedenken?


MFG
Silvio
 
Eigentlich ist der Code nun gut lesbar, Sicherheitsbedenken habe ich beim Überfliegen nur insofern, das du zwar versuchst, Kommentare zu verhindern, in denen nur HTML-Code zu finden ist, aber die Prüfung schief laufen wird, wenn man den HTML-Code in regulären Text einfügt. Somit ist beispielsweise ein solcher Code im Namen möglich:

Code:
Saft<script type="text/javascript">alert('saftmeister war hier!');</script>meister

Du solltest evtl. HTML komplett raus filtern, und zwar bevor es in der DB landet. Der Ansatzpunkt wäre vor dem mysql_real_escape_string() die jeweilige Variable zu filtern ggf. mit regulären Ausdrücken.
 
Hallo,

danke für den Hinweis. Ich habe einmal mit Google nach Möglichkeiten gesucht und bin hier auf strip_tags gestoßen. Wäre er die Wahl der "Waffe"? Wenn ich das zum Beispiel im if Part der $_Post Prüfung einsetze.

PHP:
<?php
if (isset ($_POST['name'])) {
if (htmlspecialchars(trim($_POST['name']) != ''))
if (strip_tags(str_replace(array('[', ']'), array('<', '>'), $_POST['name'])))
if (strlen($name) < 5) {
$name = mysqli_real_escape_string($DB, $_POST['name']);
}
else {
$fehler = $fehler . "<h1>Bitte geben Sie Ihren Namen ein!</h1>";
}
}
?>


MFG
Silvio
 
Naja, die Tag-Signs vor dem strippen zu maskieren, ist da wohl eher kontraproduktiv. Nimm das str_replace raus, dann sollte das ganz gut funktionieren. Aber das solltest du durch Testen selbst raus finden ;-)

Edit: Da hat sich wohl einer verlesen ;-) Sorry. So wie du es gemacht hast, ist es richtig.
 
Hallo,


habe ich die Validierung jetzt eingearbeitet. Ich bin dabei das jetzt in PDO und Prepared Statements umzuschreiben. Zu meinen Erstaunen klappt das sogar, besser als ich dachte.

Ich habe nur eine Frage, wie kann ich den Null Werte in die Datenbank schreiben. Das betrifft nur mich. In den Blog erscheinen ja ab und an einmal Bilder, nur eben nicht bei jedem Artikel. Wenn ich das Feld leer lasse, dann schreibt er nicht in die Datenbank, wenn ich das Feld Bild fülle wird er in die Datenbank geschrieben. Geht das nur über eine If Schleife, oder gibt es eine andere Möglichkeit?


MFG
Silvio

PS: Danke für deine Hilfe saftmeister auch für dein Tutorial und natürlich deine Geduld.
 
Normalerweise liegt das an der Tabellen-Struktur. Wenn in der gegebenen Spalte X kein null akzeptiert wird, so wird auch der PDO-Adapter eine Fehlermeldung vom Server bekommen, wenn die Spalte nicht mit Werten gefüllt ist. Das kannst du mit phpMyAdmin nachprüfen, ob die Spalte NOT NULL oder ggf. auch NULL sein darf.
 
Hallo,

in PHPMYADMIN steht für Tabelle Bild <Typ: Varchar:100, Standard: null, Null ist auch makiert> aber ein eintragen ist nicht möglich.

Die Prepared Statements Umstellungen läuft bisher ohne Probleme. Ich hatte zwar die Comments Eintragungen noch nicht probiert, aber das wird heute noch erledigt.

Danke also, dein Tutorials hat mir hier sehr geholfen.


Gruß
Silvio
 
Hallo,

danke. Damit bin ich jetzt eigentlich glücklich. Eine Menge gelernt und schön das vieles ohne Problem geklappt hat. Jetzt kommen noch ein paar Anpassungen und dann geht die Seite ans Netz.

Letzte Frage die ich schon seit vielen Wochen versuche zu lösen. Ich habe eine HTML Tabelle in der Berechnungen für ein Portfolio stattfinden. Gibt es Klassen, Funktionen, oder ähnliches für so eine Berechnungen. Ich ziehe zum Beispiel Kurse von Yahoo, dann berechne ich den aktuellen Portfolio Wert, % Rechnung, etc.

Wäre schön wenn das vielleicht einer ein Tipp hat.


Silvio
 

Neue Beiträge

Zurück