Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP] Problem z formularzem
Forum PHP.pl > Forum > Przedszkole
kona79
Witam, chcę stworzyć na stronie możliwość dodawania danych do bazy za pomocą formularza wyboru. Stworzyłem formularz z kolorami i rodzajem paliwa, kolory są pobierane z jeden z tabeli, a paliwo przypisane. Problem zaczyna się gdy chcę zapisać dane do bazy. Przy małej walidacji pól, wyskakuje komunikat uzupełnij wszystkie pola, a po usunięciu walidacji komunikat poprawnego dodania do bazy. Bardzo proszę was o pomoc.

Kod
<?php
require_once 'config.php';
$Kolor = $_POST['Kolor'];
$Paliwo =$_POST['Paliwo'];
$query = "SELECT id FROM users order by id desc limit 1";
                    $result = mysql_query($query);
                    $id = mysql_fetch_assoc($result);
                        
                    $id = $id['id'] + 1;


$dodanie = "INSERT INTO ogloszenie (Id,Kolor,Paliwo) VALUES ('$Id','$Kolor','$Paliwo')";
                    mysql_query($dodanie);

echo  "Ogłoszenie zostało dodane!";

?>


Formularz

Kod
<form action="auto_zapisz.php" method="post">
<br><b><font size=2>Kolor:</font></b><br />
<br>
<?php
$query="SELECT Kolor FROM Kolor ORDER BY Kolor ASC";
$result = mysql_query ($query);
echo "<select name='Kolor'>";
"<option value=''>Kolor</option>";
while($nt=mysql_fetch_array($result))
{
echo "<option value=$nt[Kolor]>$nt[Kolor]</option>";
}
echo "</select>";
<font size=2><label for="subject">Rodzaj paliwa: </label></font><select name="subject" id="paliwo">
                    <option value="null">wybierz</option>
                    <option value="Benzyna">Benzyna</option>
                    <option value="Diesel">Diesel</option>
                    </select>
?>
<input type="submit" value="Zapisz" /><br />
</form>


Baza:
Id int(4)
Kolor Varchar (20)
Paliwo Varchar(10)
CuteOne
1. Poczytaj o sql injection
2. Ustaw pole Id jako autoincrement (automatycznie zwiększa id o jeden przy dodawaniu wierszy)
3. Nazwy (name="") elementów formularza nie pasują do tych odbieranych w pliku php($_POST[])
kona79
Kod
<form action="auto_zapisz.php" method="post">
<br><b><font size=2>Kolor:</font></b><br />
<br>
<?php
$query="SELECT Kolor FROM Kolor ORDER BY Kolor ASC";
$result = mysql_query ($query);
echo "<select name='Kolor'><option value=''>Kolor</option>";
while($nt=mysql_fetch_array($result))
{
echo "<option value='$nt[Kolor]'>$nt[Kolor]</option>";
}
echo "</select>";
<font size=2><label for="subject">Rodzaj paliwa: </label></font><select name="Paliwo">
                    <option value="null">wybierz</option>
                    <option value="Benzyna">Benzyna</option>
                    <option value="Diesel">Diesel</option>
                    </select>
?>
<input type="submit" value="Zapisz" /><br />
</form>

Niestety dalej nie działa, próbowałem również wykluczać jedno albo drugie. Dzieje się tak tylko z tymi polami.
CuteOne
  1. <?php
  2. require_once 'config.php';
  3.  
  4. if(!empty($_POST)) {
  5.  
  6. //zobaczmy co masz zapisane w tablicy
  7. echo '<pre>';print_r($_POST);
  8.  
  9. $Kolor = mysql_real_escape_string($_POST['Kolor']);
  10. $Paliwo = mysql_real_escape_string($_POST['Paliwo']);
  11.  
  12.  
  13. $dodanie = "INSERT INTO ogloszenie (Id,Kolor,Paliwo) VALUES ('','$Kolor','$Paliwo')";
  14. mysql_query($dodanie) or die(mysql_error());
  15.  
  16. echo "Ogłoszenie zostało dodane!";
  17. }
  18. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.