Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Bład w kodzie
Forum PHP.pl > Forum > Przedszkole
MSPM5
Witam mam problem z tym kodem. Po odświeżeniu strony dodają się do bazy puste rekordy, przycisk działa ale coś się wykonuje samoczynnie i nie wiem gdzie jest bład.
Kod
<?php
$con = mysql_connect("localhost", "user", "pass");
if (!$con)
{
   die('Nie mozna połączyć:' . mysql_error());
}
mysql_select_db("baza",$con);
$add = $_POST['add'];
$sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
if(!mysql_query($sql,$con))
{
   die('Bład: ' . mysql_error());
}
   echo "Dodany";
mysql_close($con);
?>
<form action="admin.php" method="POST">
   <textarea rows="10" cols="30" name="add"></textarea><br>
   <input type="submit" value="Dodaj">
</form>

Damonsson
Musisz jakoś (if isset POST) sprawdzić, czy został kliknięty przycisk i dopiero wtedy wewnątrz tej zależności wysyłać zapytanie MySQL.
MSPM5
Też tak myślałem ale to nie działa...

Kod
<?php
if (isset($_POST['add'])){
   $add = $_POST['add'];    
}
$con = mysql_connect("localhost", "user", "pass");
if (!$con)
{
   die('Nie mozna połączyć:' . mysql_error());
}
mysql_select_db("baza",$con);
$sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
if(!mysql_query($sql,$con))
{
   die('Bład: ' . mysql_error());
}
   echo "Dodany";
mysql_close($con);
?>
<form action="admin.php" method="POST">
   <textarea rows="10" cols="30" name="add"></textarea><br>
   <input type="submit" value="Dodaj">
</form>
nospor
Przecież ty nadal wykonujesz zapytanie niezależnie od tego czy POST poszedł czy nie.... Przeczytaj jeszcze raz UWAŻNIE post Damonsson

A do kodu PHP używaj BBOCODE PHP a nie CODE.
I na przyszłość tytułuj tematy jak człowiek a nie jak dwuletnie dziecko wink.gif
Temat: Jak poprawnie zatytulowac watek
prz3kus
Prosty if i cieszy smile.gif
  1. <?php
  2.  
  3. if($_POST['add'])
  4. {
  5. $add = $_POST['add'];
  6. $con = mysql_connect("localhost", "user", "pass");
  7. if (!$con)
  8. {
  9. die('Nie mozna połączyć:' . mysql_error());
  10. }
  11. mysql_select_db("baza",$con);
  12. $sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
  13. if(!mysql_query($sql,$con))
  14. {
  15. die('Bład: ' . mysql_error());
  16. }
  17. echo "Dodany";
  18. $_POST['add'] = null;
  19. }
  20. ?>
  21. <form action="admin.php" method="POST">
  22. <textarea rows="10" cols="30" name="add"></textarea><br>
  23. <input type="submit" value="Dodaj">
  24. </form>
MSPM5
Dzięki prz3kus teraz działa.
!*!
To że działa nie znaczy że jest dobry. Gdzie sprawdzasz czy POST istnieje, czy został wysłany? Po co chcesz zakończyć połączenie w wypadku jego "braku"? Już nie wspominając że w ogóle tu niczego nie filtrujesz.
MSPM5
  1. <?php
  2. if(isset($_POST['add'])){
  3. $add = addslashes(htmlspecialchars($_POST['add']));
  4. }
  5. if($_POST['add']){
  6. $add = $_POST['add'];
  7. $con = mysql_connect("localhost", "user", "root");
  8. if (!$con)
  9. {
  10. die('Nie mozna połączyć:' . mysql_error());
  11. }
  12. mysql_select_db("baza",$con);
  13. $sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
  14. if(!mysql_query($sql,$con))
  15. {
  16. die('Bład: ' . mysql_error());
  17. }
  18. echo "Dodany";
  19. $_POST['add'] = null;
  20. }
  21. ?>
peter13135
To fajnie, że sprawdzasz czy istnieje indeks add w tablict $_POST za pomocą isset($_POST['add']), ale pare linijek dalej nadal korzystasz z zapisu if($_POST['add']), co w Twoim przypadku nie jest prawidłowe.
MSPM5
Poprawione.

  1. <?php
  2. if(isset($_POST['add']))
  3. {
  4. $add = addslashes(htmlspecialchars($_POST['add']));
  5. $con = mysql_connect("localhost", "user", "pass");
  6. if (!$con)
  7. {
  8. die('Nie mozna połączyć:' . mysql_error());
  9. }
  10. mysql_select_db("baza",$con);
  11. $sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
  12. if(!mysql_query($sql,$con))
  13. {
  14. die('Bład: ' . mysql_error());
  15. }
  16. echo "Dodany";
  17. $_POST['add'] = null;
  18. }
  19. ?>
