script werkt op de ene hosting wel, op de andere niet..
Ik heb een tijdje geleden een script gevonden om heel erg makkelijk .txt files online aan te passen, en die text files gebruik ik dan dynamisch ism flash.
Maar goed, het probleem is dat het script bij ohost wel werkt (gratis) en op b-one niet (betaald).
Ik weet niet waaraan het ligt, mss functies die niet meer ondersteunt worden ofzo..
Op ohost heb ik php 4, bij b-one php 5.
Dit is het script :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?PHP
$StandaardBestand = "*.txt";
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method=post>
<input type=text" name=bestand>
<input type=submit value="Selecteer bestand">
</form>
<hr><br>
<?php
if($actie && $Tekst) {
$Bestand = fopen($bestand,"w");
fputs($Bestand,stripslashes($Tekst));
fclose($Bestand);
echo("<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b><br><br>");
}
if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; }
echo("<b>inhoud van $bestand:</b><br><hr><br>");
?>
<form method=post>
<textarea cols=75 rows=25 name=Tekst><?php echo htmlspecialchars(implode("",file($bestand)),ENT_QUOTES); ?></textarea>
<input type=hidden value="<?php if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; } echo($bestand) ?>" name="bestand">
<br>
<input type=submit value="Wijzigingen Opslaan">
<input type=hidden name=actie value=1>
<br>
</form>
</font>
</center>
</body>
</html>
$StandaardBestand = "*.txt";
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method=post>
<input type=text" name=bestand>
<input type=submit value="Selecteer bestand">
</form>
<hr><br>
<?php
if($actie && $Tekst) {
$Bestand = fopen($bestand,"w");
fputs($Bestand,stripslashes($Tekst));
fclose($Bestand);
echo("<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b><br><br>");
}
if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; }
echo("<b>inhoud van $bestand:</b><br><hr><br>");
?>
<form method=post>
<textarea cols=75 rows=25 name=Tekst><?php echo htmlspecialchars(implode("",file($bestand)),ENT_QUOTES); ?></textarea>
<input type=hidden value="<?php if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; } echo($bestand) ?>" name="bestand">
<br>
<input type=submit value="Wijzigingen Opslaan">
<input type=hidden name=actie value=1>
<br>
</form>
</font>
</center>
</body>
</html>
Begin ieder script met de volgende regels:
Veel succes met debuggen!
global variabelen staan uit bij 5 , eglukkig wel
Het gaat om een login voor je toegang krijgt tot de files :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$user = "**";
$pass = "**";
$error = "verkeerd verbonden";
$name = basename ($PHP_SELF);
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $user) && ( $PHP_AUTH_PW == "$pass" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo "$error";
exit;
}
$pass = "**";
$error = "verkeerd verbonden";
$name = basename ($PHP_SELF);
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $user) && ( $PHP_AUTH_PW == "$pass" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo "$error";
exit;
}
en ik vraag er graag direct bij of dit een veilige manier is om niet te beginnen klooien met de text files.
@ Frank, na het toevoegen van de 2 regels krijg ik dit :
Notice: Undefined variable: actie in /customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php on line 22
Notice: Undefined variable: bestand in /customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php on line 28
moet zijn of
of hetzelfde maar dan met $_GET ipv $_POST
en wees consequent met het gebruik van hoofdletters
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Frank:
Google eens op 'superglobals' en ga vervolgens je script aanpassen.
Zoals reeds gezegd....
Dat geldt ook voor deze vars: $PHP_SELF, $PHP_AUTH_USER en $PHP_AUTH_PW.
Hier is de code die ik nu heb :
(btw, al bedankt voor alle hulp ;))
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?PHP
$user = "foto";
$pass = "site";
$error = "verkeerd verbonden";
$name = basename (isset($_GET['PHP_SELF']));
if ( (!isset($_GET['PHP_AUTH_USER'])) || ! ((isset($_GET['PHP_AUTH_USER']) == $user) && ( isset($_GET['PHP_AUTH_PW']) == "$pass" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo "$error";
exit;
}
ini_set('display_errors', 1);
error_reporting(E_ALL);
$StandaardBestand = "home.txt";
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method=post>
<input type=text" name=bestand>
<input type=submit value="Selecteer bestand">
</form>
<hr><br>
<?php
if(isset($_POST['actie'])&&isset($_POST['Tekst'])) {
$Bestand = fopen($bestand,"w");
fputs($Bestand,stripslashes($Tekst));
fclose($Bestand);
echo("<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b><br><br>");
}
if(!isset($_POST['bestand']) || !file_exists($bestand)) { $bestand = $StandaardBestand; }
echo("<b>inhoud van $bestand:</b><br><hr><br>");
?>
<form method=post>
<textarea cols=75 rows=25 name=Tekst><?php echo htmlspecialchars(implode("",file($bestand)),ENT_QUOTES); ?></textarea>
<input type=hidden value="<?php if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; } echo($bestand) ?>" name="bestand">
<br>
<input type=submit value="Wijzigingen Opslaan">
<input type=hidden name=actie value=1>
<br>
</form>
</font>
</center>
</body>
</html>
$user = "foto";
$pass = "site";
$error = "verkeerd verbonden";
$name = basename (isset($_GET['PHP_SELF']));
if ( (!isset($_GET['PHP_AUTH_USER'])) || ! ((isset($_GET['PHP_AUTH_USER']) == $user) && ( isset($_GET['PHP_AUTH_PW']) == "$pass" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo "$error";
exit;
}
ini_set('display_errors', 1);
error_reporting(E_ALL);
$StandaardBestand = "home.txt";
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method=post>
<input type=text" name=bestand>
<input type=submit value="Selecteer bestand">
</form>
<hr><br>
<?php
if(isset($_POST['actie'])&&isset($_POST['Tekst'])) {
$Bestand = fopen($bestand,"w");
fputs($Bestand,stripslashes($Tekst));
fclose($Bestand);
echo("<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b><br><br>");
}
if(!isset($_POST['bestand']) || !file_exists($bestand)) { $bestand = $StandaardBestand; }
echo("<b>inhoud van $bestand:</b><br><hr><br>");
?>
<form method=post>
<textarea cols=75 rows=25 name=Tekst><?php echo htmlspecialchars(implode("",file($bestand)),ENT_QUOTES); ?></textarea>
<input type=hidden value="<?php if(!$bestand || !file_exists($bestand)) { $bestand = $StandaardBestand; } echo($bestand) ?>" name="bestand">
<br>
<input type=submit value="Wijzigingen Opslaan">
<input type=hidden name=actie value=1>
<br>
</form>
</font>
</center>
</body>
</html>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
//Error afhandeling
ini_set('display_errors', 1);
error_reporting(E_ALL);
//Begin inloggedeelte
$user = "foto";
$pass = "site";
$error = "Verkeerd Verbonden";
$name = basename(isset($_SERVER['PHP_SELF']));
if(isset($_SERVER['PHP_AUTH_USER'])){
if($_SERVER['PHP_AUTH_USER'] != $user && $_SERVER['PHP_AUTH_PW'] != $pass){
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo $error;
exit;
}
}else{
//Einde inloggedeelte, alles hierna wordt alleen getoond als de gebruiker ingelogd is
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<body>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method="post" />
<input type="text" name"bestand" />
<input type="submit" name="actie" value="Selecteer bestand" />
</form>
<hr />
<br />
<?php
//Kijken of er een bestand is opgegeven, anders standaard:
if(!empty($_POST['bestand'])){
$bestand = $_POST['bestand'];
}else{
$bestand = "home.txt";
}
//Kijken of het bestand is gewijzigd, en dan opslaan:
if(isset($_POST['actie']) && isset($_POST['text'])) {
$openbestand = fopen($bestand,"w");
fputs($openbestand,stripslashes($_POST['text']));
fclose($openbestand);
echo ("\n<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b> <br /><br />");
}
//Formulier:
echo("\n<b>Inhoud van ".$bestand.":</b> <br /><hr /><br />");
?>
<form method="post" />
<textarea cols="75" rows="25" name="text">
<?php
echo htmlspecialchars(implode("",file($openbestand)),ENT_QUOTES);
?>
</textarea>
<input type="hidden" value="<?php echo $bestand; ?>" name="bestand">
<br />
<input type="submit" name="actie" value="Wijzigingen Opslaan">
<br />
</form>
</font>
</center>
</body>
</html>
<?php
}
?>
//Error afhandeling
ini_set('display_errors', 1);
error_reporting(E_ALL);
//Begin inloggedeelte
$user = "foto";
$pass = "site";
$error = "Verkeerd Verbonden";
$name = basename(isset($_SERVER['PHP_SELF']));
if(isset($_SERVER['PHP_AUTH_USER'])){
if($_SERVER['PHP_AUTH_USER'] != $user && $_SERVER['PHP_AUTH_PW'] != $pass){
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
echo $error;
exit;
}
}else{
//Einde inloggedeelte, alles hierna wordt alleen getoond als de gebruiker ingelogd is
?>
<html>
<head>
<title>Online bewerken</title>
</head>
<body>
<center>
<font face="Arial,Helvetica" size=2>
<h2>Online bewerken</h2>
<form method="post" />
<input type="text" name"bestand" />
<input type="submit" name="actie" value="Selecteer bestand" />
</form>
<hr />
<br />
<?php
//Kijken of er een bestand is opgegeven, anders standaard:
if(!empty($_POST['bestand'])){
$bestand = $_POST['bestand'];
}else{
$bestand = "home.txt";
}
//Kijken of het bestand is gewijzigd, en dan opslaan:
if(isset($_POST['actie']) && isset($_POST['text'])) {
$openbestand = fopen($bestand,"w");
fputs($openbestand,stripslashes($_POST['text']));
fclose($openbestand);
echo ("\n<b>De wijzigingen zijn succesvol opgeslagen! (".date("H:i:s").")</b> <br /><br />");
}
//Formulier:
echo("\n<b>Inhoud van ".$bestand.":</b> <br /><hr /><br />");
?>
<form method="post" />
<textarea cols="75" rows="25" name="text">
<?php
echo htmlspecialchars(implode("",file($openbestand)),ENT_QUOTES);
?>
</textarea>
<input type="hidden" value="<?php echo $bestand; ?>" name="bestand">
<br />
<input type="submit" name="actie" value="Wijzigingen Opslaan">
<br />
</form>
</font>
</center>
</body>
</html>
<?php
}
?>
Hopelijk heb ik je zo verder geholpen, dit zou moeten werken.
Edit:
Thanks SanThe, $_SERVER is het nu.
Thanks SanThe, $_SERVER is het nu.
Gewijzigd op 01/01/1970 01:00:00 door Andries Louw Wolthuizen
SanThe:
Zoals reeds gezegd....
Dat geldt ook voor deze vars: $PHP_SELF, $PHP_AUTH_USER en $PHP_AUTH_PW.
Frank:
Google eens op 'superglobals' en ga vervolgens je script aanpassen.
Zoals reeds gezegd....
Dat geldt ook voor deze vars: $PHP_SELF, $PHP_AUTH_USER en $PHP_AUTH_PW.
Je hebt waarschijnlijk niet echt gezocht.:(
Voor deze vars geldt dit:
$_SERVER['PHP_SELF'], $_SERVER['PHP_AUTH_USER'] en $_SERVER['PHP_AUTH_PW']
Parse error: syntax error, unexpected T_IS_NOT_EQUAL in /customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php on line 13
Dat klopt. Op regel 13 staat een haakje sluiten te veel.
En er waren meer domme fouten, zijn nu gewijzigd.
Andries:
En er waren meer domme fouten, zijn nu gewijzigd.
Fouten zijn niet dom.
Ze niet corrigeren/herstellen, dat is pas dom.
Code (php)
1
2
3
4
2
3
4
<br />
<b>Notice</b>: Undefined variable: openbestand in <b>/customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php</b> on line <b>58</b><br />
<br />
<b>Warning</b>: implode() [<a href='function.implode'>function.implode</a>]: Bad arguments. in <b>/customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php</b> on line <b>58</b><br />
<b>Notice</b>: Undefined variable: openbestand in <b>/customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php</b> on line <b>58</b><br />
<br />
<b>Warning</b>: implode() [<a href='function.implode'>function.implode</a>]: Bad arguments. in <b>/customers/joggingclubwevelgem.be/joggingclubwevelgem.be/httpd.www/onlinebewerken.php</b> on line <b>58</b><br />
oja, bovenaan staat een login, maar ik krijg die niet te zien..
toch weer bedankt voor het verder helpen ;)
$openbestand moet $bestand zijn.
De errors zijn opgelost.
Volgende en hopelijk laatste problemen zijn
- dat ik geen login scherm krijg
- dat ik geen andere bestanden meer kan openen om daar tekst te wijzigen..
if ( (!isset($_GET['PHP_AUTH_USER'])...........
ia later vervangen door dit:
if(isset($_SERVER['PHP_AUTH_USER'])).......
De ! (NOT) is daarbij verdwenen.
Dus:
if(!isset($_SERVER['PHP_AUTH_USER'])).......
zou weer moeten werken.
maak anders ook ff enkele tekstbestandjes :
home.txt en test.txt
als je die 2 bestandjes online zet en de php file erbij en als je dan de php file test zou je normaal eerst een login moeten krijgen wat ik hier niet krijg.. en bij selecteer bestand blijf ik de inhoud van home.txt krijgen..
weet iemand iets tegen het probleem over het niet meer switchen tussen de tekst files ?