Pracuję nad szkolnym projektem biura pomocy finansowej na uniwersytecie. Projekt jest w fazie produkcji i większość z nich jest wykonywana poza kilkoma drobnymi poprawkami tu i tam. Moją główną troską w związku z przerwą zimową (teraz) jest bezpieczeństwo i zapobieganie wszelkim naruszeniom moich najlepszych umiejętności. Ludzie powiedzieli mi, abym kierował się do Przygotowanych oświadczeń. Rozumiem je w dużym stopniu, z wyjątkiem wstawiania danych.Zrozumieć gotowe instrukcje - PHP
Mam dwie formy: login w formularzu i formularz logowania studenta. Formularz logowania do studenta zawiera informacje o tym, dlaczego uczeń przyjeżdża do biura. Formularz ten jest następnie przesyłany i dane są później pobierane przez tabelę, która pokazuje doradcom, jakie uczniowie oczekują na obejrzenie.
Moim problemem jest to że każdy student, który wchodzi do biura pomocy finansowej ma swój własny, unikalny problem (przez większość czasu), więc teraz co dezorientuje mnie jest:
Czy muszę myśleć z wyprzedzeniem i pre- tworzyć kwerendy wstawiania lub czy istnieje sposób na zapytanie dynamiczne, ponieważ istnieje pole komentarzy dla ucznia i do tego będzie ono całkowicie unikalne, więc w jaki sposób będę mógł utworzyć dla niego zapytanie?
<?php
define('DB_Name', 'dbtest');
define('DB_User', 'root');
define('DB_Password', 'testdbpass');
define('DB_Host', 'localhost');
$link = mysql_connect(DB_Host, DB_User, DB_Password);
if (!$link) {
die ('Could Not Connect: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_Name, $link);
if (!db_selected) {
die('Can Not Use ' . DB_name . ': ' . mysql_error());
}
$value1 = $_POST ['anum'];
$value2 = $_POST ['first'];
$value3 = $_POST ['last'];
$value4 = $_POST ['why'];
$value5 = $_POST ['comments'];
$sql = "INSERT INTO `dbfinaid` (anum, first, last, why, comments) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5')";
if (!mysql_query($sql)) {
die('Error : ' . mysql_error());
}
mysql_close();
i jak mi powiedziano, robienie tego w ten sposób pozostawia mnie podatną na iniekcje SQL.
Każda pomoc będzie bardzo ceniona. Dziękuję Ci.
Oczywiście przygotowane instrukcje mogą być dynamiczne. Właśnie przeczytałeś to: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers I to jest to – gd1
Pasterz prawdopodobnie nie ładuje się. Czy możesz umieścić odpowiedni kod w swoim pytaniu? –
@MikeBrant: ładuje dla mnie. Jednak jest to klasyczne podejście mysql_query() podatne na SQL-Injections :) – gd1