Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

nochmal Textarea + PHP / MS SQL

0 views
Skip to first unread message

Mark Knochen

unread,
Apr 7, 2006, 5:16:59 PM4/7/06
to
Hallo nochmal:

Es scheint so:

Der Inhalt einer Textarea wird beim 1. Speichern vollständig in die
MSSQL-DB gespeichert.

Bei der Ausgabe erscheint nur ein Teil im Browser.

Beim Versuch, diesen DB-Eintrag zu editieren wird ebenfalls nur ein Teil
im Editierungs-Formular aus der DB geladen. Wenn dann gespeichert wird,
wird logischerweise der abgeschnittene Text gespeichert.

Das ganze ist online, Provider www.domainbox.de / Windows-Server / MS
SQL Datenbank.

Was kann ich nun unternehmen, dass das vollständige Textfeld ausgelesen
wird?

(lokal klappt das ganze ebenfalls nicht, trotz mssql_textsize usw.)

Danke

Mark

Bodo Kaelberer

unread,
Apr 7, 2006, 6:38:31 PM4/7/06
to
Mark Knochen am Fri, 07 Apr 2006 23:16:59 +0200:

> Der Inhalt einer Textarea wird beim 1. Speichern vollständig in die
> MSSQL-DB gespeichert.
>
> Bei der Ausgabe erscheint nur ein Teil im Browser.

Du bist doch Programmierung und nicht nur Surfer und musst Dich daher
bei der Fehleranalyse nicht darauf beschränken, was der Browser Dir
anzeigt. Bekommst aus der Datenbank weniger als drin ist oder geht bei
der Anzeige etwas schief?

--
1 Bodo Kaelberer
123 http://www.webkind.de/ http://www.kaelberer-aio.de/
3 Dem Verständnis ist meist gut getan, wenn man richtig lesen
4 kann.

Mark Knochen

unread,
Apr 7, 2006, 6:40:56 PM4/7/06
to
Bodo Kaelberer wrote:
> Mark Knochen am Fri, 07 Apr 2006 23:16:59 +0200:
>
>
>>Der Inhalt einer Textarea wird beim 1. Speichern vollständig in die
>>MSSQL-DB gespeichert.
>>
>>Bei der Ausgabe erscheint nur ein Teil im Browser.
>
>
> Du bist doch Programmierung und nicht nur Surfer und musst Dich daher
> bei der Fehleranalyse nicht darauf beschränken, was der Browser Dir
> anzeigt. Bekommst aus der Datenbank weniger als drin ist oder geht bei
> der Anzeige etwas schief?
>


Es kommt weniger raus, als drin ist .... sprich, der String wird
abgeschnitten ...

Mark

Mark Knochen

unread,
Apr 7, 2006, 7:29:50 PM4/7/06
to
>
> Es kommt weniger raus, als drin ist .... sprich, der String wird
> abgeschnitten ...
>

Bin ich denn der einzige, dem so was passiert? Selbst beim googlen ist
mir kein weiterer Fall davon untergekommen ...

Mark

Mark Knochen

unread,
Apr 8, 2006, 1:35:41 AM4/8/06
to
Mark Knochen wrote:
>>
>> Es kommt weniger raus, als drin ist .... sprich, der String wird
>> abgeschnitten ...
>>
>

Das speichern in die Tabelle über ein Formular mit PHP-Verarbeitung
funktioniert problemlos.
Da wird der gesamte "lange Text" in die MS SQL Tabelle geschrieben ....

Das Auslesen realisiere ich so:


---schnipp---
$output = mssql_query("SELECT * FROM $table WHERE ID = '$row[moduleID]'");

$row_output = mssql_fetch_array($output);

echo $row_output[text];
---schnipp---

Mark

Bodo Kaelberer

unread,
Apr 8, 2006, 5:10:09 AM4/8/06
to
Hi Mark

Mark Knochen am Sat, 08 Apr 2006 07:35:41 +0200:

> Das speichern in die Tabelle über ein Formular mit PHP-Verarbeitung
> funktioniert problemlos.
> Da wird der gesamte "lange Text" in die MS SQL Tabelle geschrieben ....

Das hast Du wie überprüft?

> Das Auslesen realisiere ich so:
>
> ---schnipp---
> $output = mssql_query("SELECT * FROM $table WHERE ID = '$row[moduleID]'");
>
> $row_output = mssql_fetch_array($output);
>
> echo $row_output[text];
> ---schnipp---