peter13135
1. nl2br - wiesz co robi ta funkcja ?
2. po co robisz to : $_POST['add'] = null; ?
3. zauważ, że gdy warunek
  1. if(isset($_POST['add']))
nie jest spełniony, Twój kod wykonuje tą instrukcję :
ale nie wykonuje tej instrukcji :
  1. $con = mysql_connect("localhost", "user", "pass");
MSPM5
Cytat
1. nl2br - wiesz co robi ta funkcja ?

Dodaje mi <br /> po naciśnięciu enter.
Cytat
2. po co robisz to : $_POST['add'] = null; ?

Zapomniałem to wywalić późno jest ;D.
Cytat
3.

Hmm nie rozumiem dla czego to jest źle...Jeżeli nic nie dodaje chyba niema potrzeby łączyć sie z bazą questionmark.gif
peter13135
1.
OK, rozumiem już po co dodałeś tą funkcję. Ale lepiej by było jakbyś użył jej na zmiennej add, a nie całym zapytaniu.
3. Jeżeli nic nie dodajesz, to nie ma potrzeby łączyć się z bazą... a jeżeli się nie połączyłeś z bazą to nie ma potrzeby się z nią rozłączać. Błąd polega na tym, że próbujesz zamknąć drzwi których nie otworzyłeś.
MSPM5
Cytat
3. Jeżeli nic nie dodajesz, to nie ma potrzeby łączyć się z bazą... a jeżeli się nie połączyłeś z bazą to nie ma potrzeby się z nią rozłączać. Błąd polega na tym, że próbujesz zamknąć drzwi których nie otworzyłeś.

Chyba zaczynam rozumieć oczywiście moja pomyłka wziąłem to
za to


Zastanawiam się jeszcze czy takie filtrowanie jest wystarczające...

  1. <?php
  2. if(isset($_POST['add'])){
  3. $add = addslashes(htmlspecialchars($_POST['add']));
  4. $con = mysql_connect("localhost", "user", "pass");
  5. if (!$con)
  6. {
  7. die('Nie mozna połączyć:' . mysql_error());
  8. }
  9. mysql_select_db("baza",$con);
  10. $sql = "INSERT INTO tabela SET id='null', arty='$add'";
  11. if(!mysql_query($sql,$con))
  12. {
  13. die('Bład:' . mysql_error());
  14. }
  15. echo "Dodany";
  16. }
  17. ?>
!*!
Powiedzmy. Sprawdź jeszcze na tej samej zasadzie czy formularz został wysłany, input/button musi mieć name. Zainteresuj się PDO zamiast mysql_* bo za jakiś czas wylecą z PHP. Aha no i teraz nie kończysz połączenia. dodaj też trim()
MSPM5
  1. <?php
  2. if(isset($_POST['submit'])&& $_POST['add'] or mysql_close($con)){
  3. $add = trim(addslashes(htmlspecialchars($_POST['add'])));
  4. $con = mysql_connect("localhost", "user", "pass");
  5. if (!$con)
  6. {
  7. die('Nie mozna połączyć:' . mysql_error());
  8. }
  9. mysql_select_db("baza",$con);
  10. $sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");
  11. if(!mysql_query($sql,$con))
  12. {
  13. die('Bład:' . mysql_error());
  14. }
  15. echo "Dodany";
  16. }
  17. ?>
  18. <form action="admin.php" method="POST">
  19. <textarea rows="10" cols="30" name="add"></textarea><br>
  20. <input type="submit" value="Dodaj" name="">
  21. <input type='hidden' name='submit' />
  22. </form>

Cytat
Zainteresuj się PDO zamiast mysql_* bo za jakiś czas wylecą z PHP.

Juz mieli takie pomysły w perl6 żeby ułatwić prace i ten język jest martwy ludzie nie lubią zmian więc nigdy nie wiadomo smile.gif
!*!
W ogóle nie znasz podstaw PHP i zasad działania funkcji.
MSPM5
Cytat
W ogóle nie znasz podstaw PHP i zasad działania funkcji.

W PHP bawie sie 3 dzień wiec sie zgodze, natomiast ty masz 6 lat doświadczenia na forum i wciąż masz problem z czytaniem ze zrozumieniem. Pytanie
Cytat
Zastanawiam się jeszcze czy takie filtrowanie jest wystarczające...

Twoja odpowiedź
Cytat
Powiedzmy.
niepotrzebny tekst który otwiera nowy temat o którym nie mam pojęcia po 3 dniach nauki
Cytat
Sprawdź jeszcze na tej samej zasadzie czy formularz został wysłany, input/button musi mieć name. Zainteresuj się PDO zamiast mysql_* bo za jakiś czas wylecą z PHP. Aha no i teraz nie kończysz połączenia. dodaj też trim()
później wstawiam kod zrobiony w 5min na kolanie i twoja odpowiedź
Cytat
W ogóle nie znasz podstaw PHP i zasad działania funkcji.
nabijaj posty dalej dobiesz do 3k przed końcem swiata pozdro wink.gif.
Niktoś
A ten przykład, zaczerpnąłeś z książki z tutoriala jakiegoś? Jeśli tak to przestań to czytać i sięgnij do innej lektury. W ogóle wiele if'ów jest z będnych w twoim kodzie np.
zamiast:
  1. $con = mysql_connect("localhost", "user", "pass");
  2. if (!$con)
  3. {
  4. die('Nie mozna połączyć:' . mysql_error());
  5. }


można użyć:
  1. $con = mysql_connect("localhost", "user", "pass") or die ('Nie mozna połączyć:' . mysql_error());

Cytat
$sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");

W ogóle te nl2br do niczego nie jest tam potrzebne-wywal to wraz z nawiasami-to ma być zwykły string.
MSPM5
Cytat
W ogóle te nl2br do niczego nie jest tam potrzebne-wywal to wraz z nawiasami-to ma być zwykły string.

Dodaje mi <br /> po naciśnięciu enter.
Niktoś
To jest polecenie do bazy danych, przecież tego nie wyświetlasz.Jak już chcesz mieć znaki podziału z textarea to powinno być:
  1. $sql = "INSERT INTO tabela SET id='null', arty=".nl2br($_POST['add']);
!*!
MSPM5 - niah, bulwersik? biggrin.gif

Jeśli już coś robisz, to rób to dobrze, albo wcale. 5 minut na kolanie nie wystarczy. Moja odpowiedź była adekwatna do tego o co pytałeś. Nie poprawiłeś błędów o które już Ci ktoś wyżej wspomniał, zbudowałeś warunki które w ogóle nie mają sensu.
Przeczytaj pierw jakiś kurs (wikibooks), poznaj zasady działania PHP, a następnie przemyśl to jak Twój skrypt powinien działać.

Do czego Ci te pole ukryte i pusta wartość name? Sprwdź też typ danych, utwórz połączenie wtedy gdy warunki zostną spełnione, tak samo z zakończeniem.

Cytat
Juz mieli takie pomysły w perl6 żeby ułatwić prace i ten język jest martwy ludzie nie lubią zmian więc nigdy nie wiadomo

Perl jest martwy? Skoro wiesz lepiej.
Niktoś
Cytat
Perl jest martwy? Skoro wiesz lepiej.

Coś tam jeszcze żyje.Dalej mnie zastanawia czy to język webowy czy okienkowy.Próbowałem się pobawić przy wdrożeniu jednej aplikacji- dla mnie to magiel i czarna magia więc sobie darowałem- taki offtop z mojej strony.
abort
Cytat(Niktoś @ 26.09.2012, 18:08:38 ) *
Coś tam jeszcze żyje.Dalej mnie zastanawia czy to język webowy czy okienkowy.Próbowałem się pobawić przy wdrożeniu jednej aplikacji- dla mnie to magiel i czarna magia więc sobie darowałem- taki offtop z mojej strony.

