Jonas9300 Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 (endret) Hei. Jeg er ganske ny i php, og er vandt til å rette opp feil. Men denne feilen har jeg ikke funnet ut av ennå. Dette scriptet, (som ikke er ferdig) vil jeg at skal rope ut: "Du må fylle ut alle feltene," og det kun hvis alle feltene ikke er fylt ut. Men dette blir ropt ut, uansett hvilke inputser som er/ikke er utfylt. Takker for svar fra de som kan hjelpe! <html> <body> <?php $username = $_POST["username"]; $password = $_POST["password"]; $password2 = $_POST["password2"]; $birthdate = $_POST["birthdate"]; $birthdate2 = $_POST["borthdate2"]; if (empty($username)) { die("Du må fylle ut alle feltene!"); } elseif(empty($password)) { die("Du må fylle ut alle feltene!"); } elseif(empty($password2)) { die("Du må fylle ut alle feltene!"); } elseif(empty($birthdate)) { die("Du må fylle ut alle feltene!"); } elseif(empty($birthdate2)) { die("Du må fylle ut alle feltene!"); } else { echo "En feil har oppstått!"; } ?> </body> </html> Endret 12. juli 2009 av Jonas9300 Lenke til kommentar
Largie Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 Kanskje ikke feltet heter "borthdate2" i htmlkoden? Lenke til kommentar
emilkje Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 Du har skrevet $birthdate2 = $_POST["borthdate2"]; Mulig det er dette som skaper problemer... Eller du kan prøve den koden her, som gjør det litt enklere å redigere feilmeldingen hvis du skulle legge til flere felter etc. <?php $username = $_POST["username"]; $password = $_POST["password"]; $password2 = $_POST["password2"]; $birthdate = $_POST["birthdate"]; $birthdate2 = $_POST["birthdate2"]; if(!isset($username)) { displayError(); } if(!isset($password)) { displayError(); } if(!isset($password2)) { displayError(); } if(!isset($birthdate)) { displayError(); } if(!isset($birthdate2)) { displayError(); } function displayError() { die("Du må fylle ut alle feltene"); } ?> Lykke til videre Lenke til kommentar
Jonas Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 (endret) Hvorfor ikke gjøre det enklest, når man først er i gang med å gjøre det enklere? <?php if ( empty ( $_POST['username'] ) || empty ( $_POST['password'] ) || empty ( $_POST['password2'] ) || empty ( $_POST['birthday'] ) || empty ( $_POST['birthday2'] ) ) die("Du må fylle ut alle feltene"); ?> Eller mer dynamisk, slik jeg personlig foretrekker det. <?php $fields = array ( 'username', 'password', 'password2', 'birthday', 'birtday2', ); foreach ( $fields as $field ) if ( !array_key_exists ( $field, $_POST ) || strlen ( ${$field} = $_POST[$field] ) == 0 ) die("Du må fylle ut alle feltene"); ?> Endret 12. juli 2009 av Jonas Lenke til kommentar
Jonas9300 Skrevet 12. juli 2009 Forfatter Del Skrevet 12. juli 2009 (endret) Har prøvd ut din metode, Jonas. Jeg liker den også best, men var usikker på om man kunne sette sammen flere enn to og to variabler om gangen. Skrivefeilen påvirker ikke denne feilen. Hjelper heller ikke å bruke "isset" fremfor "empty" :| Endret 12. juli 2009 av Jonas9300 Lenke til kommentar
Epower Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 (endret) Dette scriptet, (som ikke er ferdig) vil jeg at skal rope ut: "Du må fylle ut alle feltene," og det kun hvis alle feltene ikke er fylt ut. Sånn her da: *feil* Endret 12. juli 2009 av Epower Lenke til kommentar
Jonas9300 Skrevet 12. juli 2009 Forfatter Del Skrevet 12. juli 2009 (endret) Dette scriptet, (som ikke er ferdig) vil jeg at skal rope ut: "Du må fylle ut alle feltene," og det kun hvis alle feltene ikke er fylt ut. Sånn her da: *feil* Hva mener du med det? Hva jeg ber scriptet om å fortelle har ikke noe å si med resten av kodingen. Beskjeden den gir ut kan være omtrent hva som helst. Endret 12. juli 2009 av Jonas9300 Lenke til kommentar
Epower Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 (endret) <?php if(count(array_filter($_POST)) == 0) { die("Du må fylle ut alle feltene"); } ?> Ble feil den forrige posten Endret 12. juli 2009 av Epower Lenke til kommentar
Jonas9300 Skrevet 12. juli 2009 Forfatter Del Skrevet 12. juli 2009 (endret) <?php if(count(array_filter($_POST)) == 0) { die("Du må fylle ut alle feltene"); } ?> Ble feil den forrige posten Hehe, ser fortsatt dårlig ut. Er det noe av det du skriver, som jeg må bytte ut? Eller skal jeg skrive inn koden din, uten endre på noe som helst? Endret 12. juli 2009 av Jonas9300 Lenke til kommentar
Epower Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 Prøver igjen <?php $fields = array ( 'username', 'password', 'password2', 'birthday', 'birthday2', ); $callback = function($field) { return ($_POST[$field] != ''); } if(count(array_filter($fields, $callback)) == 0) { die("Du må fylle ut alle feltene"); } ?> Lenke til kommentar
Jonas9300 Skrevet 12. juli 2009 Forfatter Del Skrevet 12. juli 2009 Prøver igjen <?php $fields = array ( 'username', 'password', 'password2', 'birthday', 'birthday2', ); $callback = function($field) { return ($_POST[$field] != ''); } if(count(array_filter($fields, $callback)) == 0) { die("Du må fylle ut alle feltene"); } ?> Funker fortsatt ikke :\ Er nok en eller annen enkel løsning! Men kan ikke forstå hva. Lenke til kommentar
Epower Skrevet 12. juli 2009 Del Skrevet 12. juli 2009 omg <?php if($username == '' && $password == '' && $password2 == '' && $birthday == '' && $birthday2 == '') { die("Du må fylle ut alle feltene"); } ?> Hvis ikke det funker så gidder jeg ikke mer Lenke til kommentar
Largie Skrevet 13. juli 2009 Del Skrevet 13. juli 2009 omg <?php if($username == '' && $password == '' && $password2 == '' && $birthday == '' && $birthday2 == '') { die("Du må fylle ut alle feltene"); } ?> Hvis ikke det funker så gidder jeg ikke mer Med den logikken trenger brukeren bare å fylle ut et av felta da Bruk "Eller" sammenligner (|| hvertfall slik i C++). Lenke til kommentar
Wackamole Skrevet 13. juli 2009 Del Skrevet 13. juli 2009 Jeg har en stygg mistanke om at vi må få se HTML koden som du bruker for og sende til dette scriptet. Lenke til kommentar
AlecTBM Skrevet 13. juli 2009 Del Skrevet 13. juli 2009 Er jeg den eneste som ser at den kun skal printe ut feil hvis alle feltene er tomme? og det kun hvis alle feltene ikke er fylt ut Det siste forslaget til Epower skal funke sånn. Det skal ikke være noen merkar forskjell mellom feks $username == '' og empty($username) Jeg ville brukt sist nevnte. Funker ikke den så har du enten ikke lastet opp scriptet, eller så er det noe feil med servern. Funker det, trykk på løst Lenke til kommentar
Jonas Skrevet 13. juli 2009 Del Skrevet 13. juli 2009 (endret) Nope, du og Epower er bare de eneste som tolker det 100% bokstavelig. Sannsynligvis så har trådstarter bare formulert seg litt feil. Jeg mener, hvorfor i all verden skal man bare vise en feilmelding dersom ingen felter er fyllt ut? Makes no sense, så de fleste antar at det er snakk om dersom et eller flere ikke er fyllt ut. Endret 13. juli 2009 av Jonas Lenke til kommentar
AlecTBM Skrevet 13. juli 2009 Del Skrevet 13. juli 2009 (endret) Med mindre trådstarter virkelig vil det (som virker lite sannsynlig når jeg tenker over det) Uansett så skal koden til Epower funke fint For å printe ut melding hvis 1 er feil så bytter man ut && med || Endret 13. juli 2009 av AlecTBM Lenke til kommentar
Jonas9300 Skrevet 16. juli 2009 Forfatter Del Skrevet 16. juli 2009 Forumuleringen er riktig? Man må fylle ut alle feltene for at det som skal bli en registrerings funksjon skal få all informasjonen jeg vil ha. Den enkleste koden som jeg var ute etter, har jeg funnet. Og det er ikke verre enn: if (empty($username) || empty($password) || empty($confpassword) || empty($email) || empty($b_day) || empty($b_mounth) || empty($b_year)) die("Du må fylle ut alle felter!"); Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå