Ich fragte mich, ob jemand mir mit einem kleinen Problem helfen könnte - ich übergebe $_POST
durch eine neue Registerkarte mit Javascript aus einem Eingabefeld beim Klicken auf die Tabellenzeile, wird die Funktion akzeptieren $_POST['shift']
als B
. Wie auch immer, meine Shifts sind in einem Array und deshalb wollte ich sie als Ints darstellen. Mein Versuch, den Wert von $_POST
zu überprüfen, kommt zu kurz, es füllt das Eingabefeld der nächsten Seiten nicht mit dem richtigen intval - es ist standardmäßig auf 0 gesetzt. Ich habe meinen Indexcheck, die Funktion und den var dump eingeschlossen. Jede Hilfe wäre willkommen, vielleicht bin ich nur dumm.
if (isset($_POST['shift'])) {
$ShiftSelected = intval($_POST['shift']);
} elseif ($_POST['shift'] == 'B') {
$ShiftSelected = 1;
} else {
$ShiftSelected = 0;
}
$(function() {
$(".table-row").click(function() {
$("#form").attr('action', '?action=HS');
$("#selectDate").val($(this).data("date"));
$("#selectShift").val($(this).data("shift"));
$("#form").submit();
});
});
array(4) {
["workcenter"]=> string(1) "0"
["Week"]=> string(2) "38"
["date"]=> string(10) "16-09-2016"
["shift"]=>string(1) "B"
}
Sie wahrscheinlich könnten versuchen, 'chr mit()' und 'ord()' in PHP - in Ihrem Fall würden Sie wollen mehr wahrscheinlich 'ord verwenden ('B')' eine ganze Zahl zu erhalten Wert – RamRaider
erwähnenswert, Ihre 'elseif ($ _ POST ['shift'] == 'B') {...}' ist unerreichbar –
Es war eindeutig unerreichbar, zu früh am Morgen. Habe das intval entfernt, da es sich um eine Inhouse-Anwendung handelt, um Informationen für Crews anzuzeigen. Die Injektion ist nicht wirklich ein Problem. Für was es wert ist, werde ich in der Antwort bearbeiten. –