Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
Hjælp til simpel PHPAf Super Supporter Siepher | 27-10-2010 09:25 | 1339 visninger | 15 svar, hop til seneste
Hej HOL'ere!
Håber jeg kan få lidt hjælp til den her. Jeg har en formel hvor felterne skal udfyldes, og hvis de er udfyldt skal den gemme dataene i en tekst fil. Det virker skam fint, problem med dette er at hvis alle felter ikke er udfyldt, så skriver den kun at navn ikke er udfyldt, og hvis navnet ikke er udfyldt skriver den email ikke er udfyldt osv. Med andre ord, den tager kun en af gangen.
Nogen smart måde at sætte den op til at køre dem alle igennem?
if(isset($_POST['submit'])-
)
{
if (!empty($_POST["name"]))
if (!empty($_POST["email"]))
if (!empty($_POST["message"]))
if (!empty($_POST["address"]))
if (!empty($_POST["phone"]))
{ $name = date('l jS \of F Y h:i:s A ').$_POST['name'].' wrote'."\r\n";
$email = "Email: ".$_POST['email']."\r\n";
-
$message = "Message: ".$_POST['message']."\r\n";
-
$address = "Address: ".$_POST['address']."\r\n";
-
$phone = "Tel.: ".$_POST['phone']."
";
-
$write = fopen('data.txt','a+') or exit("Unable to open the file");
if($write != null)
{ fwrite($write,$name);
fwrite($w-
rite,$email);
fwrite($write,$message);
-
fwrite($write,$address);
fwrite($write,$phone-
);
}
fclose($write);
echo "Data added!
";
}
else
{ -
echo 'Phone is not filled out.';
}
else
{ echo 'Address not filled out.';
}
else
{ echo 'Message not filled out.';
}
else
{ echo 'Email not filled out.';
}
else
{ echo 'Name not filled out.';
}
} --
The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996
Den gik lidt galt. Her er den ordentligt opstillet.
http://pastebin.com[...] -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Det kan jeg godt fikse når jeg kommer hjem .. :) -- Gæstebruger, opret dit eget login og få din egen signatur. Står desværre og skal bruge det hurtigst muligt. :/
Men tak alligvel! -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Lige uden at have gennemtænkt det mere så kunne en lidt bedre løsning nok være først at se alle felterne igennem. Hvis et af felterne ikke er sat så sætter du en boolean (feks isFinished) til false og hver af de værdier der ikke er sat gemmes i en string. Når den har løbet alle værdier igennem gemmer den infoen hvis isFinished=true og ellers udskriver den string med værdier ikke sat.
Jeg koder ikke normalt i php, men det burde være muligt. Kode kan jeg dog ikke lige give dig. Håber det er muligt at læse ud fra teksten ellers vil jeg godt skrive lidt pseudokode. -- Hvis f.eks. der er 2 felter der ikke er udfyldt, så vil du have den til at sige at disse 2 felter ikke er udfyldt?
Hvorfor benytter du ikke javascript til dette? -- Indtast cool signatur her. #5 - Ja. Fordi opgaven er at få det til at funkle med PHP. -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Altså normalt ville jeg ligge det ansvar til javascript, om at smide svar til brugeren, at de mangler at udfylde et felt, også i php lave én if sætning, der tjekker om der er noget i alle felter, hvis bare et af dem er tomt, så sker der intet. -- Indtast cool signatur her. #4
Har helt ret, du skal bruge en boolean = true på felterne og en = false hvis de er null, så burde du få den korrekte println udfor det tomme felt. -- GTX 260 896 GDDR3, 4 GB Corsair Dominator, TX650, AMD 64 X2 6000+, G11, G9, Creative Fatal1ty, Samsung SyncMaster 226CW. http://pastebin.com[...] Kunne være en løsning. Nu kommer error beskederne i en lang string, det kan man selvfølgelig godt tweake :)
Lige en anden ting - du kan bruge single quotes når du echo'er, så skal du ikke escape alle de double quotes.
eks. echo 'Hello World';
Derudover HTML mæssigt, så er font ikke noget man bruger mere. Der css man istedet. -- Indtast cool signatur her. #9 - Underligt nok kommer den med:
Parse error: parse error in C:\wamp\www\projekt\side2.php on line 40
Jeg kan dog ikke se nogen fejl? -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Ligemeget, mig der redigerede i den forkerte fil, duh. -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Den fungerer ikke rigtig.
http://pastebin.com[...]
= Notice: Undefined variable: error_msg in C:\wamp\www\projekt\side2.php on line 29
Derefter printer den alle fejlmeddelserne, selvom jeg ikke har udfyldt eller trykket submit. -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Der manglede et afsluttende tuborgtegn.. Plus dit tuborgtegn ved post submit, skal være over variablerne brugt i if sætningen..
http://pastebin.com[...] -- Indtast cool signatur her. #13 - Fandt fejlen selv, men tak alligevel.
Nu har jeg justeret det du havde sendt, samt justeret resten projektet, og det hele virker perfekt.
1000 tak for hjælpen! :) -- The things you own end up owning you.
Chuck Palahniuk (1962 - ), Fight Club, 1996 Godt det virker, ellers skulle du se på noget 'form validation' i javascript -- verdammte Quantenspringerei.
Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.
Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.
Opret bruger | Login
|
Du skal være logget ind for at tilmelde dig nyhedsbrev.
Hvilken udbyder har du til internet? 230 personer har stemt - Mit energiselskab (Ewii f.eks) 11%
|