Hoi
Ik heb een PHP script met AJAX (xmlHttp1 objectmodel) en een form met textarea en input/text, waarin bezoekers een lang bericht kunnen invullen.
In de MySQL heb ik een LONGTEXT veld hieraan gekoppeld.

Nu krijg ik de klacht, dat meer een gedeelte van de ingetypte tekst tevoorschijn komt in de outpupagina. In de MySQL zie ik inderdaad ook maar een deel van de tekst, dus die komt niet in zn geheel door.
Het lijkt wel een geheugenprobleem op het systeem van de user... want op mijn eigen syteem had ik dat al van tevoren getest met lange teksten, en ondervond geen problemen.

Weet iemand de oorzaak... en een oplossing ?
tnx
Sla hem dan eens op als 'TEXT' zonder een limiet in het aantal tekens?
Frank,
Kun je code even plaatsen?

@Jaron, dat maakt geen verschil hoor.... denk dat het niet in de DB zit...
Het is een hele lap, de css sla ik maar grotendeels over
weet niet of de <code/> tag werkt, ik zet m er maar omheen, er is bij de 'snel reageren' box geen button [code]

index.php
*************************************
<code>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>VERLANGENS</title>
<style type="text/css">
<!--
//.......
#form {
position:absolute;
top:5px;
right:5px;
border:solid #FF0000 3px;
width:45%;
padding:2px;
}
#boek {
position:absolute;
top:5px;
left:5px;
padding:10px;
border:solid #F5A9A9 2px;
width:50%;
}
body, td, th {
color: #FF0000;
font-family: Verdana;
font-size:14px;
font-weight: 100;
}
body {
background-color: #CEF6F5;
background-image: url(sintplaatje14.gif);
background-repeat: repeat;
}
//.......... etc
-->
</style>
<!--[if gte IE 5.5]>
<style type="text/css">
#info {
border-bottom:#000000 solid 1px;
width:436px;
margin:0px;
}
</style>
<![endif]-->
<script language="javascript">
loader=new Image();
loader.src="sintmotor.gif";
function opacity(id, opacStart, opacEnd, millisec) {
//speed for each frame
var speed = Math.round(millisec / 100);
var timer = 0;

if(opacStart > opacEnd) {
for(i = opacStart; i >= opacEnd; i--) {
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
} else if(opacStart < opacEnd) {
for(i = opacStart; i <= opacEnd; i++)
{
setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}

function changeOpac(opacity, id) {
var object = document.getElementById(id).style;
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}
function addSmilie(code)
{
document.writeform.bericht.value+=code;
document.writeform.bericht.focus();
}
var xmlHttp1

function schrijfboek()
{
xmlHttp1=GetXmlHttpObject()
if (xmlHttp1==null)
{
alert ("je browser ondersteunt geen AJAX!");
return;
}
var naam = document.writeform.naam.value;
var bericht = document.writeform.bericht.value;
var email = document.writeform.email.value;
var website = document.writeform.website.value;
var url1="schrijf.php?schrijf=ja&naam="+naam+"&bericht="+bericht+"&email="+email+"&website="+website;

xmlHttp1.onreadystatechange=stateChanged1;
xmlHttp1.open("GET",url1,true);
xmlHttp1.send(null);
}

function stateChanged1()
{
if (xmlHttp1.readyState==4)
{
document.getElementById("schrijfform").innerHTML=xmlHttp1.responseText;
book(0, "nee");
}
if (xmlHttp1.readyState==3)
{
document.getElementById("schrijfform").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp1.readyState==2)
{
document.getElementById("schrijfform").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp1.readyState==1)
{
document.getElementById("schrijfform").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp1.readyState==0)
{
document.getElementById("schrijfform").innerHTML="<img src='sintmotor.gif' />";
}
}

var xmlHttp

function boek(start, begin)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Je browser ondersteunt geen AJAX!");
return;
}

var url="boek.php?start="+start;
if(begin == "ja") {
opacity('book', 100, 0, 500);
}
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
opacity('boek', 0, 100, 500);
if (xmlHttp.readyState==4)
{
document.getElementById("boek").innerHTML=xmlHttp.responseText;
}
if (xmlHttp.readyState==3)
{
document.getElementById("boek").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp.readyState==2)
{
document.getElementById("boek").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp.readyState==1)
{
document.getElementById("boek").innerHTML="<img src='sintmotor.gif' />";
}
if (xmlHttp.readyState==0)
{
document.getElementById("boek").innerHTML="<img src='sintmotor.gif' />";
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
</script>
</head>

<body>

<div align="center">
<div id="boek">
</div>
<div id="form"><img src="piet8.gif"<br/><br/><br/>
<div id="schrijfform"><font color="blue"><B>Maak je verlanglijstje en vertel wat over jezelf: <br />hobbies, bezigheden, verslavingen, interesses enzo...<br />
(je kan later altijd nog aanvullen)</B></font><br />
<form action="schrijf.php" method="post" name="writeform" id="writeform">
Naam:
<input name="naam" type="text" id="naam">
<br/><br/>
E-mail:
<input name="email" type="text" id="email">

<br /><br/>
Website:
<input name="website" type="text" id="website" value="http://" /><br/>
<br/>
Jij en je verlangens:<br/>
<textarea name="bericht" cols="35" rows="25" id="bericht"></textarea>
<br>
<input name="schrijf" type="button" id="schrijf" value="WENS" onclick="writebook();" />
</form>
<div id='smilies'><a href="#" onclick="addSmilie(':D');"><img src="images/smilies/biggrin.gif" width="20" height="20" border="0" /></a>
//... etc (meer smilies)
</div>
</div>
</div>
</div>
<script language="javascript">
boek(0, "ja");
</script>
</body>
</html>
</code>
*****************************************************
*****************************************************
schrijf.php
*****************************************************
<code>
<?php
error_reporting(E_ALL);
include "config.php";
$melding = "iets";
if($_GET['schrijf']) {
if(!$_GET['naam']) {
$melding = 'Je moet je naam invullen.<br /><form action="schrijf.php" method="post" name="writeform" id="writeform">
Naam:
<input name="naam" type="text" id="naam" value="'.$_GET['naam'].'">
<br>
E-mail:
<input name="email" type="text" id="email" value="'.$_GET['email'].'">
<br />
Website:
<input name="website" type="text" id="website" value="'.$_GET['website'].'" />
<br>
Bericht:<br>
<textarea name="bericht" cols="35" rows="35" id="bericht">'.$_GET['bericht'].'</textarea>
<br>
<input name="schrijf" type="button" id="schrijf" value="WENS" onclick="writebook();" />
</form><div id=\'smilies\'><a href="#" onclick="addSmilie(\':D\');"><img src="images/smilies/biggrin.gif" width="20" height="20" border="0" /></a>
// ... etc (meer smilies_onclick)
</div>';
}else{
if(!$_GET['bericht']) {
$melding = 'Je moet wel een wens noteren.<br /><form action="schrijf.php" method="post" name="writeform" id="writeform">
Naam:
<input name="naam" type="text" id="naam" value="'.$_GET['naam'].'">
<br>
E-mail:
<input name="email" type="text" id="email" value="'.$_GET['email'].'">
<br />
Website:
<input name="website" type="text" id="website" value="'.$_GET['website'].'" />
<br>
Bericht:<br>
<textarea name="bericht" cols="35" rows="45" id="bericht">'.$_GET['bericht'].'</textarea>
<br>
<input name="schrijf" type="button" id="schrijf" value="Schrijf" onclick="writebook();" />
</form><div id=\'smilies\'><a href="#" onclick="addSmilie(\':D\');"><img src="images/smilies/biggrin.gif" width="20" height="20" border="0" /></a><a href="#" onclick="addSmilie(\';)\');"><img src="images/smilies/wink.gif" width="20" height="20" border="0" /></a>
// ... etc (andere smilies)
</div>';
}else{
$query = mysql_query("SELECT * FROM sint WHERE ip='".$_SERVER['REMOTE_ADDR']."' ORDER BY id DESC LIMIT 0 , 1") or die (mysql_error());
$check = mysql_num_rows($query);
if($check!="0") {
while ($obj = mysql_fetch_object($query)) {
$time = $obj->time;
if($time+300>time()){
$melding = "Je kunt maar 1 keer in 5 minuten wensen (spambescherming).";
}else{
mysql_query("INSERT INTO sint (ip, naam, email, bericht, datum, website, time)
VALUES ('".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_GET['naam'])."', '".mysql_real_escape_string($_GET['email'])."', '".mysql_real_escape_string($_GET['bericht'])."', NOW(), '".$_GET['website']."', ".time().")") or die(mysql_error());
$melding = "Je verlangens worden hopelijk vervuld - om ze te zien moet je afsluiten en opnieuw inloggen";

// DIT GAAT NIET GOED NOG, werkt alleen bij één regel aan mezelf:
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", [email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
}
}
}else{
mysql_query("INSERT INTO sint (ip, naam, email, bericht, datum, website, time)
VALUES ('".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_GET['naam'])."', '".mysql_real_escape_string($_GET['email'])."', '".mysql_real_escape_string($_GET['bericht'])."', NOW(), '".$_GET['website']."', ".time().")") or die(mysql_error());
$melding = "Je verlangens zijn genoteerd.";
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", "[email protected]");
// .... etc als hierboven
}
}
}
}else{
$melding = "Er is iets fout gegaan met je wens, bel of mail de Sint.";
}
echo $melding;
?>
</code>
***************************************************
***************************************************

Bij listbox in VB had ik eerder eenzelfde probleem, was toen een memory issue... vandaar mijn vermoeden

Bedankt alvast !
er word ergens een quote niet goed gesloten...
ik heb wat stukken eruit gehaald om t niet te lang te maken, dat kan niet de oorzaak van het probleem zijn denk ik - welke regel bedoel je ?
regel 301 daar had je een quote gemist bij de email:
<?php
mail( "[email protected]", "Verlanglijstjes - automatisch bericht", "Er is een nieuwe toevoeging op kapoentje", [email protected]");
?>
method="post" en ik zie overal $_GET['..'].
@Koen:
dat quotje was weg omdat ik het originele mailadres delete had, per ongeluk de quote meegenomen...

@SanThe
Dat kan gewoon... zie: http://php.net/manual/en/reserved.variables.get.php

Het probleem is niet, dat er geen output is, alleen, dat de ene user minder tekens 'kwijt' kan dan de andere in de inputbox.

De volledige boodschap valt wel in te typen in hun box, maar als die user verzend, dan blijkt er maar een deel aangekomen te zijn in de database.
Zelf heb ik zo'n 100 regels uitgeprobeerd zonder dat ik dat probleem had, maar ik heb dan ook 8GB intern geheugen (als het daaraan ligt, wat me dus niet duidelijk is);
2 andere users konden maar 4-5 regels posten van hun >20 regels,
1 andere had geen probleem met 8 regels.
ps ik denk dus echt dat het met ms ActiveX te maken heeft...

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Reageren