Gegevens in DB file plaatsen.

Status
Niet open voor verdere reacties.

Heinikken

Gebruiker
Lid geworden
7 mei 2002
Berichten
309
Ik heb een formulier, en de ingevulde gegevens moeten na het versturen in een bestand komen (data.dat).

Dat gebeurde eerst wel, maar nu heb ik de map waarin alle bestanden stonden verplaatst, en nu worden de gegevens niet meer weggeschreven. Er staat dus ergens een verwijzing fout lijkt mij maar ik kan niet vinden waar. Ik heb het idee dat het in dit stukje code niet goed zit:
PHP:
$errors=1;
}
if($errors==1) echo $error;
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Naam: ".$Naam."
Email: ".$EMail."
Telefoonnummer: ".$Telefoonnummer."
Graag contact opnemen per: ".$Contactper."
Opmerkingen: ".$Opmerkingen."
";
$message = stripslashes($message);
mail("jordi@hccnet.nl","Informatie aanvraag",$message,"From: $Email");
$make=fopen("admin/data.dat","a");
$to_put="";
$to_put .= $Naam."|".$EMail."|".$Telefoonnummer."|".$Contactper."|".$Opmerkingen."
";
fwrite($make,$to_put);
?>

Voor de duidelijkheid:
formulier: root/forms/form1.html
php process bestand:root/forms/process.php
data bestand: root/forms/admin/data.dat

iemand enig idee?
 
PHP:
$make=fopen("admin/data.dat","a");

ff wijzigen in:

PHP:
$make=fopen("./admin/data.dat","a");
 
Laatst bewerkt:
helaas, dat helpt ook niet :confused:
(en "../admin/data.dat" ook niet, evenals "/admin/data.dat"...)
 
Voor de volledigheid kopieer ik even het hele php bestand. Misschien dat het toch ergens anders zit.

Kan het niet in deze regel zitten?:
PHP:
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
omdat de locatie eerst was:
root/phpforms/forms...

Volledige bestand: (moest in 2x omdat er gedeeltes wegvielen)

PHP:
<?php
include("global.inc.php");
$errors=0;
$error="Er is iets misgegaan bij het versturen van het formulier.<ul>";
pt_register('POST','Naam');
pt_register('POST','EMail');
pt_register('POST','Telefoonnummer');
pt_register('POST','Contactper');
pt_register('POST','Opmerkingen');
$Opmerkingen=preg_replace("/(

PHP:
\015\012)|(\015)|(\012)/","&nbsp;<br />", $Opmerkingen);if($Naam=="" || $EMail=="" || $Contactper=="" || $Opmerkingen=="" ){
$errors=1;
$error.="<li>U heeft een of meerdere verplichte velden niet ingevuld. Probeert u het alstublieft nog eens.";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$EMail)){
$error.="<li>U heeft geen geldig e-mail adres ingevuld.";
$errors=1;
}
if($errors==1) echo $error;
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Naam: ".$Naam."
Email: ".$EMail."
Telefoonnummer: ".$Telefoonnummer."
Graag contact opnemen per: ".$Contactper."
Opmerkingen: ".$Opmerkingen."
";
$message = stripslashes($message);
mail("jordi@hccnet.nl","Informatie aanvraag ",$message,"From: $Email");
$make=fopen("admin/data.dat","a");
$to_put="";
$to_put .= $Naam."|".$EMail."|".$Telefoonnummer."|".$Contactper."|".$Opmerkingen."
";
fwrite($make,$to_put);
?>
 
uit de error logs:
[Wed Sep 22 12:37:24 2004] [error] PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/a726/public_html/forms1/process.php on line 33
[Wed Sep 22 12:37:24 2004] [error] PHP Warning: fopen(./admin/data.dat): failed to open stream: Permission denied in /home/a726/public_html/forms1/process.php on line 29
 
heb je al eens geprobeert om error_reporting(E_ALL); bovenaan je script te zetten ?
 
eeehm nee?

dus:
PHP:
<?php
include("global.inc.php");
error_reporting(E_ALL); 
$errors=0;

zoiets?
 
Nee gewoon op het script waar je het gebruikt :)

PHP:
<?

error_reporting(E_ALL);

hier de rest van jou script

Succes :thumb:
 
Geplaatst door Heinikken
uit de error logs:
[Wed Sep 22 12:37:24 2004] [error] PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/a726/public_html/forms1/process.php on line 33
[Wed Sep 22 12:37:24 2004] [error] PHP Warning: fopen(./admin/data.dat): failed to open stream: Permission denied in /home/a726/public_html/forms1/process.php on line 29
Oftewel, de fopen() functie werd niet goed uitvoerd. Verander:
PHP:
$make=fopen("admin/data.dat","a");
Maar eens in:
PHP:
$make = fopen("admin/data.dat","a") or die("Kon bestand niet openen");
Succes :thumb:

p.s. Je handtekening is te groot, lees de huisregels.
 
Laatst bewerkt:
@masterprut
heb ik gedaan, wat moet er dan gebeuren

@JP
zoiets dacht ik ook al, maar hoe los ik dat op?

ik krijg nu nieuwe meldingen in de error logs:
[[Fri Sep 24 08:48:20 2004] [error] PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/a726/public_html/forms1/process.php on line 34
[Fri Sep 24 08:48:20 2004] [error] PHP Warning: fopen(admin/data.dat): failed to open stream: Permission denied in /home/a726/public_html/forms1/process.php on line 30
[Fri Sep 24 08:48:19 2004] [error] PHP Notice: Undefined variable: Email in /home/a726/public_html/forms1/process.php on line 29
[Fri Sep 24 08:48:19 2004] [error] PHP Notice: Undefined index: HTTPS in /home/a726/public_html/forms1/process.php on line 21
 
en nu dit:
[Fri Sep 24 09:45:18 2004] [error] PHP Parse error: parse error, unexpected T_STRING in /home/a726/public_html/forms1/process.php on line 29

en line 29 = $make=fopen("admin/data.dat","a");
 
Geplaatst door Heinikken
@masterprut
heb ik gedaan, wat moet er dan gebeuren
Dan horen er errors te verschijnen die je nu in je logs krijgt. Maar als alle errors in je log komen, maakt 't niet uit :)
@JP
zoiets dacht ik ook al, maar hoe los ik dat op?
Zorgen dat je 'm wel kan openen.
[[Fri Sep 24 08:48:20 2004] [error] PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/a726/public_html/forms1/process.php on line 34
[Fri Sep 24 08:48:20 2004] [error] PHP Warning: fopen(admin/data.dat): failed to open stream: Permission denied in /home/a726/public_html/forms1/process.php on line 30
[Fri Sep 24 08:48:19 2004] [error] PHP Notice: Undefined variable: Email in /home/a726/public_html/forms1/process.php on line 29
[Fri Sep 24 08:48:19 2004] [error] PHP Notice: Undefined index: HTTPS in /home/a726/public_html/forms1/process.php on line 21
Je hebt niet de juiste rechten om 't bestand te openen :)
FF chmodden ?
 
Laatst bewerkt:
mmm ik denk dat ik dat heb opgelost.
Had inderdaad de dir "admin" (waar data.dat in staat) beveiligd....:o

ik krijg alleen nog wel steeds die parse error....?
 
Geef eens 5 regels code voor en na de regel waar hij de error detecteert ? De fout ligt namelijk niet bij de regel waar je fopen() uitvoert.
 
Ik heb het even in een text bestandje gekopieerd want als ik het gewoon wilde kopieren vielen er steeds stukjes weg.
Voor de volledigheid heb ik alles er maar even in gezet...

Alvast bedankt voor je hulp!
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan