Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: mysql: TEXT blijft leeg  (gelezen 2672 keer)

0 leden en 1 gast bekijken dit topic.

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
mysql: TEXT blijft leeg
« Gepost op: 29 november 2008, 17:23:57 »
De volgende code geeft een vreemd resultaat:
$username=mysql_real_escape_string(htmlentities($_SESSION[username], ENT_QUOTES, 'UTF-8'));
$content=mysql_real_escape_string(htmlentities($_POST[content], ENT_QUOTES, 'UTF-8'));
mysql_query("insert into reacties (file, author, content, time) values ('$view','$username','$content','$time')") or die ("Error: Database niet bereikbaar");

Het veld username en de andere velden worden altijd ingevuld, maar om de één of andere reden blijft het content-veld soms leeg, en soms lukt het wel. De collatie van het content-veld is utf-8_bin, en het is van het type TEXT. Het is niet zo dat er vreemde lettertekens worden ingevuld, het is gewoon tekst met een paar keer \n erin...
De tekst is bovendien nooit groot, slechts een paar lijntjes.

Enig idee waar het aan kan liggen?
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: mysql: TEXT blijft leeg
« Reactie #1 Gepost op: 29 november 2008, 18:08:52 »
Je bedoelt dus dat er wel elke keer een nieuwe record wordt toegevoegd in de tabel 'reacties', maar dat het veld 'content' de ene keer wel de juiste gegevens bevat, en de andere keer niet?

Die met 'soms wel, soms niet' zijn altijd de lastigste...

Wat ik in zo'n geval doe, is eerst een backup maken van de huidige bestanden, dan zo veel mogelijk 'overbodige rommel' eruit gooien tot ik echt enkel de basics overhoud en dan hier en daar een extra 'echo ...' tot ik weet wáár het fout gaat

Aan de code die je liet zien, valt volgens mij niks op aan te merken...

In dit specifieke geval zou ik me er in de eerste plaats van vergewissen dat $_POST['content'] wel degelijk ALTIJD de verzonden gegevens bevat. Indien ja: waar (en vooral waarom) verdwijnt die inhoud. Indien nee: waarom komt die inhoud niet mee?
Met vriendelijke groet,
Janko.

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: mysql: TEXT blijft leeg
« Reactie #2 Gepost op: 29 november 2008, 19:10:31 »
$_POST[content] is altijd gevuld met de juiste informatie. Ik heb nu een paar extra regels ingevoegd om te testen of $content nog wel vol is na de toepassing van mysql_real_escape_string en htmlentities. Als het daar niet in zit, dan zou ik het niet weten...
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline conexxion

  • Nieuw lid
  • Berichten: 2
Re: mysql: TEXT blijft leeg
« Reactie #3 Gepost op: 27 april 2009, 22:52:38 »
waarom maak je niet eerst een sql string, ipv van hem in je mysql_query te stoppen
dan kun je hem echen en zien wat er in zit ...

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: mysql: TEXT blijft leeg
« Reactie #4 Gepost op: 27 april 2009, 23:21:54 »
Dit is lang geleden, maar het probleem was wel opgelost. Het zat hem in de htmlentities-functie dacht ik. als ik ,ENT_QUOTES, 'UTF_8' wegliet uit de htmlentities functie lukte het weer als ik het me goed herinner. Die code reageerde vreemd op bepaalde tekens.

$_POST['content'] bevatte dus wel de juiste gegevens, maar $content was leeg door de htmlentities-fout
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

 


www.combell.com