Bekijk Volledige Versie : Schrijven naar tekstbestand
Voor mijn complete nieuwe installatie van mijn website had ik een
PHP-script waarmee via een beveiligde pagina naar een tekstbestand
geschreven kon worden.
Vervolgens: als het tekstbestand niet bestaat wordt die aangemaakt
waarna op de website tekst.txtbestaat.gif verschijnt, zoniet dan
verschijnt tekst.txtbestaatniet.gif
Ik weet 't, het klinkt allemaal vrij wazig, en dat is dan ook de reden
dat ik het via een avondje googelen ook niet meer kan terug vinden. Kan
iemand me verder op weg helpen?
Maarten Wierda
15/08/06, 23:46
Martin schreef:
> Voor mijn complete nieuwe installatie van mijn website had ik een
> PHP-script waarmee via een beveiligde pagina naar een tekstbestand
> geschreven kon worden. Vervolgens: als het tekstbestand niet bestaat
> wordt die aangemaakt waarna op de website tekst.txtbestaat.gif
> verschijnt, zoniet dan verschijnt tekst.txtbestaatniet.gif
>
> Ik weet 't, het klinkt allemaal vrij wazig, en dat is dan ook de
> reden dat ik het via een avondje googelen ook niet meer kan terug
> vinden. Kan iemand me verder op weg helpen?
Hoe google je hier in hemelsnaam op als ik vragen mag?
--
Cheers,
Maarten Wierda
Martin wrote:
> Voor mijn complete nieuwe installatie van mijn website had ik een
> PHP-script waarmee via een beveiligde pagina naar een tekstbestand
> geschreven kon worden.
> Vervolgens: als het tekstbestand niet bestaat wordt die aangemaakt
> waarna op de website tekst.txtbestaat.gif verschijnt, zoniet dan
> verschijnt tekst.txtbestaatniet.gif
>
> Ik weet 't, het klinkt allemaal vrij wazig, en dat is dan ook de reden
> dat ik het via een avondje googelen ook niet meer kan terug vinden.
> Kan iemand me verder op weg helpen?
PHP pseudo code:
if(form_submitted){
if(file_exists()){
fopen():
fwrite();
echo "<img src="tekst.txtbestaat.gif">;
} else {
echo "<img src="tekst.txtbestaatnite.gif">;
}
}
Het wordt niet echt heel veel ingewikkelder...
Zie ook: http://nl3.php.net/manual/nl/function.fwrite.php
Grtz,
--
Rik Wasmus
>>Voor mijn complete nieuwe installatie van mijn website had ik een
>>PHP-script waarmee via een beveiligde pagina naar een tekstbestand
>>geschreven kon worden.
>>Vervolgens: als het tekstbestand niet bestaat wordt die aangemaakt
>>waarna op de website tekst.txtbestaat.gif verschijnt, zoniet dan
>>verschijnt tekst.txtbestaatniet.gif
>>
>>Ik weet 't, het klinkt allemaal vrij wazig, en dat is dan ook de reden
>>dat ik het via een avondje googelen ook niet meer kan terug vinden.
>>Kan iemand me verder op weg helpen?
>
>
> PHP pseudo code:
> if(form_submitted){
> if(file_exists()){
> fopen():
> fwrite();
> echo "<img src="tekst.txtbestaat.gif">;
> } else {
> echo "<img src="tekst.txtbestaatnite.gif">;
> }
> }
>
> Het wordt niet echt heel veel ingewikkelder...
> Zie ook: http://nl3.php.net/manual/nl/function.fwrite.php
>
> Grtz,
tekstbestaat.gif en tekstbestaatniet.gif werkt inmiddels maar nu rest
nog het volgende probleem...
Een gebruiker moet kunnen inloggen (op een heel simpele manier) en op
die manier nieuws.txt kunnen beschrijven of, indien nieuws.txt niet
bestaat, dat bestand aanmaken.
Maarten Wierda wrote:
> Martin schreef:
>
>> Voor mijn complete nieuwe installatie van mijn website had ik een
>> PHP-script waarmee via een beveiligde pagina naar een tekstbestand
>> geschreven kon worden. Vervolgens: als het tekstbestand niet bestaat
>> wordt die aangemaakt waarna op de website tekst.txtbestaat.gif
>> verschijnt, zoniet dan verschijnt tekst.txtbestaatniet.gif
>>
>> Ik weet 't, het klinkt allemaal vrij wazig, en dat is dan ook de
>> reden dat ik het via een avondje googelen ook niet meer kan terug
>> vinden. Kan iemand me verder op weg helpen?
>
>
> Hoe google je hier in hemelsnaam op als ik vragen mag?
>
>
Tja, vele zoektermen zijn mogelijk...
"schrijf naar tekstbestand", "maak tekstbestand", "write to", en zo verder.
Erick T. Barkhuis
15/08/06, 23:46
Martin:
> Een gebruiker moet kunnen inloggen (op een heel simpele manier)
Een paar wedervragen:
1. Waaruit wil je dat het inloggen bestaat?
2. Hoe komt de gebruiker aan zijn inloggegevens?
3. Zijn die gegevens per gebruiker uniek?
4. Zal je volgende vraag zijn: hoe blokkeer ik bepaalde gebruikers?
5. Zal de daarop volgende vraag zijn: hoe kan ik gebruikers bedienen die
hun inloggegevens kwijt zijn?
6. Kun je een voorbeeld geven van een manier die niet "heel simpel" maar
juist te moeilijk voor die gebruiker is?
--
Erick
"When everything comes your way, you're in the wrong lane."
Erick T. Barkhuis wrote:
> Martin:
>
>
>>Een gebruiker moet kunnen inloggen (op een heel simpele manier)
>
>
> Een paar wedervragen:
> 1. Waaruit wil je dat het inloggen bestaat?
> 2. Hoe komt de gebruiker aan zijn inloggegevens?
> 3. Zijn die gegevens per gebruiker uniek?
> 4. Zal je volgende vraag zijn: hoe blokkeer ik bepaalde gebruikers?
> 5. Zal de daarop volgende vraag zijn: hoe kan ik gebruikers bedienen die
> hun inloggegevens kwijt zijn?
> 6. Kun je een voorbeeld geven van een manier die niet "heel simpel" maar
> juist te moeilijk voor die gebruiker is?
>
>
1. naam + password
2. Krijgt ie van mij
3. Er is slechts 1 gebruiker/password
4. Niet nodig
5. Niet nodig
6. Nee, eigenlijk niet. Ik heb geen moeilijker alternatief, maar slechts
op zoek naar iets heel simpel.
Er is slechts 1 gebruiker. De bedoeling is deze via een invulscherm een
wachtwoord invult en wanneer dit strookt met een vooraf ingesteld
wachtwoord, krijgt hij de mogelijkheid om nieuws.txt te bewerken of,
indien dat niet bestaat, dat aan te maken.
In article <44ddb541$0$4528$e4fe514c@news.xs4all.nl>,
Martin <martinvdv@gmail.com.invalid> writes:
[...]
> Een gebruiker moet kunnen inloggen (op een heel simpele manier) en op
Als je PEAR tot je beschikking hebt:
http://pear.php.net/manual/en/package.authentication.auth.php
> die manier nieuws.txt kunnen beschrijven of, indien nieuws.txt niet
> bestaat, dat bestand aanmaken.
Daar zijn ook nog wat modules voor.
Martin wrote:
> Erick T. Barkhuis wrote:
>
>> Martin:
>>
>>
>>> Een gebruiker moet kunnen inloggen (op een heel simpele manier)
>>
>>
>>
>> Een paar wedervragen:
>> 1. Waaruit wil je dat het inloggen bestaat?
>> 2. Hoe komt de gebruiker aan zijn inloggegevens?
>> 3. Zijn die gegevens per gebruiker uniek?
>> 4. Zal je volgende vraag zijn: hoe blokkeer ik bepaalde gebruikers?
>> 5. Zal de daarop volgende vraag zijn: hoe kan ik gebruikers bedienen
>> die hun inloggegevens kwijt zijn?
>> 6. Kun je een voorbeeld geven van een manier die niet "heel simpel"
>> maar juist te moeilijk voor die gebruiker is?
>>
>>
> 1. naam + password
> 2. Krijgt ie van mij
> 3. Er is slechts 1 gebruiker/password
> 4. Niet nodig
> 5. Niet nodig
> 6. Nee, eigenlijk niet. Ik heb geen moeilijker alternatief, maar slechts
> op zoek naar iets heel simpel.
>
> Er is slechts 1 gebruiker. De bedoeling is deze via een invulscherm een
> wachtwoord invult en wanneer dit strookt met een vooraf ingesteld
> wachtwoord, krijgt hij de mogelijkheid om nieuws.txt te bewerken of,
> indien dat niet bestaat, dat aan te maken.
Ik heb dat opgelost door naast een tekstveld een invoerveld te maken
waar een wachtwoord moet worden ingevuld. Hou er wel rekening mee dat
regelmatig wordt vergeten dit wachtwoord veld in te vullen dus als het
wachtwoord niet klopt dan wel de tekst laten terugkomen in je tekst veld
om extra werk te voorkomen.
Mijn oplossing is niet echt een beveiliging maar tot nog toe werkt het
prima. Denk er wel om dat je de ingevulde tekst laat schonen van
ongewenste tags.
bjorri.
bjorri wrote:
> Martin wrote:
>
>> Erick T. Barkhuis wrote:
>>
>>> Martin:
>>>
>>>
>>>> Een gebruiker moet kunnen inloggen (op een heel simpele manier)
>>>
>>>
>>>
>>>
>>> Een paar wedervragen:
>>> 1. Waaruit wil je dat het inloggen bestaat?
>>> 2. Hoe komt de gebruiker aan zijn inloggegevens?
>>> 3. Zijn die gegevens per gebruiker uniek?
>>> 4. Zal je volgende vraag zijn: hoe blokkeer ik bepaalde gebruikers?
>>> 5. Zal de daarop volgende vraag zijn: hoe kan ik gebruikers bedienen
>>> die hun inloggegevens kwijt zijn?
>>> 6. Kun je een voorbeeld geven van een manier die niet "heel simpel"
>>> maar juist te moeilijk voor die gebruiker is?
>>>
>>>
>> 1. naam + password
>> 2. Krijgt ie van mij
>> 3. Er is slechts 1 gebruiker/password
>> 4. Niet nodig
>> 5. Niet nodig
>> 6. Nee, eigenlijk niet. Ik heb geen moeilijker alternatief, maar
>> slechts op zoek naar iets heel simpel.
>>
>> Er is slechts 1 gebruiker. De bedoeling is deze via een invulscherm
>> een wachtwoord invult en wanneer dit strookt met een vooraf ingesteld
>> wachtwoord, krijgt hij de mogelijkheid om nieuws.txt te bewerken of,
>> indien dat niet bestaat, dat aan te maken.
>
>
> Ik heb dat opgelost door naast een tekstveld een invoerveld te maken
> waar een wachtwoord moet worden ingevuld. Hou er wel rekening mee dat
> regelmatig wordt vergeten dit wachtwoord veld in te vullen dus als het
> wachtwoord niet klopt dan wel de tekst laten terugkomen in je tekst veld
> om extra werk te voorkomen.
>
> Mijn oplossing is niet echt een beveiliging maar tot nog toe werkt het
> prima. Denk er wel om dat je de ingevulde tekst laat schonen van
> ongewenste tags.
>
> bjorri.
Ik heb wat gegoocheld met een aantal bestaande scripts en kwam tot de
volgende, nog niet optimale oplossing... Maar het werkt.
In ticker.php staat:
<?php
extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
if ($action != "admin" && $action != "login" && $action!= "temp3"){
?>
<font color="white">
<?php $fp = file("/nieuws/nieuws.txt");
for($i = 0; $i <sizeof($fp);$i++){
echo $fp[$i]."<BR>";
} ?>
</font>
<body bgcolor="********">
<center><table align=middle><td align=left width=20%>
<tr>
<td height="27" colspan="2"><FONT COLOR="#000000" SIZE="4"
face="arial">:: Afgelastingen
toevoegen/aanpassen ::<br>
<br>
<strong><font size="2"> hulp nodig?<br>
<a
href="mailto:email@xxxxx.nl">email@xxxxx.nl</a></font></strong></FONT></td>
<tr>
<td> </td>
</tr><tr><form method=post action="?action=login">
<td><font size="2"
face="arial"><strong>Wachtwoord:</strong></font></td>
<td><input type=password name=pass> <input type=submit
value=Login></td>
<?php
}
$password = "abcde"; //CHANGE THE LOGIN PASSWORD
if ($action=="admin"){
?>
</form></table></center>
<?php
}
if ($action=="login"){
if ($pass==$password){
echo"U bent succesvol ingelogged";
$fd = fopen ("nieuws.txt", "a+");
$stuff = fread ($fd, filesize ("nieuws.txt"));
fclose ($fd);
php?>
<body bgcolor="********">
<td height="399" width="100%" valign="top">
<form method="post" action="?action=temp3&te=nieuws/nieuws.txt">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td><font size="2" face="arial"><strong>Aanpassen
afgelastingen:</strong></font></td>
</tr>
<tr>
<td width="100%">
<textarea name="cont" cols="70" rows="20"><?php echo $stuff ?></textarea>
</td>
</tr>
<tr>
<td width="86%">
<input type="submit" name="Submit" value="Opslaan"><input type="button"
name="Cancel" value="Annuleren" onclick="javascript: history.back(1)">
</td>
</tr>
<tr>
</tr>
</table>
</form>
<?php
}else{
echo "<FONT SIZE=3 COLOR=red>Wachtwoord is niet correct</FONT>";
}
}
if ($action=="temp3") {
$cont=$HTTP_POST_VARS['cont'];
$cont=stripslashes($cont);
$fp = fopen("nieuws.txt", "w");
fputs($fp, $cont);
fputs($fp, "\n");
fputs($fp, "");
fclose($fp);
php?>
<body bgcolor="#218C21">
<BR><BR>
<font size="3" face="arial" color="********">Succesvol aangepast</font>
<?php
}
?>
In nieuws.php staat:
<?php include("http://www.xxxxx.nl/nieuws/nieuws.txt"); ?>
Martin wrote:
> bjorri wrote:
>
>> Martin wrote:
>>
>>> Erick T. Barkhuis wrote:
>>>
>>>> Martin:
>>>>
>>>>
>>>>> Een gebruiker moet kunnen inloggen (op een heel simpele manier)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Een paar wedervragen:
>>>> 1. Waaruit wil je dat het inloggen bestaat?
>>>> 2. Hoe komt de gebruiker aan zijn inloggegevens?
>>>> 3. Zijn die gegevens per gebruiker uniek?
>>>> 4. Zal je volgende vraag zijn: hoe blokkeer ik bepaalde gebruikers?
>>>> 5. Zal de daarop volgende vraag zijn: hoe kan ik gebruikers bedienen
>>>> die hun inloggegevens kwijt zijn?
>>>> 6. Kun je een voorbeeld geven van een manier die niet "heel simpel"
>>>> maar juist te moeilijk voor die gebruiker is?
>>>>
>>>>
>>> 1. naam + password
>>> 2. Krijgt ie van mij
>>> 3. Er is slechts 1 gebruiker/password
>>> 4. Niet nodig
>>> 5. Niet nodig
>>> 6. Nee, eigenlijk niet. Ik heb geen moeilijker alternatief, maar
>>> slechts op zoek naar iets heel simpel.
>>>
>>> Er is slechts 1 gebruiker. De bedoeling is deze via een invulscherm
>>> een wachtwoord invult en wanneer dit strookt met een vooraf ingesteld
>>> wachtwoord, krijgt hij de mogelijkheid om nieuws.txt te bewerken of,
>>> indien dat niet bestaat, dat aan te maken.
>>
>>
>>
>> Ik heb dat opgelost door naast een tekstveld een invoerveld te maken
>> waar een wachtwoord moet worden ingevuld. Hou er wel rekening mee dat
>> regelmatig wordt vergeten dit wachtwoord veld in te vullen dus als het
>> wachtwoord niet klopt dan wel de tekst laten terugkomen in je tekst
>> veld om extra werk te voorkomen.
>>
>> Mijn oplossing is niet echt een beveiliging maar tot nog toe werkt het
>> prima. Denk er wel om dat je de ingevulde tekst laat schonen van
>> ongewenste tags.
>>
>> bjorri.
>
>
> Ik heb wat gegoocheld met een aantal bestaande scripts en kwam tot de
> volgende, nog niet optimale oplossing... Maar het werkt.
>
> In ticker.php staat:
> <?php
> extract($HTTP_GET_VARS);
> extract($HTTP_POST_VARS);
> if ($action != "admin" && $action != "login" && $action!= "temp3"){
> ?>
> <font color="white">
> <?php $fp = file("/nieuws/nieuws.txt");
> for($i = 0; $i <sizeof($fp);$i++){
> echo $fp[$i]."<BR>";
> } ?>
> </font>
> <body bgcolor="********">
> <center><table align=middle><td align=left width=20%>
> <tr>
> <td height="27" colspan="2"><FONT COLOR="#000000" SIZE="4"
> face="arial">:: Afgelastingen
> toevoegen/aanpassen ::<br>
> <br>
> <strong><font size="2"> hulp nodig?<br>
> <a
> href="mailto:email@xxxxx.nl">email@xxxxx.nl</a></font></strong></FONT></td>
> <tr>
> <td> </td>
> </tr><tr><form method=post action="?action=login">
> <td><font size="2"
> face="arial"><strong>Wachtwoord:</strong></font></td>
> <td><input type=password name=pass> <input type=submit
> value=Login></td>
> <?php
> }
> $password = "abcde"; //CHANGE THE LOGIN PASSWORD
> if ($action=="admin"){
> ?>
> </form></table></center>
> <?php
> }
> if ($action=="login"){
> if ($pass==$password){
> echo"U bent succesvol ingelogged";
>
>
>
> $fd = fopen ("nieuws.txt", "a+");
> $stuff = fread ($fd, filesize ("nieuws.txt"));
> fclose ($fd);
> php?>
> <body bgcolor="********">
> <td height="399" width="100%" valign="top">
> <form method="post" action="?action=temp3&te=nieuws/nieuws.txt">
> <table width="100%" border="0" cellpadding="5" cellspacing="0">
> <tr>
> <td><font size="2" face="arial"><strong>Aanpassen
> afgelastingen:</strong></font></td>
> </tr>
> <tr>
> <td width="100%">
> <textarea name="cont" cols="70" rows="20"><?php echo $stuff ?></textarea>
> </td>
> </tr>
> <tr>
> <td width="86%">
> <input type="submit" name="Submit" value="Opslaan"><input type="button"
> name="Cancel" value="Annuleren" onclick="javascript: history.back(1)">
> </td>
> </tr>
> <tr>
> </tr>
> </table>
> </form>
> <?php
> }else{
> echo "<FONT SIZE=3 COLOR=red>Wachtwoord is niet correct</FONT>";
> }
> }
> if ($action=="temp3") {
> $cont=$HTTP_POST_VARS['cont'];
> $cont=stripslashes($cont);
> $fp = fopen("nieuws.txt", "w");
> fputs($fp, $cont);
> fputs($fp, "\n");
> fputs($fp, "");
> fclose($fp);
> php?>
> <body bgcolor="#218C21">
> <BR><BR>
> <font size="3" face="arial" color="********">Succesvol aangepast</font>
> <?php
> }
> ?>
>
> In nieuws.php staat:
> <?php include("http://www.xxxxx.nl/nieuws/nieuws.txt"); ?>
Doet mij een beetje oud aan, met php5 kan dat een stuk korter maar het
zal wel werken denk ik. Zoek eens op file_put_contents() en dergelijke
opdrachten. In essentie is dit hetzelfde wat ik heb gedaan maar dan wat
wolliger.
bjorri