Avatar billede hypofysen Nybegynder
23. januar 2009 - 11:00 Der er 9 kommentarer og
1 løsning

foreach der tjekker for tomme felter

har forsøgt at tjekke en formular med følgende løkke, men den returnerer kun fejl hvis alle felter er tomme, hvad gør jeg forkert?

foreach($_POST as $feltid => $tjek){
    if(empty($tjek)){
        header("Location: payment.php?tjek=missing");
        exit;   
}else{   

videre med scriptet
Avatar billede j4k0b Nybegynder
23. januar 2009 - 11:57 #1
Du mener vel, at programmet viderestiller (header()) hvis der er ÉT feldt - eller mere - som er tomt.. Hvad vil du opnå præcis?
Avatar billede hypofysen Nybegynder
23. januar 2009 - 15:27 #2
jeg vil gerne ha den til at viderestille med header hvis et eller flere felter er tomme, men her gør den det kun hvis alle felter er tomme
Avatar billede j4k0b Nybegynder
23. januar 2009 - 16:19 #3
iflg. det stykke kode du har pastet viderestilles hvis blot ét af felterne er tomme. Hvis det første felt er tomt tjekkes de resterende slet ikke... Ellers har du glemt vitale dele af koden, og så er det sgu svært at hjælpe
Avatar billede hypofysen Nybegynder
23. januar 2009 - 16:40 #4
siden starter sådan her:

<?php
require_once("common/db_connect.php");
@session_start();
$sessionIp = session_id();
$date = date('dmy');
/*----------------tjek for tomme felter--------------------------------------------- */
foreach($_POST as $feltid => $tjek){
    if(empty($tjek)){
        header("Location: payment.php?tjek=missing");
        exit;   
}else{   

@$_SESSION['navn'] = addslashes($_POST['navn']);
@$_SESSION['adresse'] = addslashes($_POST['adresse']);
@$_SESSION['postnr'] = addslashes($_POST['postnr']);
@$_SESSION['bynavn'] = addslashes($_POST['bynavn']);
@$_SESSION['telefon'] = addslashes($_POST['telefon']);
@$_SESSION['email'] = addslashes($_POST['email']);

@$_SESSION['kortnummer'] = addslashes($_POST['kortnummer']);
@$_SESSION['umdr'] = addslashes($_POST['umdr']);
@$_SESSION['uaar'] = addslashes($_POST['uaar']);
@$_SESSION['cvc'] = addslashes($_POST['cvc']);

så der er intet der udeladt
Avatar billede majbom Novice
24. januar 2009 - 08:59 #5
prøv at ret til:

foreach($_POST as $feltid => $tjek){
  if(empty($tjek)){
      header("Location: payment.php?tjek=missing");
      exit;   
  }
}

@$_SESSION['navn'] = addslashes($_POST['navn']);
@$_SESSION['adresse'] = addslashes($_POST['adresse']);
@$_SESSION['postnr'] = addslashes($_POST['postnr']);
@$_SESSION['bynavn'] = addslashes($_POST['bynavn']);
@$_SESSION['telefon'] = addslashes($_POST['telefon']);
@$_SESSION['email'] = addslashes($_POST['email']);

@$_SESSION['kortnummer'] = addslashes($_POST['kortnummer']);
@$_SESSION['umdr'] = addslashes($_POST['umdr']);
@$_SESSION['uaar'] = addslashes($_POST['uaar']);
@$_SESSION['cvc'] = addslashes($_POST['cvc']);
Avatar billede hypofysen Nybegynder
25. januar 2009 - 09:11 #6
det virkede, takker smid et svar :)
gerne med en forklaring, da jeg stadig ikke forstår hvorfor det jeg selv lavede ikke virkede...
Avatar billede majbom Novice
25. januar 2009 - 12:54 #7
i den kode du har lavet, har du alle dine @$_SESSION... linjer inde i din else, det skal de jo ikke, så derfor lukker jeg bare din if efter "exit" og derefter lukkes din foreach. når den så har kørt alle dine felter igennem i din foreach, går den videre ned til dine @$_SESSION... linjer

velbekomme :)
Avatar billede tmi Nybegynder
25. januar 2009 - 13:29 #8
Jeg ville nok lave:
if (empty(trim($tjek))) - så man heller ikke bare kan indtaste mellemrum.

Og så lige en ekstra note, så går jeg ud fra at det følgende er informationer fra et kreditkort, der formentlig ikke er dit eget?

@$_SESSION['kortnummer'] = addslashes($_POST['kortnummer']);
@$_SESSION['umdr'] = addslashes($_POST['umdr']);
@$_SESSION['uaar'] = addslashes($_POST['uaar']);
@$_SESSION['cvc'] = addslashes($_POST['cvc']);

Derfor vil jeg gerne lige give dig den her advarsel for din egen skyld:

First of all we highly recommend that no card data is stored locally in any database or temporary memory. If that is not an option, then you have to take a closer look at the PCI security standards council. If you want to be able to handle cardholder data, your shop and server where your data is located has to pass a PCI certification. Read more about PCI on the following site: https://www.pcisecuritystandards.org/
Avatar billede hypofysen Nybegynder
25. januar 2009 - 19:16 #9
takker splazz, burde jeg have set :(

med hensyn til din kommentar tmi, så er det kun et forsøg der kører lokalt og ikke med rigtige kort oplysninger... Når jeg er færdig bliver det sat op med paypal og der bliver ingen kortoplysninger registreret i min database :)

kendte ikke trim funktionen så tak for komentaren :)
Avatar billede majbom Novice
25. januar 2009 - 19:36 #10
selv tak, og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester