php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
variablengröße?


 
TriphunEM
09-06-2003, 20:33 
 
ich lese den inhalt eines texfeldes aus...und speicher ihn in einer datei

der text in dem textfeld sieht so aus :

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="570" height="270">
<tr>
<td width="100%" height="270">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="33%">&nbsp;</td>
<td width="33%">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
<tr>
<td width="100%">&nbsp;</td>
</tr>
<tr>
<td width="100%">&nbsp;</td>
</tr>
<tr>
<td width="100%">&nbsp;</td>
</tr>
</table>
</td>
<td width="34%">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
<tr>
<td width="50%">&nbsp;</td>
<td width="50%">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>


der inhalt wird in die variable $s geschrieben.

und dann als datei gespeichert...

der inhalt sieht aber in der datei dann nur so aus :


<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="570" height="270">
<tr>
<td width="100%" height="270">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="33%">


woran kann das liegen? haben variablen nur eine bestimmte speichergröße?

danke für hilfe...

 
Abraxax
09-06-2003, 20:45 
 
wenn du GET als method für dein form nimmst, hast du eine grenze. :teach:

nimm einfach POST.

 
TriphunEM
09-06-2003, 20:51 
 
ich habe post genommen...
woran kann es noch liegen...

 
Abraxax
09-06-2003, 20:56 
 
k.a.
ich tippe mal auf deine zeile 298.8 im php.code.

 
TriphunEM
09-06-2003, 20:58 
 
haha...sehr witzig...trotzdem danke...

 
Abraxax
09-06-2003, 21:01 
 
hast du den fehler jetzt selber schon gefunden? ich kann keinen entdecken. schliesslich sehe ich dein script ja auch nicht.

aber das hättest du dir ja vielleicht bei zeile 298.8 schon denken können. :confused:

meine glaskugel ist nämlich grad in der reinigung zum polieren. :cool:

 
TriphunEM
09-06-2003, 21:15 
 
der php code der die übergebenen daten des formulars in die datei schreibt


/*******************************************************************************
Menüpunkt hinzufügen
*******************************************************************************/
if (@$menuehinzufügen=="Hinzufügen")
{
echo $newmenuename." - ".$newlink." wurden der Sektion ".$selectsection." - ".$selectmenue." hinzugefügt";
if (@$asmenue=="on")
{
WriteIniValue($ini_filename,$selectsection,$newmenuename,$newlink);
}

// INC-Datei mit HTML Code erstellen

$fp1=fopen($newlink,"w");
$newquellcode=stripslashes($newquellcode);
$s=$topwindow.$newtitle.$middlewindow.$newquellcode.$bottomwindow;
fputs($fp1,$newquellcode);

fclose($fp1);

}


der html-quellcode für die eingabe


<!--
Menüpunkt hinzufügen
//-->
<fieldset style="padding: 2">
<legend><span class="BoldText">Menüpunkt hinzufügen</span></legend>
&nbsp;
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="520" id="AutoNumber1" height="250">
<tr>
<td width="208" height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Name des Menüpunktes</span></td>
<td height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Link (z.B menue/menue.inc)</span></td>
</tr>
<tr>
<td width="260" height="24">
&nbsp;&nbsp;<input type="text" name="newmenuename" style="width=250px; height:22px" size="20"></td>
<td width="260" height="24">
&nbsp;&nbsp;<input type="text" name="newlink" style="width=250px; height:22px" size="20"></td>
</tr>
<tr>
<td height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Titel der Seite</span></td>
<td height="19">&nbsp;</td>
</tr>
<tr>
<td width="540" height="27" colspan="2">
&nbsp;&nbsp;<input type="text" name="newtitle" style="width=510px; height:22px" size="20"></td>
</tr>
<tr>
<td width="260" height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Quellcode der Seite</span></td>
<td width="260" height="19">&nbsp;</td>
</tr>
<tr>
<td width="540" height="143" colspan="2">
&nbsp;&nbsp;<textarea name="newquellcode" style="width=509px; height:150px">
Hier bitte neuen Quellcode einfügen. Aber bitte nur den Inhalt in einer Tabelle mit der maximalen Weite von 570 Pixel.
</textarea>
</td>
</tr>
<tr>
<td width="440" height="35" colspan="2" valign="top">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber2">
<tr>
<td width="119">
<p align="center"><input type="submit" value="Hinzufügen" name="menuehinzufügen"></td>
<td width="139"><span class="NormalText">Als Menüpunkt
eintragen ?</span></td>
<td width="14">&nbsp;<span class="NormalText">ja</span></td>
<td width="25" valign="bottom">
<input type="radio" value="on" checked name="asmenue"></td>
<td width="26"><span class="NormalText">&nbsp;nein</span></td>
<td width="177" valign="bottom">
<input type="radio" value="off" name="asmenue"></td>
</tr>
</table>
</td>
</tr>
</table>
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="515" height="44">
<tr>
<td height="44" bgcolor="#C0C0C0">


</td>
</tr>
</table>
</center>
<br>
</fieldset>
</form>



na mal sehen ob du da durch blickst....ich erkenne keinen fehler

 
Abraxax
09-06-2003, 21:18 
 
</form> sehe ich . aber wo ist <form ......> ? :goth:

 
Payne_of_Death
09-06-2003, 21:24 
 
Original geschrieben von Abraxax
</form> sehe ich . aber wo ist <form ......> ? :goth:

Das kannst du auch net sehen das das nicht da ist, um sicher zu gehen hab ich mal im Browser suchen lassen und nada. ;)

@TriphunEM: Kannst du mal deinen HTML-Gewulst mit hilfe ein paar Kommentaren ein wenig erläutern wo was wie passieren soll.

In der hitze fühle ich mich nämlich mit der Datenmenge da ein wenig erschlagen :D

 
TriphunEM
09-06-2003, 21:24 
 
ups...

<form method="POST" action="index.php?content=admin/sections.php&selectsection=<?echo $selectsection;?>">

 
Abraxax
09-06-2003, 21:32 
 
Original geschrieben von TriphunEM
ups...schon mal was von hidden-fields gehört?

<form method="POST" action="index.php">
<input type="hidden" name="content" value="admin/sections.php">
<input type="hidden" name="selectsection" value="<?php echo $selectsection; ?>">

 
TriphunEM
09-06-2003, 21:38 
 
es geht hier leiglich um die input felder und die kannst du doch noch raus lesen oder...wichtig

<textarea name="newquellcode" style="width=509px; height:150px">

der inhalt hiervon soll in eine datei abgespeichert werden....funzt abe rne so richtig....der schreibt nur eine bestimmte länge....

 
Abraxax
09-06-2003, 21:39 
 
dann mache das jetzt doch einfach mal mit denn hidden-fields. :mad:

daran kann es nämlich auch liegen. :teach:

 
TriphunEM
09-06-2003, 21:40 
 
ja sicher doch...aber die variablen die angehangen sind, hab nix mit dem problem zu tun...aber das sollte man ja erkennen...

es geht nur darum das der inhalt des textfeldes nicht komplett geschrieben wird....

 
Abraxax
09-06-2003, 21:43 
 
HAST DU ES GETESTET?

JA ODER NEIN? :mad:

WENN NEIN. -> MACHE ES!!! :teach:

WENN JA -> WAS IST DAS RESULTAT?

wie soll ich dir helfen, wenn du dir nicht helfen lässt. :mad:

 
TriphunEM
09-06-2003, 21:49 
 
ja...hab ich jetzt...

ändert nichts an dem ergebnis...wie ich es gesagt habe...

zia, und jetzt...

gibt es irgendeine angabe in einer textarea die bestimmt viele zeichen sie erfassen soll`...anders kann ich mir das ne erklären

 
Abraxax
09-06-2003, 21:51 
 
Original geschrieben von TriphunEM
gibt es irgendeine angabe in einer textarea die bestimmt viele zeichen sie erfassen soll`...anders kann ich mir das ne erklären eine solche angabe ist mir nicht bekannt. :dontknow: was sagt denn selfhtml dazu?

 
TriphunEM
09-06-2003, 21:56 
 
hab grad gekuckt...da gibts nix....

ich könnte heulen...und was nun

 
Abraxax
09-06-2003, 22:12 
 
mhm. :dontknow:

hast du das mal mit weniger getestet? mal ohne sonderzeichen oder in der art. ich könnte mit vorstellen, dass es ein zeichen geben kann, was nichts guten bedeutet. ;)

hast du das gepostete mal ausgegeben, oder erst NACH dem SCHREIBEN in die datei geschaut?

mache mal ... echo htmlentities(strip_slashes($_POST['newquellcode'])); ... zum test.

 
TriphunEM
09-06-2003, 22:31 
 
der inhalt ist der gleiche wie in der datei....

die variable bekommt irgendwie nicht den komplette inhalt des textareas..

mhhh

 
Abraxax
09-06-2003, 22:33 
 
hast du es mal mit NUR buchstaben und zahlen getestet? nimm mal alle " aus dem inhalt zum test raus.

 
RobertTheHero
10-06-2003, 08:06 
 
Hm ich les gerade,
http://de.php.net/manual/de/function.fputs.php

der 1. komment ist vielleicht für dich interressant, das bei grösseren Variablen die länge bei fputs gebraucht wird.


