Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][PHP + Formularze] Gdzie robię błąd ?
Forum PHP.pl > Forum > Przedszkole
slayerro
Witajcie.
Siedzę nad tym od 23:00 (aktualnie jest 4:57) i nie mogę zrozumieć - gdzie jest błąd. Prosiłbym was o rzucenie okiem na kod, pewnie gdzieś jest prosty błąd, którego ja nie moge dostrzec. Problem polega na tym, że próbuje dane z formularza zapisać w bazie danych MySQL. Napisałem formularz i podpiąłem go pod prostą funkcyjkę: (plik dodaj.php - nie zwracajcie prosze uwagi na połączenie z serwerem. Na razie chciałbym, żeby zmienna $imie przybrała wartosć z formularza)
CODE
<?php
$sql_conn = mysql_connect('localhost', 'root', 'krasnal');

if ($sql_conn)
echo ("Jest serwer");
else
echo ("Nie ma <br>");

$database = mysql_select_db('test');


if ($database)
echo ("Jest baza");
else
echo ("Nie ma");

$imie=$_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$email = $_POST['email'];


echo ("To jest imie $imie");

//$zapytanie = "INSERT INTO `tabelka` (`id`, `imie`, `nazwisko`, `email` ) VALUES ('', '$imie', '$nazwisko', '$email')";
//$idzapytania = mysql_query($zapytanie);

?>


Funkcja powinna wyświetlić Imię podane w formularzu jednak nie wiem czemu tego nie robi. Napisałem, drugi prosty formularz:
CODE
<html>
<head>
<title> Dodawanie rekordów </title></head>
<body>
<form method="POST" action="dodaj.php">
Podaj imię: <input type="text" size="30" name="imie"><br>
Podaj nazwisko: <input type="text" size="40" name="nazwisko"><br>
Podaj e-mail: <input type="text" size="40" name="email"><br>
<input type="submit" value="wyślij!">
</form>
</body>
</html>


Z tym formularzem działa bez problemu, natomiast z tym już nie chce:

http://iem.pw.edu.pl/~adachd/cw2/php/pokaz.txt

Myślałem, że to kwestia tego , że użyhwam id zamiast name jednak zmiana niewiele pomogła...

mech
Dane z formularza są przesyłane dalej ale nie będą przesyłane do bazy bo popełniłeś prosty błąd, a mianowicie nie potrzebnie ciapki wstawiłeś w $zapytanie winksmiley.jpg
Reszta działa przynajmniej u mnie.

  1. <?php
  2. $sql_conn = mysql_connect('localhost', 'root', 'krasnal');
  3.  
  4. if ($sql_conn)
  5. echo ("Jest serwer");
  6. else
  7. echo ("Nie ma <br>");
  8.  
  9. $database = mysql_select_db('test');
  10.  
  11.  
  12. if ($database)
  13. echo ("Jest baza");
  14. else
  15. echo ("Nie ma");
  16.  
  17. $imie = $_POST['imie'];
  18. $nazwisko = $_POST['nazwisko'];
  19. $email = $_POST['email'];
  20.  
  21.  
  22. echo ("To jest imie $imie");
  23.  
  24. //$zapytanie = "INSERT INTO tabelka (id, imie, nazwisko, email ) VALUES ('', '$imie', '$nazwisko', '$email')";
  25. //$idzapytania = mysql_query($zapytanie);
  26.  
  27. ?>
blooregard
Cytat
onsubmit="if (sprawdz(this)) return true; return false"

A co jest tu? Sprawdzałeś, czy walidacja w JS na pewno zwraca true?
Formularze te różnią się właśnie tym, że jeden ma walidację, a ten testowy nie, więc od tego chyba powinieneś zacząć.

Cytat
//$zapytanie = "INSERT INTO tabelka (id, imie, nazwisko, email ) VALUES ('', '$imie', '$nazwisko', '$email')";

Cytat
@mech: Dane z formularza są przesyłane dalej ale nie będą przesyłane do bazy bo popełniłeś prosty błąd, a mianowicie nie potrzebnie ciapki wstawiłeś w $zapytanie

Bardzo ciekawe spostrzeżenie... Udało Ci się kiedyś zapisać ciąg znakowy do bazy bez apostrofów?

@mech, Kolega napisał, że nie wyświetla się zmienna z tablicy POST, a nie, że dane nie zapisują się do bazy.
slayerro
Generalnie wywalilem wszystko i nadal POST nie zwraca tego co bym sobie życzył. Napisałem drugi identyczny formularz tylko bez walidacji i działa OK, w starym wywaliłem walidacje i nie działa ;(

Przerzuce chyba teraz inputy do starego formularza z walidacja zobaczymy czy wtedy zadziała
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.