Realizuję zagadnienia z książki PHP i MySQL Vademecum Profesjonalisty i niestety przytrafił mi się kłopot z którym nie potrafię sobie poradzić. Formularz powinien pobrać informację o książce (ISBN, autor, tytuł, cena) i zapisać je do bazy danych.
Kod formularza:
CODE
<html>
<head>
<title>"Książkorama" - Wstawianie nowej książki</title>
</head>
<body>
<h1>"Książkorama" - Wstawianie nowej książki</h1>
<form action="wstaw_ksiazke.php" method="post">
<table border="0">
<tr><td>ISBN</td><td><input type="text" name="isbn" maxlength="13" size="13"></td></tr>
<tr><td>Autor</td><td> <input type="text" name="autor" maxlength="30" size="30"></td></tr>
<tr><td>Tytuł</td><td> <input type="text" name="tytul" maxlength="60" size="30"></td></tr>
<tr><td>Cena PLN</td><td><input type="text" name="cena" maxlength="7" size="7"></td></tr>
<tr><td colspan="2"><input type="submit" value="Zapisz"></td></tr>
</table>
</form>
</body>
</html>
<head>
<title>"Książkorama" - Wstawianie nowej książki</title>
</head>
<body>
<h1>"Książkorama" - Wstawianie nowej książki</h1>
<form action="wstaw_ksiazke.php" method="post">
<table border="0">
<tr><td>ISBN</td><td><input type="text" name="isbn" maxlength="13" size="13"></td></tr>
<tr><td>Autor</td><td> <input type="text" name="autor" maxlength="30" size="30"></td></tr>
<tr><td>Tytuł</td><td> <input type="text" name="tytul" maxlength="60" size="30"></td></tr>
<tr><td>Cena PLN</td><td><input type="text" name="cena" maxlength="7" size="7"></td></tr>
<tr><td colspan="2"><input type="submit" value="Zapisz"></td></tr>
</table>
</form>
</body>
</html>
Skrypt PHP:
CODE
<html>
<head>
<title>"Książkorama" - rezultat wstawiania nowej książki</title>
</head>
<body>
<h1>"Książkorama" - rezultat wstawiania nowej książki </h1>
<?php
// utworzenie krótkich anzw zmiennych
$isbn=$_POST['isbn'];
$autor=$_POST['autor'];
$tytul=$_POST['tytul'];
$cena=$_POST['cena'];
if (!$isbn || !$autor || !$tytul || !$cena)
{
echo 'Nie podano wszystkich potrzebnych danych.<br />'
.'Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}
if (!get_magic_quotes_gpc())
{
$isbn = addslashes($isbn);
$autor = addslashes($autor);
$tytul = addslashes($tytul);
$cena = doubleval($cena);
}
@$db = new mysqli('localhost', 'ksiazkorama', 'ksiazkorama', 'ksiazki');
if (mysqli_connect_errno())
{
echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;
}
$zapytanie = "insert into ksiazki values ('".$isbn."', '".$autor."', '".$tytul."', '".$cena."')";
$wynik = $db->query($zapytanie);
if ($wynik)
echo $db->affected_rows.' książka zapisana do bazy.';
?>
</body>
</html>
i jeszcze to co mi zwraca przeglądarka:
CODE
"KsiÄ�źkorama" - rezultat wstawiania nowej ksiÄ�źki
' .'WrĂłÄ�do poprzedniej strony i sprĂłbuj ponownie.'; exit; } if (!get_magic_quotes_gpc()) { $isbn = addslashes($isbn); $autor = addslashes($autor); $tytul = addslashes($tytul); $cena = doubleval($cena); } @$db = new mysqli('localhost', 'ksiazkorama', 'ksiazkorama', 'ksiazki'); if (mysqli_connect_errno()) { echo 'BĹ��: : PoĹ��zenie z bazÄ�danych nie powiodĹ� siÄ� SprĂłbuj jeszcze raz później.'; exit; } $zapytanie = "insert into ksiazki values ('".$isbn."', '".$autor."', '".$tytul."', '".$cena."')"; $wynik = $db->query($zapytanie); if ($wynik) echo $db->affected_rows.' ksiÄ�źka zapisana do bazy.'; ?>
Podejrzewam że trzeba gdzieś zastosować znak ucieczki, ale nie do końca wiem gdzie. Proszę o pomoc.
Pozdrawiam