baszar
10.03.2013, 09:29:33
Witam, zrobiłem sobie system newsów i mam problem gdyż jak chce wpisać długi tekst taki jak np.:
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Wtedy pisze, że dodało normalnie informacja, ale wpis nie dodaje się do bazy. Tekst jest wklejany do edytora WYSWiG.
Co może byc?
kubek3898
10.03.2013, 09:36:55
Pole moze byc typu varchar z ograniczona iloscia znakow.
muk4
10.03.2013, 09:40:56
Skoro używasz edytora to sprawdź czy tekst jest w zmiennej i czy dobrze go przekazujesz do zapytania MySQL
baszar
10.03.2013, 09:42:48
W bazie typ jest TEXT ;/
Dobrze bo małe wiadomości przesyła bez problemu, jest problem z większymi
Kod jaki podałeś, wszystkich Nas oślepia.
baszar
10.03.2013, 10:26:08
Racja sorka
<?php
$tytul = $_POST['tytul'];
$tresc = $_POST['tresc'];
$autor = $_SESSION['nick'];
if(isset($_POST['dodaj'])){
if(!$tytul || !$tresc) {
<div class="nNote nFailure hideit">
<p>Nie wypełniłeś wszystkich pól!</p>
</div>
';
}else{
mysql_query("INSERT INTO news SET tytul='$tytul', tresc='$tresc', autor='$autor'");
<div class="nNote nSuccess hideit">
<p>Pomyślnie dodałeś newsa!</p>
</div>
';
}
}
?>
<form action="addNews.php" class="mainForm" method="POST">
<div class="rowElem"><label>Tytuł Newsa:
</label><div class="formRight"><input type="text" name="tytul" class="rightDir" title="Wpisz tytuł newsa" /></div><div class="fix"></div>
<div class="head"><h5 class="iPencil">Treść Newsa
</h5></div> <input type="submit" value="Dodaj Newsa" class="greyishBtn submitForm" name="dodaj"/>
Pokaż jeszcze zrzut z bazy, jej strukturę, bo może z tym polem text jest coś nie tak. I czy jesteś pewien że
coś zwraca?
baszar
10.03.2013, 11:08:40
baszar
10.03.2013, 11:34:34
Blad MySQL: 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 'Trebuchet MS', sans-serif, Georgia, Courier, 'Times New Roman', serif; line-heig' at line 1
kamil_lk
10.03.2013, 12:01:17
INSERT INTO news SET tytul='$tytul', tresc='$tresc', autor='$autor'
Jesteś pewny, że to zapytanie jest dobrze skonstruowane?
baszar
10.03.2013, 21:19:25
A dlaczego sądzisz, że jest źle, jeżeli dodaje krótkie tekst a długich nie chce?
kamil_lk
10.03.2013, 21:30:02
Nie spotkałem się jeszcze z tego typu zapytaniem.
Ogólnie insert wygląda tak:
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)
A update tak:
UPDATE table_name SET column1=value, column2=value2
StrefaPi
10.03.2013, 21:37:21
a nie powinno być tak:
INSERT INTO news (tytul, tresc, autor) VALUES ('$tytul', '$tresc', '$autor');
druga sprawa dość ciekawy błąd, czy umieszczasz w bazie treść w postaci kodu html?
jak wygląda
_Borys_
10.03.2013, 21:38:55
Dlatego nie wsadza do bazy bo masz w zmiennej apostrof, zastosuj np. mysql_real_escape_string() do zmiennej a potem do bazy.
kamil_lk
10.03.2013, 21:42:30
I kolejna rzecz to filtracja danych przekazywanych do zapytania. Może to one Ci wszystko wysypują?
Użyj
mysql_escape_string() do filtracji.
edit:
--- no i znaleźli się szybsi
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.