Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP + MYSQL] Dziwny błąd przy dodawaniu tekstu, J.W
kimu
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 25.06.2007

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


Witam. Proboje dodać do bazy danych tekst, za pośrenictewm tego skryptu:

  1. <?php
  2. $conn = mysql_connect("mysql.60free.ovh.org","hakara","pppppp");
  3. mysql_select_db("hakara");
  4. $sqla = "SET CHARSET latin2";
  5. mysql_query($sqla);
  6. ?>
  7.  
  8. <body>
  9. <?php
  10. $sql = "INSERT INTO tekst VALUES(0, '".$_POST['tytul']."', '".$_POST['tresc']."', 0, '".$_GET['id']."');";
  11. $wykonaj = mysql_query($sql);
  12.  
  13. if($wykonaj){
  14. echo 'Dodano';
  15. } else {
  16. echo 'Coś poszło nie tak- nie udało się dodać';
  17. }
  18. ?>


I niestety pojawia mi się komunikat: Coś poszło nie tak- nie udało się dodać. Błąd pojawia się podczas dodawania TEGO tekstu. Gdy wpisuje coś innego to dodaje się normalnie. Myślałem że chodzi tutaj o limit znaków ale w tabeli "treść" tekstu jest ustawiona na "text" więc chyba może być dowolna ilość znaków. Na czym więc polega problem ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Blodo
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 1.02.2005

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


Po pierwsze: wywoluj mysql_error() przy bledzie, zebys latwiej wiedzial o co chodzi.
Po drugie: ide o zaklad ze po przemieleniu $_POST['tytul'] i $_POST['tresc'] przez mysql_real_escape_string() wszystko bedzie dzialac. Ofcoz twoj skrypt nadal bedzie wymagal poprawek, jak chocby np. potwierdzenie ze twoje $_GET['id'] to liczba a nie np. jakies zapytanie sql.
Go to the top of the page
+Quote Post
kimu
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 25.06.2007

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


Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/h/a/k/hakara/www/wpis2.php on line 87

Chodzi tutaj o linijke 10 skryptu podanego wyżej. Mógłyś mi Blodo pokazać jak powinien wygladac ten skrypt z tym elementem "mysql_real_escape_string() " ? Jeśli oczywiści nadal uważasz żę powinien pomóc ;-)

Dodam jeszcze budowe tabeli do któej dodawane są teksty:

Pole, Typ, Metoda porównywania napisów, Atrybuty, Null, Domyślnie Dodatkowo Działanie
id, int(30), -, -, Nie, -, auto_increment
tytul, varchar(100), latin2_general_ci, -, Tak, nazwa , -
tekst, text latin2_general_ci, -, Tak, NULL, -
wyswietlen, int(7), -, -, Nie, 0, -
kat, varchar(5), latin2_general_ci, -, Nie, -, -

Ten post edytował kimu 7.09.2007, 09:57:00
Go to the top of the page
+Quote Post
Blodo
post
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 1.02.2005

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


Error mowi ze identyfikator polaczenia jest nieprawidlowy, co mniej wiecej oznacza ze polaczenie zostalo przerwane przed wywolaniem zapytania. Sprawdz czy nie dales gdzies przypadkiem mysql_close() przed linia 87, a jezeli wywolujesz w skrypcie mysql_connect() wiecej niz raz to upewnij sie ze zapytanie korzysta z wlasciwego polaczenia wyloujac mysql_query() tak:
  1. <?php
  2. mysql_query($sql, $conn);
  3. ?>

Gdzie $conn to twoje polaczenie z baza.

mysql_real_escape_string() tutaj wprawdzie nie pomoze jednak, ale tez warto zaznajomic sie z ta funkcja aby polepszyc bezpieczenstwo strony. Np.:
  1. <?php
  2. $_POST['tytul'] = mysql_real_escape_string($_POST['tytul']);
  3. ?>
Go to the top of the page
+Quote Post
kimu
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 25.06.2007

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


W skypcie niema nigdzie "mysql_close() ". Tak jak pisałem gdy dodaje coś innego w kilku słowach to dodaje się normalnie. Ten tekst jakoś nie chce sie dodać (dziwne jest też że jak skasuje jego ostatni akapit to dodaje się normalnie) - wygląda to tak jakby posiadał za dużą ilość znaków, ale to nie jest chyba możliwe :/

Ok, teraz działa. Dodałem tą linkije:

  1. <?php$_POST['tresc'] = mysql_real_escape_string($_POST['tresc']);?>


dzieki za pomoc!

Ten post edytował kimu 7.09.2007, 12:11:19
Go to the top of the page
+Quote Post

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: 23.08.2025 - 18:17