value van textbox met php verzenden

Status
Niet open voor verdere reacties.

hackie900

Gebruiker
Lid geworden
28 mrt 2009
Berichten
163
hallo,
ik wil graag tekst opslaan in een textbestand op mijn webserver.
ik heb de goede code alles werkt maar net niet zoals ik wil.
ik heb deze code:
Code:
<?php 
	$fp=fopen("naam.txt","w"); 
	$total=(name_txt.value);
	fwrite($fp,$total); 
	fclose($fp); 
	?>
dit werkt niet want als ik dan het tekstbestand open waar het in komt te staan staat er dit:
name_txt.value
weet iemand hier de oplossing voor?

Hackie900
 
Laatst bewerkt:
ik denk dat je in de war bent met javascript. In php kan je niet gebruikt maken van object.value. Hier kan je bijvoorbeeld een simpel formuliertje van maken en de gegevens opvragen uit de $_POST array.

uitgwerkt voorbeeld:
PHP:
<?php
if(!isset($_POST['submit']))
{
	?>
	<form method="post" action="" >
    <input type="text" name="name_txt" />
    <input type="submit" name="submit" value="submit" />
    </form>
    <?php
}
else
{
$handle = fopen("naam.txt","w"); 
fwrite($handle,$_POST['name_txt']);
fclose($handle);
}
?>

leesmateriaal:
http://www.sitemasters.be/tutorials/1/1/475/PHP/Bestandssysteem
http://www.sitemasters.be/tutorials/1/1/138/PHP/Verwerken_van_formulieren
 
sorry,
ik heb eigenlijk geen idee waarom ik hier een 2e topic voor heb geopend.
dit was niet nodig geweest.
Mijn excuses.

Hackie900

P.S. Nog bedankt voor je antwoord, ik kan hier tog nog wel wat mee.

Edit:
Ik weet alweer waarvoor dit was, dit was toch een andere vraag dan het andere topic
 
Laatst bewerkt:
uitgwerkt voorbeeld:
PHP:
<?php
if(!isset($_POST['submit']))
{
	?>
	<form method="post" action="" >
    <input type="text" name="name_txt" />
    <input type="submit" name="submit" value="submit" />
    </form>
    <?php
}
else
{
$handle = fopen("naam.txt","w"); 
fwrite($handle,$_POST['name_txt']);
fclose($handle);
}
?>

We moeten eens stoppen met het verkeerd aan leren van technieken. Op zich is je script prima, maar

PHP:
if(!isset($_POST['submit']))

dien je absoluut niet te gebruiken.

PHP:
if($_SERVER[ 'REQUEST_METHOD' ] != 'POST' )

is wel correct.
 
okee bedankt!
ik heb iets gelezen dat de andere code met dat 'issest' gevaarlijk is ofzow?!?

Edit:
ik zit weer met een probleem dat met deze code heeft te maken.
als ik deze code gebruik voor een form en upload de page naar mijn webserver, dan zie ik de tekstbox en verzend button niet. eerst wel maar ik weet niet wat ik heb aangepast. dit is voor een chatbox die via text files op mijn webserver werkt. ik wil dus een button die de inhoud van een ander tekstbestand + de tekstbox waar je wat intypt verzenden naar een ander tekstbestand die alle berichten opslaat. ik moet ook nog een beetje proberen en zoeken om de berichten elke keer te refreshen maar dat is verder geen probleem. dit is mijn code voor de tekstbox en button met het verzenden:
PHP:
<?php
	if($_SERVER[ 'REQUEST_METHOD' ] != 'POST' )
	{
    	?>
		<form method="post" action="" >
  		<p>
    	<input type="text" name="txt" class="txt" id="txt"/>
   	 	<input name="submit" type="submit" value="Verzend" class="btn"/>
  		</p>
  		</form>
    	<?php
	}
	else
	{
	$handle = fopen("naam.txt","w"); 
	fwrite($handle,$_POST['name_txt']);
	fclose($handle);
	}
	?>
Ook toen ik de button en tekstbox nog wel zag als ik dan een bericht typte en op verzenden drukte verdwenen de tekstbox en button. hoe kan ik ook dat voorkomen.
als je een link wilt naar de chatbox om te zien wat ik bedoel moet je dat even vragen want ik wil geen reclame ofzow maken (niet dat er wat belangrijks of uberhaupt iets op mn site staat..).
 
Laatst bewerkt:
weet je miss ook het antwoord op mijn 2e vraag onder 'Edit:' in mijn vorige post?
 
om de form niet te laten verdwijnen kan je het heel makkelijk aanpassen:
PHP:
<form method="post" action="" >
        <p>
        <input type="text" name="txt" class="txt" id="txt"/>
        <input name="submit" type="submit" value="Verzend" class="btn"/>
        </p>
        </form>
<?php
    if(($_SERVER[ 'REQUEST_METHOD' ] == 'POST')  )
    {
		if(trim($_POST['txt']) == "" )
		{
			echo "veld is leeg";
		}
		else
		{
			
    $handle = fopen("naam.txt","w"); 
    fwrite($handle,$_POST['txt']);
    fclose($handle);
    }
	}
    ?>
nu verdwijnt hij niet en wordt er gecontrolleerd of je bericht veld niet leeg is.


Waarom verdween hij nou zodra je op verzend klikte? Dat kwam door dit stukje:
PHP:
<?php
if(!isset($_POST['submit']))
{
    ?>
    <form method="post" action="" >
    <input type="text" name="name_txt" />
    <input type="submit" name="submit" value="submit" />
    </form>
    <?php
}
Hierin wordt gezegd dat als er nog niet op "submit" knop is gedrukt er een formuliertje moet worden laten zien. Als er op submit is gedrukt worden de waarden dus verwerkt in de else en voldoet de eerste if niet meer omdat er op submit gedrukt is. Hierdoor verdwijnt het formuliertje dus.
 
Laatst bewerkt:
Bedankt voor je antwoord!
en hoe doe ik dat met dat posten dat ik 2 tekstboxen de inhoud ervan verzend zeg maar.
doe ik dat gewoon zo?:
PHP:
fwrite($handle,$_POST['txt'+'txt2']);
 
Bijna goed.

Je moet de variabelen los aanspreken, ook als ze in een array zitten, en teksten aan elkaar plakken doe je met een punt, niet met een plus.

(Er komt nu overigens geen spatie of nieuwe regel tussen; die moet je er zelf nog tussen plakken als je die ook wilt)

PHP:
fwrite($handle,$_POST['txt'] . $_POST['txt2'] );
 
okee bedankt!
weer wat geleerd.
ik ben dat met '+' namenlijk gewend bij vb.net en c++.

EDIT:
Ik Zit helaas toch nog steeds met een probleem.
nu word het tekstbestand aangepast naar wat er in de tekstboxen staat.
wat ik graag wil is dat wat er in de tekstboxen staat op een nieuwe regel komt te staan in dat tekstdocument.
Wie weet hoe dit kan?
 
Laatst bewerkt:
■r
Openen voor alleen lezen.
De pointer wordt aan het begin van het bestand geplaatst.

■r+
Openen voor lezen en schrijven.
De pointer wordt aan het begin van het bestand geplaatst.

■w
Openen voor alleen schrijven.
Het bestand wordt leeg (dus 0 bytes) gemaakt.
Mocht het bestand niet bestaan, dat wordt het aangemaakt.

■w+
Openen voor lezen en schrijven.
Het bestand wordt leeg (dus 0 bytes) gemaakt.
Mocht het bestand niet bestaan, dat wordt het aangemaakt.

■a
Openen voor alleen schrijven.
De pointer wordt aan het einde van het bestand geplaatst.
Mocht het bestand niet bestaan, dat wordt het aangemaakt.

■a+
Openen voor lezen en schrijven.
De pointer wordt aan het einde van het bestand geplaatst.
Mocht het bestand niet bestaan, dat wordt het aangemaakt.
 
Laatst bewerkt:
bedankt, ik heb het doorgenomen maar ik zit met nog 1 probleempje.
dit werkt niet:
PHP:
fwrite($handle,$_POST['txt4'] . $_POST['txt3'] . $_POST['txt2'] . $_POST['space'] . $_POST['txt'] );
het enige wat ik krijg te zien is de tekst van 'txt' niet van de rest. ik ben echt niet goed in php maar heb het voor mijn project wel hard nodig dus stel ik zoveel vragen.
 
wil je even je hele code geven incl. html? waarscheinlijk een foutje dat je de velden niet goed een naam gegeven hebt ofzo.
 
tuurlijk, hier is de code:
HTML:
<!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=utf-8" />
<title>Hulp chat</title>

<SCRIPT LANGUAGE="JavaScript" TYPE="TEXT/JAVASCRIPT">
window.onload=msgsget()

function msgsget()
{
	alert("test");
	document.URL=(#);
	alert("tet");
}

</script>





<style type="text/css">
<!--
#apDiv1 {
	position:absolute;
	width:200px;
	height:115px;
	z-index:1;
	left: 380px;
	top: 48px;
}
body,td,th {
	font-family: Verdana, Geneva, sans-serif;
	color: #000;
	font-weight: bold;
}
h1 {
	font-size: 16px;
}
h2 {
	font-size: 12px;
	color: #000;
}
h1,h2,h3,h4,h5,h6 {
	font-family: Courier New, Courier, monospace;
	font-weight: bold;
	vertical-align: bottom;
}
.txt {
	font-family: Arial, Helvetica, sans-serif;
	font-style: normal;
	font-weight: bold;
	color: #000;
	width: 188px;
	border: thin solid #333;
}
.btn {
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
	color: #000;
	border: thin solid #333;
	width: 64px;
}
a {
	font-family: "Courier New", Courier, monospace;
	color: #F0F;
	font-size: 12px;
	font-weight: bold;
}
a:visited {
	color: #F0F;
	text-decoration: none;
	font-size: 12px;
	font-weight: bold;
}
a:hover {
	color: #C0F;
	text-decoration: underline;
	font-size: 12px;
	font-weight: bold;
}
a:active {
	color: #F0F;
	font-family: "Courier New", Courier, monospace;
	font-weight: bold;
	font-size: 12px;
	text-decoration: none;
}
.box {
	font-family: Arial, Helvetica, sans-serif;
	font-style: normal;
	font-weight: bold;
	height: 250px;
	width: 257px;
	border: thin solid #333;
	font-size: 12px;
}
.txt2 {
	color: #F00;
	word-spacing: normal;
	letter-spacing: normal;
}
.txt2 {
	font-size: 10px;
	color: #000;
}
.txt2 .txt2 strong {
	color: #F00;
}
.linktxt {
	font-family: "Courier New", Courier, monospace;
	font-size: 10px;
	font-weight: bold;
	color: #000;
	font-style: italic;
}
.linktxt strong a {
	font-style: normal;
}
a:link {
	text-decoration: none;
}
.invisible {
	visibility: hidden;
}
-->
</style>
</head>

<body bgcolor="#00CC66" text="#000000" link="#FF00FF" vlink="#FF00FF" alink="#CC00FF">
<p>
  <textarea name="msgs" cols="45" rows="5" class="box" id="msgs"><?php echo file_get_contents("msgs.txt");?></textarea>
</p>
<form method="post" action="" >
  <p>
    	<input type="text" name="txt" class="txt" id="txt"/>
   	 	<input name="submit" type="submit" value="Verzend" class="btn"/>
  </p>
  		</form>
    <?php
    if(($_SERVER[ 'REQUEST_METHOD' ] == 'POST')  )
    {
        if(trim($_POST['txt']) == "" )
        {
            echo "Veld is leeg.";
        }
        else
        {
            
    $handle = fopen("msgs.txt","w"); 
 	fwrite($handle,$_POST['txt4'] . $_POST['txt3'] . $_POST['txt2'] . $_POST['space'] . $_POST['txt'] ); 
    fclose($handle);
    }
    }
    ?>
    

</p>
<p><a href="http://www.kapstok-shop.nl" target="_blank">Kapstok-Shop.nl</a></p>
<p>
  <label>
    <input name="space" type="text" class="invisible" id="space" value="   " />
  </label>
  <textarea id="txt2" name="txt2" style="visibility:hidden">
  <?php echo file_get_contents("naam.txt"); ?>
    </textarea>
    <textarea id="txt3" name="txt3" style="visibility:hidden">
  <?php echo file_get_contents("msgs.txt"); ?>
    </textarea>
    <textarea id="txt4" name="txt4" style="visibility:hidden">
</textarea>
</p>
</body>
</html>
niet alles werkt zoals bij de javascript maar dit komt later.
 
ik zie het al. Je hebt de velden die je hebt bijgevoegd niet tussen de <form> en </form> gezet. Hierdoor zullen ze niet in de $_POST array komen en dus geen waarde hebben. Oplossing: zet de nieuwe velden tussen <form> en </form>
 
aha dat is het dus.. heel erg bedankt, nu kan ik weer verder met de chatbox. nu alleen nog wachten tot mijn javascript probleem vraag word opgelost en zal mijn klanten chat hulp snel af zijn :D\

EDIT:
weer een klein probleem...
ik krijg een error namenlijk: 'Parse error: syntax error, unexpected '[' in /storage/mijndomein/users/112236/public/sites/livechat.casperdijksma.nl/rooms/room1/chat.php on line 144'
ik codeer in dreamweaver cs4 en de code lijn namenlijk deze:
PHP:
fwrite($handle,$_POST['txt4'] . $_POST['txt3'] . $_POST['txt2'] . $_POST['space'] . $_POST['txt'] );
is in dreamweaver zo lang dat hij op een volgende regel verder gaat maar dan met dit nog op de eerste regel: '$_POST[' en de rest gaat verder op de tweede regel namenlijk:
''txt'] );'.


Vraag is al opgelost!!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan