Hallo,
Ik heb nu even een vreemd probleem. Als ik onderstaand script gewoon als los
script gebruik (dus zonder de functie setup_script()), dan werkt het prima.
Maar zodra ik er een functie van maak (zoals hieronder), dan krijg ik de
foutmelding 'fopen failed'. Ik vind dit heel vreemd, want ik krijg wel het
formulier te zien. Als ik iets niet invul krijg ik ook het formulier opnieuw
te zien met in het rood wat ik vergeten ben, maar dat wegschrijven gaat
opeens niet. Waarom niet?
Groeten,
Matthijs
<?PHP
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
function setup_script()
{
//De huidige werk directory
$werkdir = getcwd();
$website = $_SERVER['HTTP_HOST'];
//maak een formulier dat verderop ingevoegd kan worden
$form_block = "
<!--Zorg ervoor dat het formulier via 'zichzelf' verstuurd wordt-->
<FORM method=\"POST\" action=\"$_SERVER['PHP_SELF']\">
Het server pad naar het systeem<br>Hier moeten dus je PHP files staan<br>
<INPUT type=\"text\" name=\"systeem_pad\" size=30 value=\"$werkdir\"><br>
<br>
Het www pad voor het opslaan van de output HTML (laat $website weg en begin
met een /)<br>
Let op, je moet die directory even zelf maken met bijvoorbeeld je FTP
programma. Zorg ook dat je het 777 chmod<br>
<INPUT type=\"text\" name=\"html_pad\" size=30><br>
<br>
De gebruikersnaam<br>
<INPUT type=\"text\" name=\"gebruiker\" size=30><br>
<br>
Het te gebruiken wachtwoord<br>
<INPUT type=\"text\" name=\"wachtwoord\" size=30>
<br>
<br>
<!--Dit is de variabele die zorgt voor de controle of er een submit is
gedaan-->
<INPUT type=\"hidden\" name=\"verstuurd\" value=\"ja\">
<INPUT type=\"submit\" value=\"Sla alles op\">
</FORM>
";
if ($_POST[verstuurd] != "ja") {
// Er is nog geen submit verzoek gedaan, dus je ziet het formulier
echo "$form_block";
}
else if ($_POST[verstuurd] == "ja") {
$send = "opslaan";
// Controleer alle velden
// Als één van de velden niet is ingevuld, verander dan de waarde van
$send naar "nee".
if ($_POST[systeem_pad] == "") {
$systeem_pad_err = "
<font color=red>Vul a.u.b. een systeem pad in</font><br>
";
$send = "terug";
}
if ($_POST[html_pad] == "") {
$html_pad_err = "
<font color=red>Geef a.u.b. het www pad op!</font><br>
";
$send = "terug";
}
if ($_POST[gebruiker] == "") {
$gebruiker_err = "
<font color=red>Geef a.u.b. een gebruiker op</font><br>
";
$send = "terug";
}
if ($_POST[wachtwoord] == "") {
$wachtwoord_err = "
<font color=red>Geef a.u.b. een wachtwoord op</font><br>
";
$send = "terug";
}
// Verwerk het formulier als send gelijk is aan opslaan
if ($send == "opslaan") {
//decoderen van het wachtwoord
// Pluk de eerste twee karakters van het wachtwoord weg.
// Deze heb je nodig om het wachtwoord te coderen
$code_hulp = substr( $wachtwoord , 0 , 2 ); //start op plaats nul en pak
de karakters tot en met twee
// Codeer het wachtwoord nu
$gecodeerd_wachtwoord = crypt( $wachtwoord, $code_hulp );
//opslaan van de gegevens
$filenaamlog = "$systeem_pad/.gegevens";
//controleren of de .gegevens file reeds bestaat. Als het bestaat,
verwijder het dan (chmoden naar 666 kan vaak niet bij .naam files)
if (file_exists($filenaamlog))
{
unlink ("$filenaamlog");
}
//de gegevens in de file zetten
if($fp=fopen($filenaamlog, "w+"))
{
fwrite($fp,"$systeem_pad\n$html_pad\n$gebruiker\n$ gecodeerd_wachtwoord");
fclose($fp);
echo"De gegevens zijn weggeschreven naar: $filenaamlog<br><br>";
}
else
{
die("fopen failed");
}
$inhoud = fopen($filenaamlog, "r"); // Openen en lezen voor de controle
$regel1 = fgets($inhoud, 3000); // Pluk systeem_pad uit de file
$regel2 = fgets($inhoud, 3000); // Pluk html_pad uit de file
$regel3 = fgets($inhoud, 3000); // Pluk gebruiker uit de file
$regel4 = fgets($inhoud, 3000); // Pluk wachtwoord uit de file
fclose($inhoud); // sluit de file weer
echo "
File inhoud:<br>
\$systeem_pad==> $regel1<br>
\$html_pad==> $regel2<br>
\$gebruiker==> $regel3<br>
\$wachtwoord==> $regel4<br>
LET OP: het wachtwoord is gecodeerd!
";
} else if ($send == "terug") {
echo "$server_pad_err";
echo "$html_pad_err";
echo "$gebruiker_err";
echo "$wachtwoord_err";
echo "$form_block";
}
}
}
setup_script();
?>

Likes:
![wegschrijven binnen function wil niet lukken [php]](https://www.webhostingtalk.nl/images/WHT_rd/misc/dT.png)
Quote