php schrijven naar php bestand via script
Ik ben bezig om een installatie script te maken zodat ik makkelijk php bestanden kan schrijven zonder via ftp te hoeven uploaden. Ik heb al uitgeprobeerd dat ik met:
Het een en ander kan bereiken, enkel als hier php functies en variabelen in komen te staan dan krijg ik foutmeldingen. PHP wil dan de code uitvoeren alvorens deze in een bestand te schrijven. Dit mag dus niet! Wie weet hoe ik dit het beste kan doen?
Alvast bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$string = "
<?php
echo 'Hallo!';
echo \"Hallo!\";
function test(params) {
echo params;
}
echo 'Werkt allemaal prima:)';
?>
";
?>
$string = "
<?php
echo 'Hallo!';
echo \"Hallo!\";
function test(params) {
echo params;
}
echo 'Werkt allemaal prima:)';
?>
";
?>
Gewijzigd op 26/02/2011 15:12:04 door Mar cel
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
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
<?php
$config = 'includes/wegschrijf_bestand.php' ; // bestand waar het in moet komen te staan
// als de config bestaat de $vars inlezen
if(file_exists($config))
{
include($config);
}
// anders initialiseren
else
{
// Database connectie
$string1 = '';
$string2 = '';
$string3 = '';
}
// is er gepost dan de $vars overnemen
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Database connectie
$string1 = addslashes($_POST['string1']);
$string2 = addslashes($_POST['string2']);
$string3 = addslashes($_POST['string3']);
$inhoud = '<?php
$string1 = "' . $string1 . '";
$string2 = "' . $string2 . '";
$string3 = "' . $string3 . '";
?>';
$openconfig = fopen("" .$config."", "w");
fwrite($openconfig, $inhoud);
// De data is er nu ingeschreven
// Dus nu gaan we het bestand weer netjes sluiten!
fclose($openconfig);
echo "aangepast.";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="string1" value="<?php echo stripslashes($string1); ?>" />
<input type="text" name="string2" value="<?php echo stripslashes($string2); ?>" />
<input type="text" name="string3" value="<?php echo stripslashes($string3); ?>" />
<input type="submit" name="proceed" id="proceed" value="Opslaan" />
</form>
$config = 'includes/wegschrijf_bestand.php' ; // bestand waar het in moet komen te staan
// als de config bestaat de $vars inlezen
if(file_exists($config))
{
include($config);
}
// anders initialiseren
else
{
// Database connectie
$string1 = '';
$string2 = '';
$string3 = '';
}
// is er gepost dan de $vars overnemen
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Database connectie
$string1 = addslashes($_POST['string1']);
$string2 = addslashes($_POST['string2']);
$string3 = addslashes($_POST['string3']);
$inhoud = '<?php
$string1 = "' . $string1 . '";
$string2 = "' . $string2 . '";
$string3 = "' . $string3 . '";
?>';
$openconfig = fopen("" .$config."", "w");
fwrite($openconfig, $inhoud);
// De data is er nu ingeschreven
// Dus nu gaan we het bestand weer netjes sluiten!
fclose($openconfig);
echo "aangepast.";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="string1" value="<?php echo stripslashes($string1); ?>" />
<input type="text" name="string2" value="<?php echo stripslashes($string2); ?>" />
<input type="text" name="string3" value="<?php echo stripslashes($string3); ?>" />
<input type="submit" name="proceed" id="proceed" value="Opslaan" />
</form>
Ik durf alleen niets te zeggen over de veiligheid. Ik denk dat andere mensen daar beter in zijn. Ben ik eigelijk ook wel benieuwd naar.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$file = "
<?php
require_once('admin/include_back_end.php');
$pagina = @$_GET['p'];
$parent = @$_GET['a'];
if ($pagina == '')
$Web->parse_template_file('home');
else
$Web->parse_template_file($pagina);
?>";
?>
$file = "
<?php
require_once('admin/include_back_end.php');
$pagina = @$_GET['p'];
$parent = @$_GET['a'];
if ($pagina == '')
$Web->parse_template_file('home');
else
$Web->parse_template_file($pagina);
?>";
?>
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/vhosts/a-development.nl/httpdocs/test/test.php on line 7
Gewijzigd op 26/02/2011 23:14:33 door Bart van Asselt
$ even escapen met een \
- Aar - op 26/02/2011 23:17:32:
$ even escapen met een \
of enkele quotes gebruiken ipv dubbelen.
- Aar - op 26/02/2011 23:17:32:
$ even escapen met een \
Ja dit werkt, nu wil ik het verder uitbereiden dat ik een een php file kan importeren en alle $ escaped. Op welke manier kan ik zoeken naar alle variabelen en deze escapen?
Edit:
Zelf al oplossing gevonden, str_replace is de oplossing:) Bedankt mensen!
Gewijzigd op 27/02/2011 13:20:31 door Bart van Asselt
gebruik dan gewoon enkele quotes