$row_output[text] ? Ist text eine definierte Konstante? Wenn nicht und
Du für obigen Code keine Notice seitens PHPs erhälst, dann hast Du
offenbar das error-Reporting abgestellt, was man beim Entwickeln nicht
tun sollte und schon gar nicht, wenn man einen Fehler sucht.

Also:
error_reporting( E_ALL );


Die ini-Einstellungen betreffs MSSQL hast Du schon auf volle
Redseeligkeit gesetzt?

mssql.min_error_severity = ...
mssql.min_message_severity =...
mssql.textlimit = ....
mssql.textsize = ...

Aber frag mich nicht, was gute Werte sind - ich habe MSSQL nicht im
Einsatz.

Bye

Mark Knochen

unread,
Apr 8, 2006, 5:29:27 AM4/8/06
to
> $row_output[text] ? Ist text eine definierte Konstante? Wenn nicht und
> Du für obigen Code keine Notice seitens PHPs erhälst, dann hast Du
> offenbar das error-Reporting abgestellt, was man beim Entwickeln nicht
> tun sollte und schon gar nicht, wenn man einen Fehler sucht.
>
> Also:
> error_reporting( E_ALL );
>


"text" ist der feldname für das textfeld in der MS SQL Datenbank.

ini_set("session.gc_maxlifetime",7200);
ini_set("error_reporting",E_ALL);
ini_set("display_errors",1);
ini_set("mssql.textlimit",2147483647);
ini_set("mssql.textsize",2147483647);
ini_set("post_max_size",16);
´

und trotz

ini_set("error_reporting",E_ALL);


keine Fehlermeldung


Mark

Jens Peter Möller

unread,
Apr 8, 2006, 8:09:20 AM4/8/06
to
Mark Knochen schrieb:

>> $row_output[text] ? Ist text eine definierte Konstante? Wenn nicht und
>
> "text" ist der feldname für das textfeld in der MS SQL Datenbank.

Bodo wollte Dich damit nur auf Deine falsche Syntax hinweisen.

Falsch: echo $foo[bar]
Richtig: echo $foo['bar']

OK, mit Deinem Problem hat das wohl nichts zu tun.


Gruß
JPM

Bodo Kaelberer

unread,
Apr 8, 2006, 8:51:30 AM4/8/06
to
Mark Knochen am Sat, 08 Apr 2006 11:29:27 +0200:


> "text" ist der feldname für das textfeld in der MS SQL Datenbank.

In Deiner Notation:

echo $row_output[text];

ist text eine Konstante. Wenn diese nicht definiert ist, was Du getan
haben müsstet, dann meldet PHP eine Notice. Wenn Du diese Notice nicht
erhälst, dann stimmt offenbar etwas mit Deinen Fehlermeldungen nicht
und entsprechend können Dir auch andere Fehlermeldungen entgehen.

> ini_set("session.gc_maxlifetime",7200);
> ini_set("error_reporting",E_ALL);
> ini_set("display_errors",1);
> ini_set("mssql.textlimit",2147483647);
> ini_set("mssql.textsize",2147483647);
> ini_set("post_max_size",16);
>
> und trotz
>
> ini_set("error_reporting",E_ALL);
>
> keine Fehlermeldung

Wenn Du die Konstante text nicht definiert hast, MUSS es in dieser
Konstellation eine Meldung von PHP geben.

hast Du mal mittels php.ini nachgeschaut, ob die Settings auch so
übernommen werden, wie Du sie vorgibst?

Mark Knochen

unread,
Apr 8, 2006, 11:58:47 AM4/8/06
to
So, momentan sieht es so aus:

Lokal mit PHP 5.0.5 funktioniert es.

Auf dem Server vom Provider mit PHP 4.3.11 wird nur ein Teil der
Textfelder ausgegeben.

Auch ein Versuch, sich bei der DB-Abfrage der bewährten phplib zu
bedienen brachte nur "unvollständige" Ergebnisse.

Möglicherweise doch ein PHP Bug für diese 4er Version?

Mark

Bodo Kaelberer

unread,
Apr 8, 2006, 1:21:24 PM4/8/06
to
Mark Knochen am Sat, 08 Apr 2006 17:58:47 +0200:

Hast Du mal die phpinfo()-Ausgaben von beiden verglichen?

Mark Knochen

unread,
Apr 8, 2006, 1:33:19 PM4/8/06
to
>
> Hast Du mal die phpinfo()-Ausgaben von beiden verglichen?
>

phpinfo() auf dem Server:

mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs 25 25
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit 2147483647 Server default
mssql.textsize 2147483647 Server default
mssql.timeout 60 60