Heh, fajnie. Jakieś 10 lat temu też próbowałem się pobawić pewnym językiem. I dałem sobie spokój, bo to była dla mnie czarna magia. Tym językiem był Javascript. O którym dziś nie powiedziałbym, że "coś tam jeszcze żyje". Tego samego nie powiem ani o C ani (na przykład) o fortranie. Mnogość pakietów (i istniejących rozwiązań) w tych językach jest naprawdę poważnym argumentem za tym, by nie mówić "coś jeszcze żyje".
MSPM5
Mowilem o Perl6 ,ze jest martwy moim zdaniem nic sie nie dzieje wszyscy dalej siedza w 5.10 ogolnie perl zostal zepchniety z web przez PHP a do aplikacji okienkowych sa lepsze narzedzia. Teraz jest niezastapiony w pracy administratora generowanie statystyk, automatyzacja itd Perl nie jest martwy ale nie jest modny bo to jak napisal Niktoś magiel i czarna magia.
Cytat
Jeśli już coś robisz, to rób to dobrze, albo wcale. 5 minut na kolanie nie wystarczy. Moja odpowiedź była adekwatna do tego o co pytałeś. Nie poprawiłeś błędów o które już Ci ktoś wyżej wspomniał, zbudowałeś warunki które w ogóle nie mają sensu.
Nie zbudowalem blad jest w tym ,ze przerobilem jakis przyklad wziety z jakiegos kursu zeby dzialal pozniej wy cos zaczeliscie podpowiadac i zaczalem niektore linijki wymieniac i zrobil sie magiel ;D gdybym pisal to od zera to by tego nie bylo a ten kod ktos napisal zmienilem pare rzeczy czegos niezrozumialem i dla tego tak to wyglada.
Cytat
Do czego Ci te pole ukryte i pusta wartość name? Sprwdź też typ danych, utwórz połączenie wtedy gdy warunki zostną spełnione, tak samo z zakończeniem.
Pusta wartosc name to przypadek napisales ,ze input/button musi mieć name mialem dopisac name a robilem cos innego jeszcze i pomieszaly mi sie pliki.
!*!
Cytat(MSPM5 @ 26.09.2012, 19:02:41 ) *
Perl nie jest martwy ale nie jest modny bo to jak napisal Niktoś magiel i czarna magia


Język nie ma być modny, tylko opłacalny, przejrzysty, skalowalny, spełniający założenia programisty wink.gif PHP6 też jest w powijakach, ale nie powiedziałbym że jest martwy. A magiel? czyli znaczy się burdel? PHP ma tak od zawsze.
Niktoś
Ja próbowałem uruchomić perla poprzez fastCGI na IIS zajęło mi to dwa dni aby pojawił się napis is work na białej stronie.Dwa dni mi to zajęło, gdyż błędy wyświetlenia tylko napisów było spowodowane tym, że brakowało mi szeregu modułów, które musiałem ręcznie doinstalowywać w CPAN'ie -wybacz ale to tylko napisy, więc takie coś chyba powinno być obsługiwane standardowo przy instalacji perla. No właśnie skusiłem się na perla bo o statystyki mi chodziło, a wyszukałem sobie programik godny uwagi -cholewcia wie ile modułów musiałbym zainstalować aby go uruchomić,więc sobie darowałem.
Godnym zainteresowania w tym języku programowania jest studio programistyczne ActivePearl -niestety o dziwo płatne, zważywszy ,że tacy potentaci jak Microsoft, Java Microsystem, PHP i jego frameworki udostępniają swoje platformy za darmo.
Dlatego ten język(perl) jak i flash pójdą w zapomnienie gdyż są płatne.
peter13135
MSP.... Autorze tematu. Pisałem CI, żebyś nl2br użył tylko na zmiennej add, wtedy nikt się do tego nie przyczepi smile.gif

Co do filtrowania zmiennych - jest to wystarczające filtrowanie.
abort
Cytat(Niktoś @ 26.09.2012, 19:32:41 ) *
Godnym zainteresowania w tym języku programowania jest studio programistyczne ActivePearl


ActivePERL, do jasnej. "PERL" od "Practical Extraction and Report Language". Nie od Perły, a tym bardziej nie od piwa "Perła". Przepraszam, że tak ostro, ale irytuje mnie zniekształcanie nazw własnych.

Cytat(Niktoś @ 26.09.2012, 19:32:41 ) *
niestety o dziwo płatne, zważywszy ,że tacy potentaci jak Microsoft, Java Microsystem, PHP i jego frameworki udostępniają swoje platformy za darmo.
Dlatego ten język(perl) jak i flash pójdą w zapomnienie gdyż są płatne.

Tak. A PHPStorm też jest płatny - i czego wg Ciebie to dowodzi? że nie mogę pisać w PHP? Proszę Cię, trzymajmy jakiś poziom dyskusji.
Zresztą, od kiedy istnieje ActivePerl? Bo sam Perl to już ponad 20 lat... Popatrz, jakie to dziwne: bez ActivePerla tyle czasu przetrwał? No niemożliwe, prawda?
MSPM5
Cytat
Język nie ma być modny, tylko opłacalny, przejrzysty, skalowalny, spełniający założenia programisty wink.gif PHP6 też jest w powijakach, ale nie powiedziałbym że jest martwy.
Perl taki jest moze nie idealnie przejrzysty smile.gif ale spelnia swoje zadanie od lat. Jest elastyczny robi to co sie chce a po drugiej stronie jest python ktory jest latwy, przejrzysty i ma dobra reklame a ze dzisiaj sie leci na latwizne to wiekszosc wybierze pythona bo jest teraz na topie i o to mi chodzilo chociaz jak niektorzy mowia python to nie tylko zabawka ale tez potezne narzedzie.
Cytat
A magiel? czyli znaczy się burdel? PHP ma tak od zawsze.
Uzylem slowa magiel w porownaniu do tego co stworzylem i jakims cudem nie posypalo bledami ale prawdziwy magiel zaczal sie jak sprobowalem zrobic to.
Cytat
Sprwdź też typ danych, utwórz połączenie wtedy gdy warunki zostną spełnione, tak samo z zakończeniem.
nie rozumiem dla czego chcesz sprawdzac typ danych w moich pseudo artykolach to nie kalkulator chyba ,ze masz cos innego na mysli.

Cytat
MSP.... Autorze tematu. Pisałem CI, żebyś nl2br użył tylko na zmiennej add, wtedy nikt się do tego nie przyczepi smile.gif
hahah widzialem ,ze pisales i wiedzialem ze sie ktos przyczepi bylem pewien ale nie wiedzialem jak to zrobic pozatym dalej cos nie dziala jakis blad jest w tym kodzie zaraz cos z tym zrobie pewnie cudzyslow zgubiony
  1. $sql = "INSERT INTO tabela SET id='null', arty=".nl2br($_POST['add']);
peter13135
JA tam błędu nie widzę... ale na kij filtrujesz zmienną $add, ja potem dodajesz do bazy i tak $_POST['add'] biggrin.gif
MSPM5
Cytat
JA tam błędu nie widzę... ale na kij filtrujesz zmienną $add, ja potem dodajesz do bazy i tak $_POST['add'] biggrin.gif
Blad jest napewno bo sie strona nie wczytuje i sypie bladami. Kod juz jest poprawiony (chyba) wkleje jak poprawie WSZYSTKO tylko nie bijcie wiem ze to wyglada strasznie biggrin.gif Hmm w ktorym miejscu mam to filtrowac wydaje mi sie ,ze jest dobrze odfiltrowalo mi <hr> wczesniej sie robily krechy na stronie. Blad jest gdzie indziej za szybko wszystko robie jakis nawias.
peter13135
To zapodaj te błędy wink.gif

Jak robisz takie coś :

  1. $add = $_POST['add'];
  2. $add - filtruj($add);
  3.  
  4. $query = "INSERT INTO ...." . $_POST['add'];
  5.  

to dodajesz nieprzefiltrowane dane, bo przefiltrowana jest $add, a nie $_POST['add'] .
MSPM5
Wrzcam caly kod bo zrobil sie balagan

Tresc bledu: Parse error: syntax error, unexpected ')' in /virtual/****/admin.php on line 10

  1. <!DOCTYPE html><html lang="pl">
  2. <head><title>****</title><meta charset="ISO-8859-2"></head>
  3. <body background="black" bgproperties="fixed">
  4. <style type="text/css">
  5. body {background-color:black;color:white;}
  6. </style>
  7. <center>
  8. <h1>
  9. <?php
  10. if(isset($_POST['submit'])&& $_POST['add'])){
  11. $add = trim(addslashes(htmlspecialchars($_POST['add'])));
  12. $con = mysql_connect("localhost", "user", "pass") or die ('Nie mozna połączyć:' . mysql_error());
  13. mysql_select_db("baza",$con);
  14. $sql = "INSERT INTO tabela SET id='null', arty=".nl2br($_POST['add']);
  15. if(!mysql_query($sql,$con))
  16. {
  17. die('Bład:' . mysql_error());
  18. }
  19. echo "Dodany";
  20. }
  21. ?>
  22. <form action="admin.php" method="POST">
  23. <textarea rows="10" cols="30" name="add"></textarea><br>
  24. <input type="submit" value="Dodaj" name="submit">
  25. </form></h1>
koxu1996
W 10 lini za dużo o jedno zamknięcie nawiasu
MSPM5
tak wiem juz to poprawilem ale ma inne bledy jeszcze

wpisuje jeden wyraz i wyskakuje

Bład:Unknown column 'lol' in 'field list'
wpisuje 2 wyrazy i wywala

Bład:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2' at line 1

Niktoś
Żebyś się nie męczył:
  1. <?php
  2. if((isset($_POST['submit']))&&(!empty($_POST['add']))){
  3. $add = trim(addslashes(htmlspecialchars(nl2br($_POST['add']))));
  4. $con = mysql_connect("localhost", "user", "pass") or die ('Nie mozna połączyć:' . mysql_error());
  5. mysql_select_db("baza",$con);
  6. $sql =mysql_query("INSERT INTO tabela SET id='null', arty='$add'",$con) or die('Bład:' . mysql_error());
  7.  
  8. echo "Dodany";
  9. }
  10. ?>
MSPM5
zmienilem ta linijke

  1. $sql = "INSERT INTO tabela SET id='null', arty=".nl2br($_POST['add']);


na to co bylo wczesniej i nie ma bledu

  1. $sql = nl2br("INSERT INTO tabela SET id='null', arty='$add'");


dla czego tak sie dzieje
koxu1996
Wydaje mi się że brakuje apostrofów. Spróbuj czegoś takiego:
  1. $sql = "INSERT INTO tabela SET id='null', arty='".nl2br($_POST['add'])."'";

Ew. Potestuj zapytanie bezpośrednio w bazie
abort
Wyświetl sobie treść zapytania SQL (u Ciebie w zmiennej $sql). Z nami też możesz się podzielić smile.gif
MSPM5
Teraz dziala.

  1. $sql = "INSERT INTO tabela SET id='null', arty='".nl2br($_POST['add'])."'";


tresc tego zapytania
  1. INSERT INTO tabela SET id='null', arty='dupa'Dodany


i poprzedniego

  1. INSERT INTO tabela SET id='null', arty=dopa2Bład:Unknown column 'dopa2' in 'field list'


Niktoś przerobiłem linijke w tym kodzie który dałeś nie zauważylem go wczśniej. Zmieniłem tak jak koxu1996 no i działa

  1. $sql = mysql_query("INSERT INTO tabela SET id='null', arty='".nl2br($_POST['add'])."'",$con) or die('Bład:' . mysql_error());



  1. <?php
  2. if((isset($_POST['submit']))&&(!empty($_POST['add']))){
  3. $add = trim(addslashes(htmlspecialchars($_POST['add'])));
  4. $con = mysql_connect("localhost", "user", "pass") or die ('Nie mozna połączyć:' . mysql_error());
  5. mysql_select_db("baza",$con);
  6. $sql = mysql_query("INSERT INTO tabela SET id='null', arty='".nl2br($_POST['add'])."'",$con) or die('Bład:' . mysql_error());
  7. echo "Dodany";
  8. }
  9. ?>
  10. <form action="admin.php" method="POST">
  11. <textarea rows="10" cols="30" name="add"></textarea><br>
  12. <input type="submit" value="Dodaj" name="submit">
  13. </form></h1>
peter13135
Nadal jest ten błąd o którym pisałem. $add jest przefiltrowana prawidłowo, a $_POST['add'] nie jest przefiltrowana. Powineneś dodać $add do bazy.
MSPM5
chodzi Ci o ta linie questionmark.gif
$sql = mysql_query("INSERT INTO tabela SET id='null', arty='".nl2br($_POST['add'])."'",$con) or die('Bład:' . mysql_error());
peter13135
tak
!*!
Cytat
nie rozumiem dla czego chcesz sprawdzac typ danych w moich pseudo artykolach to nie kalkulator chyba ,ze masz cos innego na mysli.

Po coś to wymyślili. Poczytaj o sql injection.
MSPM5
O to chodzi ? http://php.net/manual/en/function.gettype.php
!*!
Wszytko co powinno Cie interesować z is_* w tym przypadku (art) is_string, do tego sprawdzasz długość np. mb_strlen jak spełniają warunek, przesyłasz, jak nie unset i tyle, tak samo możesz dodatkowo sprawdzać czy dane POST, to na pewno POST. http://php.net/manual/pl/book.filter.php ale to już inna bajka, są też inne opcje, ale to już byś musiał określić co chcesz wprowadzać do bazy.
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.