Hallo,
$_POST['lang'] = 'Leck mich!'; if (!in_array($_POST['lang'], $available_languages) { // create error message $error = sprintf( '<p class="error">Falsche Sprache <strong>%1$s</strong>angegeben!</p>', htmlspecialchars($_POST['lang']) ); }
Das wird wohl nicht passieren, da die
$_POST['lang']
aus der Datenbank gefüllt wird.ganz gewiss nicht - die Werte im $_POST-Array kommen direkt vom Client! Sie können daher beliebig richtig, falsch oder manipuliert sein.
<input type="checkbox" name="language" class="checkbox_chat" value="<?php echo $_SESSION['language'];?>"/>
<label for="language">Language</label>
Ganz gewiss! Die $_SESSION['language']
wird aus der Datenbank gefüllt bei jedem Einloggen eines Benutzers mit der in der Datenbank hinterlegten Sprache die der Benutzer beim Registrieren wählen kann. So ist es jedenfalls im Moment, ich überlege gerade ob ich ihm auch noch andere sprachen zugänglich machen will über ein <select><option></option>...</select>
.
OK, das gilt für den Normalfall, sicher kann der Client die gesendeten Daten manipulieren. Sicher muss ich davon ausgehen und mich darauf vorbereiten aber ich gehe mal vom normalen 08/15 Benutzer aus der nicht an der $_SESSION
variable rum doktert oder an den $_POST
variablen.
Gruß Jo