web server probleem
Je moet die optie niet aanpassen.
do not acces super globel $_post array dirctly
Is een aanwijzing van netbeans. Maar deze is wel erg strikt.
Toevoeging op 08/04/2015 20:18:23:
Aanwijzing dus geen foutmelding :
ik dacht een foutmelding zou zij, het is dus een aanwijzing.
maar moet je die dan ook opvolgen? ?
ik heb de display_error erbij gezet zoals Aar heeft voorgesteld.
Geeft geen fouten aan. Na het invullen komt ie met een leeg wit scherm,
hij slaat niets op.
hoe kan ik nu de ingevulde gegevens in een bestand krijgen ? hallo,
deze heb ik nu:
code
<html>
<head>
<meta charset="UTF-8">
<TITLE> homepage </TITLE>
</head>
<H1>homepage 1</H1>
<body>
<FORM name="form1" METHOD="post" ACTION="gegevens.php">
naam: <br> <input Name="Naam" type="text" value="" > <br>
E-mail: <br> <input name="Email" type="text" value=""> <br><br>
<textarea name="Opmerking" rows="7" cols="45"></textarea><br>
<input type="submit" name="submit" value="indienen" >
</FORM>
</body>
</html>
/code
ik heb bij server request een =je bijgezet. nu zie ik in de gegevens.php dit
code
Datum: <br />Naam: <br />Email: <br />Opmerking: <br /><br />
/code
er gebeurd nu wel iets, nog geen invul gegevens. hallo,
Gebruik method="POST" HTML-tags horen in kleine letters
ik heb post vervangen door POST. als dit is wat je bedoeld geen resultaat.
html tag aangepast. bedankt. hallo,
Dit is mijn even onduidelijk waarom ik dit zo gedaan heb.
Ik had de gedachte dat dit zo moest. Nu begrijp ik het
Niet helemaal meer.
Ik had hier en daar wat echo's tussen gezet en gekeken wat hij liet zien en wat niet.
Wat ik ervan niet begrijp is dat na wat hij heeft weg geschreven in het bestand niets meer doet.
De tekst van bedankt voor het invullen zie je niet meer.
Het moet toch niet zo moeilijk zijn om iets te kunnen weg schrijven naar een bestand.
Waar gaat het fout in Mijn denkwijze ? Hallo
Maak er eens action="" van.
1. de bovenstaande code staat in het bestand waar je code naar wegschrijft (althans daar lijkt het sterk op); dit is dus een soort van zelf-modificerende code; dit is een heel, HEEL slecht idee
2. nog even los van het feit dat je data probeert weg te schrijven naar het script wat hier verantwoordelijk voor is, je schrijft het weg naar een PHP-bestand; je geeft iemand hier dus vrij spel om PHP-code te injecteren in je website; dit is een ENORM VEILIGHEIDSLEK, als je dan toch data naar een bestand wegschrijft (waarom niet naar een database?) zorg dan dat de EXTENSIE van dit bestand van een bestandstype is dat geen code op je webserver kan uitvoeren
OPLOSSINGEN:
1. schrijf de data weg naar een ANDER bestand (of, wellicht beter, gebruik een DATABASE)
2. geef het bestand de extensie .txt, of .htm(l), daarnaast zou ik je aanraden om alle inhoud "onschadelijk" te maken, want grapjassen kunnen nog steeds JavaScript invoegen of andere fratsen uithalen zoals het breken van je layout of wat dan ook Op twee cruciale punten maak je een fout:
gaat de goede richting in dit zie ik nu als output met fout melding,iets van time zone?
homepage 1
Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in E:\root\phpproject4\index.php on line 29
Datum:
Naam: hans
Email: [email protected]
Opmerking: dit is een test
Hartelijk dank voor het invullen hallo
date_default_timezone_set('Europe/Amsterdam'); Zet dit even voor de foutmelding.
uh de uren en minuten moet ook met een Hoofdletter dus niet %h:%m maar %H:%M.
nu worden wel alle velden gevuld met de invul gegevens. helaas de fout van mijn vorige
antwoord blijft
Toevoeging op 09/04/2015 21:31:31:
hallo
ik was te laat met deze aanvulling hiervoor. na het invullen van jou
voorstel zie ik het volgende:
homepage 1
Datum: 09/04/15/21:29
Naam: hans
Email: [email protected]
Opmerking: hahahahahah gelukt
Hartelijk dank voor het invullen
het invulmenu komt er weer onder. heel goed nu hallo
Hallo Thomas,
Ik heb jou stukje goed gelezen, bedankt voor jou reactie. Ik wil wel even reageren op dit stukje.
Ten eerste heel erg bedankt voor jou duidelijke uitleg.
Ik wil mijn eigen niet schoon praten hoe ik dit doe, dit is een interessante taal. Dit wil ik mijn proberen
Eigen te maken met de haken en ogen daarvan.
Wat jij verteld was ik niet van bewust. Ik denk nu ik een stukje heb geschreven, wil ik dit gaan verbeteren.
Maar dan wel van onderaan en hier op dit forum kan ik dit wel doen in mijn eigen taal.
Dus, ik hoop toch wel veel van deze taal te leren.
Ik ga mij hierin verdiepen lijkt me een goede uitdaging.
Gr
Hans van den heuvel
Nb
do not acces super globel $_post array dirctly
Is een aanwijzing van netbeans. Maar deze is wel erg strikt.
Toevoeging op 08/04/2015 20:18:23:
Aanwijzing dus geen foutmelding
ik dacht een foutmelding zou zij, het is dus een aanwijzing.
maar moet je die dan ook opvolgen? ?
ik heb de display_error erbij gezet zoals Aar heeft voorgesteld.
Geeft geen fouten aan. Na het invullen komt ie met een leeg wit scherm,
hij slaat niets op.
hoe kan ik nu de ingevulde gegevens in een bestand krijgen ?
Laat eens zien welke relevante code je nu op dit moment hebt?
deze heb ik nu:
code
<html>
<head>
<meta charset="UTF-8">
<TITLE> homepage </TITLE>
</head>
<H1>homepage 1</H1>
<body>
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
ini_set('display_errors',true);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$naam = $_POST['Naam'];
$email = $_POST['Email'];
$opmerking = $_POST['Opmerking'];
$tijd = time();
$datum = strftime('%d/%m/%y/%h:%m',$tijd);
$myfile = fopen('gegevens.php', 'w') or die('Kan gegevens.txt niet openen!');
$txt = '';
$txt .= 'Datum: ';
$txt .= $datum;
$txt .= '<br />';
$txt .= 'Naam: ';
$txt .= $naam;
$txt .= '<br />';
$txt .= 'Email: ';
$txt .= $email;
$txt .= '<br />';
$txt .= 'Opmerking: ';
$txt .= $opmerking;
$txt .= '<br /><br />';
fwrite($myfile, $txt);
fclose($myfile);
// uitlezen content gegevens.php
$content = file_get_contents('gegevens.php');
echo $content;
echo '<br />Hartelijk dank voor het invullen';
}
// endif
?>
ini_set('display_errors',true);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$naam = $_POST['Naam'];
$email = $_POST['Email'];
$opmerking = $_POST['Opmerking'];
$tijd = time();
$datum = strftime('%d/%m/%y/%h:%m',$tijd);
$myfile = fopen('gegevens.php', 'w') or die('Kan gegevens.txt niet openen!');
$txt = '';
$txt .= 'Datum: ';
$txt .= $datum;
$txt .= '<br />';
$txt .= 'Naam: ';
$txt .= $naam;
$txt .= '<br />';
$txt .= 'Email: ';
$txt .= $email;
$txt .= '<br />';
$txt .= 'Opmerking: ';
$txt .= $opmerking;
$txt .= '<br /><br />';
fwrite($myfile, $txt);
fclose($myfile);
// uitlezen content gegevens.php
$content = file_get_contents('gegevens.php');
echo $content;
echo '<br />Hartelijk dank voor het invullen';
}
// endif
?>
<FORM name="form1" METHOD="post" ACTION="gegevens.php">
naam: <br> <input Name="Naam" type="text" value="" > <br>
E-mail: <br> <input name="Email" type="text" value=""> <br><br>
<textarea name="Opmerking" rows="7" cols="45"></textarea><br>
<input type="submit" name="submit" value="indienen" >
</FORM>
</body>
</html>
/code
ik heb bij server request een =je bijgezet. nu zie ik in de gegevens.php dit
code
Datum: <br />Naam: <br />Email: <br />Opmerking: <br /><br />
/code
er gebeurd nu wel iets, nog geen invul gegevens.
Je formulier post je naar gegevens.php terwijl je gegevens.php juist wil maken.
Gebruik method="POST"
ik heb post vervangen door POST. als dit is wat je bedoeld geen resultaat.
html tag aangepast. bedankt.
Waarom schrijf je naar het bestand waarvanuit je POST?
Dit is mijn even onduidelijk waarom ik dit zo gedaan heb.
Ik had de gedachte dat dit zo moest. Nu begrijp ik het
Niet helemaal meer.
Ik had hier en daar wat echo's tussen gezet en gekeken wat hij liet zien en wat niet.
Wat ik ervan niet begrijp is dat na wat hij heeft weg geschreven in het bestand niets meer doet.
De tekst van bedankt voor het invullen zie je niet meer.
Het moet toch niet zo moeilijk zijn om iets te kunnen weg schrijven naar een bestand.
Waar gaat het fout in Mijn denkwijze ?
- SanThe - op 09/04/2015 18:18:43:
Je formulier post je naar gegevens.php terwijl je gegevens.php juist wil maken.
Maak er eens action="" van.
1. de bovenstaande code staat in het bestand waar je code naar wegschrijft (althans daar lijkt het sterk op); dit is dus een soort van zelf-modificerende code; dit is een heel, HEEL slecht idee
2. nog even los van het feit dat je data probeert weg te schrijven naar het script wat hier verantwoordelijk voor is, je schrijft het weg naar een PHP-bestand; je geeft iemand hier dus vrij spel om PHP-code te injecteren in je website; dit is een ENORM VEILIGHEIDSLEK, als je dan toch data naar een bestand wegschrijft (waarom niet naar een database?) zorg dan dat de EXTENSIE van dit bestand van een bestandstype is dat geen code op je webserver kan uitvoeren
OPLOSSINGEN:
1. schrijf de data weg naar een ANDER bestand (of, wellicht beter, gebruik een DATABASE)
2. geef het bestand de extensie .txt, of .htm(l), daarnaast zou ik je aanraden om alle inhoud "onschadelijk" te maken, want grapjassen kunnen nog steeds JavaScript invoegen of andere fratsen uithalen zoals het breken van je layout of wat dan ook
Gewijzigd op 09/04/2015 21:15:07 door Thomas van den Heuvel
gaat de goede richting in dit zie ik nu als output met fout melding,iets van time zone?
homepage 1
Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in E:\root\phpproject4\index.php on line 29
Datum:
Naam: hans
Email: [email protected]
Opmerking: dit is een test
Hartelijk dank voor het invullen
date_default_timezone_set('Europe/Amsterdam');
uh de uren en minuten moet ook met een Hoofdletter dus niet %h:%m maar %H:%M.
nu worden wel alle velden gevuld met de invul gegevens. helaas de fout van mijn vorige
antwoord blijft
Toevoeging op 09/04/2015 21:31:31:
hallo
ik was te laat met deze aanvulling hiervoor. na het invullen van jou
voorstel zie ik het volgende:
homepage 1
Datum: 09/04/15/21:29
Naam: hans
Email: [email protected]
Opmerking: hahahahahah gelukt
Hartelijk dank voor het invullen
het invulmenu komt er weer onder. heel goed nu
Gewijzigd op 09/04/2015 21:32:38 door hans vd heuvel
Thomas van den Heuvel op 09/04/2015 21:12:06:
Op twee cruciale punten maak je een fout:
1. de bovenstaande code staat in het bestand waar je code naar wegschrijft (althans daar lijkt het sterk op); dit is dus een soort van zelf-modificerende code; dit is een heel, HEEL slecht idee
2. nog even los van het feit dat je data probeert weg te schrijven naar het script wat hier verantwoordelijk voor is, je schrijft het weg naar een PHP-bestand; je geeft iemand hier dus vrij spel om PHP-code te injecteren in je website; dit is een ENORM VEILIGHEIDSLEK, als je dan toch data naar een bestand wegschrijft (waarom niet naar een database?) zorg dan dat de EXTENSIE van dit bestand van een bestandstype is dat geen code op je webserver kan uitvoeren
OPLOSSINGEN:
1. schrijf de data weg naar een ANDER bestand (of, wellicht beter, gebruik een DATABASE)
2. geef het bestand de extensie .txt, of .htm(l), daarnaast zou ik je aanraden om alle inhoud "onschadelijk" te maken, want grapjassen kunnen nog steeds JavaScript invoegen of andere fratsen uithalen zoals het breken van je layout of wat dan ook
1. de bovenstaande code staat in het bestand waar je code naar wegschrijft (althans daar lijkt het sterk op); dit is dus een soort van zelf-modificerende code; dit is een heel, HEEL slecht idee
2. nog even los van het feit dat je data probeert weg te schrijven naar het script wat hier verantwoordelijk voor is, je schrijft het weg naar een PHP-bestand; je geeft iemand hier dus vrij spel om PHP-code te injecteren in je website; dit is een ENORM VEILIGHEIDSLEK, als je dan toch data naar een bestand wegschrijft (waarom niet naar een database?) zorg dan dat de EXTENSIE van dit bestand van een bestandstype is dat geen code op je webserver kan uitvoeren
OPLOSSINGEN:
1. schrijf de data weg naar een ANDER bestand (of, wellicht beter, gebruik een DATABASE)
2. geef het bestand de extensie .txt, of .htm(l), daarnaast zou ik je aanraden om alle inhoud "onschadelijk" te maken, want grapjassen kunnen nog steeds JavaScript invoegen of andere fratsen uithalen zoals het breken van je layout of wat dan ook
Hallo Thomas,
Ik heb jou stukje goed gelezen, bedankt voor jou reactie. Ik wil wel even reageren op dit stukje.
Ten eerste heel erg bedankt voor jou duidelijke uitleg.
Ik wil mijn eigen niet schoon praten hoe ik dit doe, dit is een interessante taal. Dit wil ik mijn proberen
Eigen te maken met de haken en ogen daarvan.
Wat jij verteld was ik niet van bewust. Ik denk nu ik een stukje heb geschreven, wil ik dit gaan verbeteren.
Maar dan wel van onderaan en hier op dit forum kan ik dit wel doen in mijn eigen taal.
Dus, ik hoop toch wel veel van deze taal te leren.
Ik ga mij hierin verdiepen lijkt me een goede uitdaging.
Gr
Hans van den heuvel
Nb