$q_insert="INSERT INTO reacties(s_id,user,datetime,text,code) VALUES ('".$s_id."','$_SESSION['username'],'".$date_today."','".htmlentities($_POST['text'])."','".$_POST['code']."')";
session_start() enzo staat ook allemaal op de pagina, en de velden text en doe zijn allebei van het type TEXT in de database.
Nu is het probleem: er worden soms berichten toegevoegd aan de database, en soms niet
mijn vermoeden is dat er te veel tekst wordt geschreven, maar ik heb het ook zelf uitgeprobeerd, en zelfs 20 lijnen van pakweg 40 tekens per lijn voegt hij niet toe, en normaal zou een 'TEXT'-veld dit gemakkelijk moeten kunnen verwerken.
Je moet sowieso je input beveiligen. Als iemand er nu quotes in heeft staat zal je query niet meer werken. Als je een datetime veld gebruikt voor de datum kun je ook die ook laten invullen zonder tussenkomst van php.
Als je zeker wilt weten wat er aan de hand is kun je het beste eens kijken wat PHP.net: mysqli_error() zegt.
Abbas - 15/05/2009 11:24 (laatste wijziging 15/05/2009 11:25)
Crew .NET
Krijg je een foutmelding of iets dergelijks? Probeer eens een aantal keer met een kleiner bericht en kijk of dat werkt. Echo je query of geef er een resultaat van weer ofzo..
Edit:
Boukefalos was me voor met wat ik wou zeggen! D:
@boukefalos: dat van die input beveiligen klopt, maar daar was ik nog niet ;)
ook dat datetime-veld heb je gelijk in, dat ga ik veranderen.
Maar ik krijg dus geen error (en er staat bij mijn dbc-connectie ook mysqli_error()).
@Arie2Zero: in mijn eerste bericht zeg ik al dat het type 'TEXT' is en niet 'VARCHAR'...
@Boukefalos(opnieuw): ik heb mijn input nu beveiligd met mysqli_real_escape_string() -> hij doet dan niets (ook geen kleine berichten)
daarna met mysql_real_escape_strinh() -> doet hij ook niets
geen mysql_... beveiliging -> hij plaatst wel kleine berichten
Nogn opmerking,.. Gebruikers nooit op Username opslaan, maar op ID =) Numerieke zoekvelden zijn sneller en het is veiliger als iemand zijn naam veranderd wil hebben bijv.
hehe, heb daarjuist een héél lang bericht kunnen plaatsen, en ik denk dat ik het probleem heb
ik zet soms bij mijn berichten een stukje php-code.
ik gebruik nog geen highlighting (daar zit ik nog niet)
een klein stukje, bv <,php echo "blablabla"; ?>, gaat nog, maar een code van bv 5 regels invoegen gaat niet, dan slaat hij niet op, ook al staat er geen tekst bij.
ik gebruik dan htmlentities() en nl2br() om het toch iet of wat deftig te kunnen weergeven, maar er valt niet veel weer te geven.
berichten zonder code kunnen dus blijkbaar wel heel lang zijn.
waar zit het probleem dan?
@Arie2Zero:
in de website waar ik het wil gaan gebruiken gebruik ik al lang id's ipv username, maar omdat ik dit wou gaan testen, had ik geen zin om ook nog eerst de id's te gaan 'vertalen' in de username's, nu kan ik gewoon de $_SESSION['username'] rechtstreeks bij het bericht opslaan.