<?php
$Imie=$_GET["Imie"];
$plec=$_GET["plec"];
$data=$_GET["data"];
$Komentarz=$_GET["numer"];
$Komentarz1=$_GET["numer1"];
$con = new mysqli("127.0.0.1","root","","silownia1");
$q="INSERT INTO dane osobowe (Imie, plec, data, numer, numer1) VALUES ('".$Imie."' , '".$plec."', '".$data."', '".$Komentarz."', '".$Komentarz1."'); ";
$wynik=$con->query($q)
if($wynik=$con->query($q))
while($row=$wynik->fetch_array())
echo $row[$ff] . "<br/>";
else
echo $con->errno . " " . $con->error;
?>
A nie brakuje Ci średnika na końcu linii poprzedniej?
jedną z głównych zasad języka PHP (jak i wielu innych – m. in. C i Perla) jest umieszczenie na końcu każdej instrukcji (niekoniecznie linii) znaku średnika (’;’). Można go pominąć tylko jeśli w danym miejscu następuje przejście do trybu HTML, a więc po danej linii następuje symbol przejścia do trybu HTML.
cerrato napisał(a):
A nie brakuje Ci średnika na końcu linii poprzedniej?
chodzi ci o linie 10 ?
Chodzi o linię przed tą, w której jest if
i która to zgłasza błąd - $wynik=$con->query($q)
- średnika brak.
A tak poza tym to taki sposób działania na bazie jest mega ryzykowny i podatny na SQL injection
- https://pl.wikipedia.org/wiki/SQL_injection.
Nigdy nie dawaj w treści zapytania danych pobranych z frontu (czyli - od użytkownika) bez jakiejkolwiek filtracji.
cerrato napisał(a):
Chodzi o linię przed tą, w której jest
if
i która to zgłasza błąd -$wynik=$con->query($q)
- średnika brak.
dodałem średnik w linijce 11,12,13 i teraz wywala błąd w 15
Bo przed else
się nie daje. Naprawdę książki nie gryzą
no usunąłem przed else i dalej pokazuje błąd w 15
Nie wolno sklejać zapytań w taki sposób jak Ty zrobiłeś bo to jest jedna z najpoważniejszych dziur w bezpieczeństwie aplikacji (sqlInjection).
- Poczytaj o przekazywaniu wartości do zapytania jako parametry
- Każdą zmienną taką jak $Imie, $Plec itd... musisz przepuścić przez funkcję: https://www.php.net/manual/en/mysqli.real-escape-string.php
$q="INSERT INTO dane osobowe (Imie, plec, data, numer, numer1) VALUES ('".$Imie."' , '".$plec."', '".$data."', '".$Komentarz."', '".$Komentarz1."'); ";
O wiele czytelniej i bezpieczniej byłoby też gdybyś to zapisał tak:
$Imie = mysqli_real_escape_string ( $Imie );
$plec = mysqli_real_escape_string ( $plec );
(...)
$q="INSERT INTO dane osobowe
(Imie, plec, data, numer, numer1)
VALUES
('{$Imie}', '{$plec}', '{$data}', '{$Komentarz}', '{$Komentarz1}'); ";
Programista poziom b2 napisał(a):
no usunąłem przed else i dalej pokazuje błąd w 15
Pamiętaj, że czasem możesz mieć, trzy, pięć, dziesięć błędów w swoim kodzie. Usunięcie jednego może nie naprawić wszystkich pozostałych za jednym razem, więć musisz poprawić kolejne, i kolejne, i kolejne, i dopiero wtedy Twoja aplikacja się włączy.
Twój tekst
Programista poziom b2 napisał(a):
no usunąłem przed else i dalej pokazuje błąd w 15
a konkretnie zdanie i dalej pokazuje błąd
napewniej oznacza że usunąłeś tylko jeden błąd, ale inne błędy nadal pozostają i trzeba je fixnąć wczesniej.