Die textlimit / textsize Werte 2147483647 sind
von mir per ini-set gesetzt.

LOKAL

mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs 25 25
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit 2147483647 2147483647
mssql.textsize 2147483647 2147483647
mssql.timeout 60 60

Sieht - bis auf die Abweichungen beim Master Value bei
textlimit / textsize gleich aus ...

Oder meinst Du andere Werte aus der phpinfo, die relevant sein könnten?

Mark

Mark Knochen

unread,
Apr 8, 2006, 1:35:13 PM4/8/06
to Bodo Kaelberer
Bodo Kaelberer wrote:
> Mark Knochen am Sat, 08 Apr 2006 11:29:27 +0200:
>
>
>
>>"text" ist der feldname für das textfeld in der MS SQL Datenbank.
>
>
> In Deiner Notation:
>
> echo $row_output[text];
>
> ist text eine Konstante. Wenn diese nicht definiert ist, was Du getan
> haben müsstet, dann meldet PHP eine Notice. Wenn Du diese Notice nicht
> erhälst, dann stimmt offenbar etwas mit Deinen Fehlermeldungen nicht
> und entsprechend können Dir auch andere Fehlermeldungen entgehen.
>
>
Um das hier nochmal einzuwerfen:

In meinem Original-Script heisst es:

$print = $row_output['text'];

und dann irgendwo am schluss: echo $print;

Mark

Mark Knochen

unread,
Apr 9, 2006, 11:46:33 AM4/9/06
to


Lokal, mit Zugriff auf den MS SQL Server vom Provider klappt auch...
Nur eben online auf dem Webspace mit Zugriff auf den MSSQL-Server ...

da haut es immer noch nicht hin...

Mark

Bodo Kaelberer

unread,
Apr 9, 2006, 12:23:09 PM4/9/06
to
Abend

Mark Knochen am Sun, 09 Apr 2006 17:46:33 +0200:

> Lokal, mit Zugriff auf den MS SQL Server vom Provider klappt auch...
> Nur eben online auf dem Webspace mit Zugriff auf den MSSQL-Server ...

Das klingt, als solltest Du mal den Betreiber des Servers anrufen.

Mark Knochen

unread,
Apr 10, 2006, 4:55:41 PM4/10/06
to
> Das klingt, als solltest Du mal den Betreiber des Servers anrufen.
>

So, für alle, die das Ende des Dramas noch interessiert.
Ich habe beim Provider angerufen, dann haben wir mal die phpinfo-Daten
ausgetauscht, der Provider hat seine mssql.textlimit / textsize-Werte
hoch gesetzt .... und alles funktionierte ...

Ich begreife trotzdem nicht, wieso vor mir offensichtlich nie jemand ein
Problem damit hatte - aber immerhin war der Support ziemlich schnell bei
der Sache ...

Danke nochmal an alle, die mit versucht haben zu helfen ..

Mark

Bodo Kaelberer

unread,
Apr 10, 2006, 6:11:16 PM4/10/06
to
Mark Knochen am Mon, 10 Apr 2006 22:55:41 +0200:

> Ich habe beim Provider angerufen, dann haben wir mal die phpinfo-Daten
> ausgetauscht, der Provider hat seine mssql.textlimit / textsize-Werte
> hoch gesetzt .... und alles funktionierte ...

Hatte Dein phpinfo() nicht die hohen Werte angezeigt? Wieso musste
dann der Provider noch etwas hochsetzen?

Mark Knochen

unread,
Apr 11, 2006, 2:27:53 AM4/11/06
to
Bodo Kaelberer wrote:
> Mark Knochen am Mon, 10 Apr 2006 22:55:41 +0200:
>
>
>>Ich habe beim Provider angerufen, dann haben wir mal die phpinfo-Daten
>>ausgetauscht, der Provider hat seine mssql.textlimit / textsize-Werte
>>hoch gesetzt .... und alles funktionierte ...
>
>
> Hatte Dein phpinfo() nicht die hohen Werte angezeigt? Wieso musste
> dann der Provider noch etwas hochsetzen?
>

Ja, wenn ich das wüsste .... Anhand der aktuellen phpinfo-Ausgaben kann
ich zumindest sehen, dass der Provider jetzt standardmäßig die Werte für
mssql.textsize / mssql.textlimit auf Maximalwerte gesetzt hat, sowohl im
Local Value, als auch im Master Value. (Mein Hochsetzen der Werte konnte
sich nur auf die Local Value Werte bezogen haben ... denke ich)

Laut Provider sind das auch die einzigen Dinge, die geändert worden sind.

Falk

0 new messages