bschuetz at affinity dot net
23-Dec-1998 02:30

Length is required if you are writing out a lot of data. For instance, if you are base64 decoding an email attachment and writing it out to a file you have to specify the length if the file is over a certian size or else the binary data will be corrupt.

fputs($fp,$binary,strlen($binary));

Will yield the desired results.

When tested with a 1k the length wasn't required but with a larger file, around 27k it needs the length to work properly.



vielleicht hilfts

rth

 
TriphunEM
10-06-2003, 09:12 
 
also den fehler hab ich....

den dieser platzhalter&nbsp;ist der grund warum die variable nicht ganz geschrieben wird...

sobald der umlaut kommt, ist an der stelle schluß...

komisch is nur das es bei der textarea so ist.

wenn ich einer variable manuell den quelltext mit umlauten gebe
funktioniert es

(z.B. $s='<table>...&nbsp;</table>)

und wie kann ich das jetzt beheben...denn platzhalter wie der sind manchmal wichtig in html!

???

 
RobertTheHero
10-06-2003, 10:50 
 
hm versuchs mal mit

<form ... enctype="multipart/form-data" ... >


obwohl es eigentlich nicht sein dürfte, scheint der nach dem & zu cutten, bzw. php cutted da und versuch ne neue variable zu importieren.
Kannst ja vorher mal nen var_dump von $_POST machen, kann mir vorstellen das da dann ne variable wie 'nbsp...' auftaucht.

gruss

rth

 
TriphunEM
10-06-2003, 11:08 
 
wie meinst du das? var_dump von $_POST

 
RobertTheHero
10-06-2003, 11:16 
 
var_dump($_POST);


gibt alle variablen aus die durch post von einem formular übertragen wurden.

 
TriphunEM
10-06-2003, 12:25 
 
als mit var_dump
bekomm ich nur das rausArray[0]{}

und mit dann geht garnix mehr....kommt seite nicht gefunden...
<form ... enctype="multipart/form-data" ... >


noch ne idee

 
RobertTheHero
10-06-2003, 12:36 
 
also der form tag muss schon heissen

<form method="POST" enctype="multipart/form-data" action="index.php?content=admin/sections.php&selectsection=<?echo $selectsection;?>" >


die punkte sollten andeuten das was du schon hast und dazwischen noch enctype="multipart/form-data", weiss jetzt nicht ob du das so gemacht hast ?

rth

 
TriphunEM
10-06-2003, 12:54 
 
also bitte...klar hab ich das so gemacht...warum sollte ich in php programmieren, wenn ich noch nicht mal html richitg kann...

auf jeden fall gehts so ne...

als an dem mit dem & ist was dran das er dort abschneidet, bloß wie kann ich das verhindern...ich weiß kein rat mehr....

 
Abraxax
10-06-2003, 12:57 
 
das ist schon sehr merkwürdig. du könntest jetzt mit JS vor dem senden alle & durch was anderes ersetzen. aber das ist bestimmt nciht die ideallösung.

 
RobertTheHero
10-06-2003, 13:30 
 
also bitte...klar hab ich das so gemacht...warum sollte ich in php programmieren, wenn ich noch nicht mal html richitg kann...


... man erlebt die absonderlichsten sachen hier, also bitte nicht persönlich nehmen.

Desweiteren

var_dump($_POST);


das sollte nach abschiken des formulares nicht nur

Array[0]


ausgegben, sondern etwas in derart

array(6) {
["newmenuename"]=>
string(0) ""
["newlink"]=>
string(0) ""
["newtitle"]=>
string(0) ""
["newquellcode"]=>
string(138) "Hier bitte neuen Quellcode einfügen. Aber bitte nur den Inhalt in einer Tabelle mit der maximalen Weite von 570 Pixel.
"
["menuehinzufügen"]=>
string(10) "Hinzufügen"
["asmenue"]=>
string(2) "on"
}


Interressant wäre dann langsam mal deine php-version und der Browser mit dem du das Formular absendest, also ich hab PHP Version 4.3.1, hab dein script getestet und da wird alles wunderbar übergeben, egal wieviel & in der textarea drin sind.

gruss

rth

 
TriphunEM
10-06-2003, 15:21 
 
an der php version liegt es nicht...hab die gleiche....
am ie 6.0 liegts auch net....


probier mal html mit platzhaltern in eine datei zu schreiben. spätestens da dürfte es nciht gehen....

 
RobertTheHero
10-06-2003, 15:40 
 
hm es geht aber , leider (ich würde lieber mal das problem nachvolziehen können.


$fp=fopen("t","w");
fputs($fp,$_POST['newquellcode']);
fclose($fp);


schreibt alles in die datei, die dann so aussieht


<form method="POST" action="test3.php4?looser=324&jfdlaadk=32423fsda">

<fieldset style="padding: 2">
<legend><span class="BoldText">Menüpunkt hinzufügen</span></legend>
&nbsp;
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="520" id="AutoNumber1" height="250">
<tr>
<td width="208" height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Name des Menüpunktes</span></td>
<td height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Link (z.B menue/menue.inc)</span></td>
</tr>
<tr>
<td width="260" height="24">
&nbsp;&nbsp;<input type="text" name="newmenuename" style="width=250px; height:22px" size="20"></td>
<td width="260" height="24">
&nbsp;&nbsp;<input type="text" name="newlink" style="width=250px; height:22px" size="20"></td>
</tr>
<tr>
<td height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Titel der Seite</span></td>
<td height="19">&nbsp;</td>
</tr>
<tr>
<td width="540" height="27" colspan="2">
&nbsp;&nbsp;<input type="text" name="newtitle" style="width=510px; height:22px" size="20"></td>
</tr>
<tr>
<td width="260" height="19"><span class="NormalText">&nbsp;&nbsp;&nbsp;Quellcode der Seite</span></td>
<td width="260" height="19">&nbsp;</td>
</tr>
<tr>
<td width="540" height="143" colspan="2">
&nbsp;&nbsp;<textarea name="newquellcode" style="width=509px; height:150px">
Hier bitte neuen Quellcode einfügen. Aber bitte nur den Inhalt in einer Tabelle mit der maximalen Weite von 570 Pixel.
</textarea>
</td>
</tr>
<tr>
<td width="440" height="35" colspan="2" valign="top">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber2">
<tr>
<td width="119">
<p align="center"><input type="submit" value="Hinzufügen" name="menuehinzufügen"></td>
<td width="139"><span class="NormalText">Als Menüpunkt
eintragen ?</span></td>
<td width="14">&nbsp;<span class="NormalText">ja</span></td>
<td width="25" valign="bottom">
<input type="radio" value="on" checked name="asmenue"></td>
<td width="26"><span class="NormalText">&nbsp;nein</span></td>
<td width="177" valign="bottom">
<input type="radio" value="off" name="asmenue"></td>
</tr>
</table>
</td>
</tr>
</table>
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="515" height="44">
<tr>
<td height="44" bgcolor="#C0C0C0">


</td>
</tr>
</table>
</center>
<br>
</fieldset>
</form>
<?
echo "<bR> nur post:<br>";
var_dump($_POST);
$fp=fopen("t","w");
fputs($fp,$_POST['newquellcode']);
fclose($fp);
?>

ich habe also einfach den source ins textfeld kopiert.

Also langsam bin ich ratlos, hm hast du in der php.ini

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On


also magic quotes an ? kann mir zwar jetzt gerade auch nicht erklären was das helfen könnte, aber ich habs.

gruss

rth

 
TriphunEM
10-06-2003, 16:31 
 
ja....steht drin.

Das schreiben in die Datei ist nicht das Problem.
Das Problem ist wenn ich auf den abschick button des forumlars klicken
ist die variable des textareas die übergeben wird unvollständig und wir an der stelle wo das & kommt abgeschnitten...

 
TriphunEM
10-06-2003, 16:48 
 
so hier mal zusammen gefasst!

führe das mal aus :

<?php

$S1=stripslashes($S1);
echo htmlentities($S1);

echo '
<form method="POST" action="test.php">
<textarea rows="19" name="S1" cols="95"></textarea>
<input type="submit" value="Abschicken" name="B1">
</form>';
?>


und schreib in das textfeld diesen html quellcode :


<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr>
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr>
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
<tr>
<td width="33%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td width="34%">&nbsp;</td>
</tr>
</table>


dann siehst du das problem...er gibt nicht alles aus...

 
RobertTheHero
10-06-2003, 17:01 
 
ich habs ausprobiert, der gibt alles aus, da fehlt nix.

Also keine ahnung woran das bei dir liegt, falls du es noch rausfinden solltest, poste es doch bitte, würd mich richtig interessieren, wo da jetzt der bug ist.

gruss

rth

 
TriphunEM
10-06-2003, 17:05 
 
hä?

 
TriphunEM
11-06-2003, 17:29 
 
es liegt an meinen php version...

 
RobertTheHero
11-06-2003, 17:33 
 
aber du sagtest doch

an der php version liegt es nicht...hab die gleiche....


was hast du denn jetzt für eine gehabt ? (ist aber ganz schön ärgerlich, ist das ein bug in der version ?)

gruss

rth


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:56 Uhr.