Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] dodawanie danych do bazy, co zrobic, aby uzytkownik nie mogl wpisac np: "ciastko"?
godzio89
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 18.07.2008

Ostrzeżenie: (0%)
-----


Ok mam takie skrypty:

nowyprodukt.htm
  1. <title>Dodaj nowy produkt</title>
  2. </head>
  3. <form action="nowyprodukt.php" method="post">
  4.  
  5. Numer produktu: <input type="text" name="nrproduktu" maxlength="3" size="4"><br /><br />
  6. Nazwa produktu: <input type="text" name="nazwaproduktu" maxlength="30" size="30"><br /><br />
  7. Cena: <input type="text" name="cena" maxlength="5" size="6"><br><br><br>
  8.  
  9. <input type="submit" value="Wstaw do bazy">
  10. </form>
  11. </body>
  12. </html>


nowyprodukt.php
  1. <?php
  2.  
  3. $nrproduktu = $_POST['nrproduktu'];
  4. $nazwaproduktu = $_POST['nazwaproduktu'];
  5. $cena = $_POST['cena'];
  6.  
  7. if (!$nrproduktu || !$nazwaproduktu || !$cena)
  8.  
  9.  {
  10. print "Nie zostały wypełnione wszystkie pola";
  11.  }
  12.  
  13. $nrproduktu = addslashes($nrproduktu);
  14. $nazwaproduktu = addslashes($nazwaproduktu);
  15. $cena = addslashes($cena);
  16.  
  17. @$db = mysql_pconnect("localhost", "root", "");
  18. if (!$db)
  19. {
  20. print "Nie można nawiązać połączenia z bazą danych";
  21. }
  22.  
  23. mysql_select_db("sklep");
  24.  
  25. $query = "insert into produkty values ('".$nrproduktu."', '".$nazwaproduktu."', '".$cena."')";
  26. $result = mysql_query($query);
  27.  
  28. if ($result)
  29. print "Towar <b>".$nazwaproduktu."</b> został dodany do bazy danych.";
  30. else { print "W bazie istnieje już produkt o tym numerze."; }
  31.  
  32. ?>


baza.php --> tutaj wyswietla sie baza
  1. <?php
  2. @$db = mysql_connect("localhost", "root", "");
  3. if(!$db)
  4. {
  5. echo 'Wystapil blad w polaczeniu';
  6. }
  7.  
  8. mysql_select_db("sklep");
  9.  
  10. $query ="select * from produkty";
  11. $result = mysql_query($query);
  12. $num_results = mysql_num_rows($result);
  13.  
  14. echo '<p>Ilosc produktow w bazie danych: '.$num_results.'</p>';
  15. for ($i=0; $i<$num_results; $i++) {
  16. $row = mysql_fetch_array($result);
  17. echo ($i+1);
  18. echo stripslashes($row['nazwaproduktu']);
  19. echo 'cena: ';
  20. echo stripslashes($row['cena']);
  21. echo 'zl, nr:';
  22. echo stripslashes($row['nrproduktu']);
  23. echo '<br />';
  24. }
  25. ?>


I teraz mam problem. Jak dodaje produkt o nazwie:
Kod
   "ciastka" --> razem z apostrofami!


To wyswietli mi sie w baza.php
CODE

5"ciastko"cena: 9.99zl, nr:5

Da sie jakos zrobic, zeby nie mozna bylo wpisywac takich znakow jak
CODE

"", '', (), itp?


Ten post edytował Ociu 27.07.2008, 09:08:44
Powód edycji: poprawiam bbCode (ociu)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
godzio89
post
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 1
Dołączył: 18.07.2008

Ostrzeżenie: (0%)
-----


Mam taki kod i niestety nie dziala;/Nie sprawdza mi czy wpisze niedozwolone znaki np:
CODE

mleko)

Normalnie wstawia mi takie cos do bazy;/Moze tutaj jest cos zle?
CODE

$query = "select * from zleznaki";
$results = mysql_query($query);
if (strpos($nazwaproduktu, $results))
{
echo 'wpisales niedozwolone znaki w nazwie produktu!';
exit;
}

Caly plik php:
CODE

<?
$nrproduktu = $_POST['nrproduktu'];
$nazwaproduktu = $_POST['nazwaproduktu'];
$cena = $_POST['cena'];

if (!$nrproduktu || !$nazwaproduktu || !$cena)

{
print "Nie zostały wypełnione wszystkie pola";
exit;
}

@$db = mysql_connect("localhost", "root", "");
if (!$db)
{
print "Nie można nawiązać połączenia z bazą danych";
exit;
}

mysql_select_db("sklep");

$query = "select * from zleznaki";
$results = mysql_query($query);
if (strpos($nazwaproduktu, $results))
{
echo 'wpisales niedozwolone znaki w nazwie produktu!';
exit;
}

$nrproduktu = addslashes(htmlspecialchars($nrproduktu));
$nazwaproduktu = addslashes(htmlspecialchars($nazwaproduktu));
$cena = addslashes(htmlspecialchars($cena));



$query = "insert into produkty values ('".$nrproduktu."', '".$nazwaproduktu."', '".$cena."')";
$result = mysql_query($query);

if ($result)
print "Towar <b>".$nazwaproduktu."</b> został dodany do bazy danych.";
else { print "W bazie istnieje już produkt o tym numerze."; }

?>


Ten post edytował godzio89 27.07.2008, 14:17:26
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 14:43