[php] hulp bij if functie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
Ik ben een mail formpje aan het maken, en daarbij wil ik dus ook dat als je niks invult dat je dan een melding krijgt dat je niks hebt ingevuld en dat je terug moet om wat in te vullen.

nu heb ik dus dit gemaakt:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
 if ($naam =="") {
    echo"U heeft uw naam niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul uw naam in.";

 } else {

    $naam="Naam: $naam\n";
 }
?>

Dit werkte wel, alleen ging hij hem wel als nog versturen met een leeg veld, en dat moet niet.
Hoe zorg ik er voor dat ie het script ook stopt als er iets is in gevuld?

Acties:
  • 0 Henk 'm!

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 26-06 17:23
Je zou exit kunnen toevoegen op de plaats waar je wil dat het script stopt, maar je kunt ook je if en else iets anders plaatsen, zodat het mailgedeelte alleen uitgevoerd wordt als aan alle voorwaarden voldaan is.
Overigens: wat gebeurt er nu als ik een spatie als naam opgeef? (hint: trim)

Acties:
  • 0 Henk 'm!

  • KlaasB
  • Registratie: Juli 2000
  • Laatst online: 01-07-2024
Waar roep je de mail() functie aan? Toch wel na de else?
dus:
PHP:
1
2
3
4
5
6
7
8
<?
 if (empty($naam)) {
 echo "Je moet je naam nog invullen":
 } else {
  mail(.........);
  echo "Mail van $naam is verstuurd";
 }
?>

It's not a bug, it's a feature


Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
Antwoord op KlaasB ik roep de mail() niet na de else aan, zo dus.
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
46
47
48
49
50
51
52
53
54
55
<?
 if ($naam =="") {
    echo"U heeft uw naam niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul uw naam in.";

 } else {

    $naam="Naam: $naam\n";
 }


 if ($bedrijf == "") {

    echo"U heeft uw bedrijfsnaam niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul uw bedrijfsnaam in.";

 } else {

    $bedrijf="Bedrijfsnaam: $bedrijf\n";
 }

 if ($email == "") {

    echo"U heeft uw emailadres niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul uw emailadres in.";
    
 } else {

   $email="Email: $email\n";
 }

 if ($telefoonnummer == "") {
    echo"U heeft uw telefoonnummer niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul uw telefoonnummer in.";
 
 } else {

   $telefoonnummer="Telefoonnummer: $telefoonnummer\n";
 
 }

 if ($onderwerp == "") {

    echo"U heeft het onderwerp van de mail niet ingevuld, klik op de terug knop van uw browser
    om terug te gaan naar de vorige pagina en vul het onderwerp van de mail in.";

 } else {

   $onderwerp="Onderwerp: $onderwerp\n";

 }

   mail("***@hotmail.com", "***.net mailform", " $onderwerp $naam $bedrijf $email $telefoonnummer");
   echo("Uw email is verstuurd, u krijgt zo snel mogelijk antwoord.");
?>

en bedankt jelle!
Ik ga er gelijk mee aan de gang :)

Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
die exit functie werkt perfect bedankt! :)
Alleen die trim functie snap ik niet helemaal ben ik bang.
PHP:
1
2
3
4
5
6
7
<?
trim($naam);
trim($bedrijf);
trim($email);
trim($telefoonnummer);
trim($onderwerp);
?>

dat heb ik nu helemaal boven aan het script gezet. Dus ook boven het stuk waar die gaat tjekken of er iets is ingevuld.

Maar dat werkt niet geloof ik want als ik nu 1 spatie in vul dan zegt hij gewoon nog dat er iets is ingevuld :?

Acties:
  • 0 Henk 'm!

  • MaxxMark
  • Registratie: Januari 2000
  • Laatst online: 30-06 20:06

MaxxMark

HT is Tof!

iets wat niet echt met je vraag temaken heeft, maar wat ik altijd stug blijf gebruiken in mn php functies om vaagheden te voorkomen is het volgende:
PHP:
1
2
3
4
<?
if(!isset($naam) || $naam=="")
{....}
?>

Verder zou je gewoon gebruik moeten maken van de exit functie alsvolgt:
PHP:
1
2
3
4
5
6
7
8
9
<?
if(!isset($naam) || $naam=="")
{ 
    print "bla"; 
    exit();
}else {
 print " je naam is $naam";
}
?>

T: @mark_prins - Kick ass developers: www.omniscale.nl - HT: Where it all went wrong...


Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
Op zaterdag 08 december 2001 10:42 schreef MaxxMark het volgende:
iets wat niet echt met je vraag temaken heeft, maar wat ik altijd stug blijf gebruiken in mn php functies om vaagheden te voorkomen is het volgende:
PHP:
1
2
3
4
<?
if(!isset($naam) || $naam=="")
{....}
?>
misschien een beetje stomme vraag maar, waar dient dat precies voor??
wat doet het??

Acties:
  • 0 Henk 'm!

  • Predator
  • Registratie: Januari 2001
  • Laatst online: 13:23

Predator

Suffers from split brain

Op zaterdag 08 december 2001 10:43 schreef 5n1gg3lb1t het volgende:

[..]

misschien een beetje stomme vraag maar, waar dient dat precies voor??
wat doet het??
isset geeft true als de var naam bestaat
"" is om lege string te detecteren

Everybody lies | BFD rocks ! | PC-specs


Acties:
  • 0 Henk 'm!

  • MaxxMark
  • Registratie: Januari 2000
  • Laatst online: 30-06 20:06

MaxxMark

HT is Tof!

Op zaterdag 08 december 2001 10:43 schreef 5n1gg3lb1t het volgende:

[..]

misschien een beetje stomme vraag maar, waar dient dat precies voor??
wat doet het??
Het checked of de variable een uberhaupt bestaat, zoniet hoeft ie ook niet te checken of er wat in zit..

Dit wil nog wel eens problemen geven bij sommige php files.. Ik Zeg niet dat et altijd gebeurt... maar soms :)

T: @mark_prins - Kick ass developers: www.omniscale.nl - HT: Where it all went wrong...


Acties:
  • 0 Henk 'm!

  • tweakerbee
  • Registratie: Maart 2000
  • Laatst online: 26-06 18:20

tweakerbee

dus..?

isset();

Deze functie kijkt of een variabele echt aanwezig is.

You can't have everything. Where would you put it?


Acties:
  • 0 Henk 'm!

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 30-06 13:35
Even ter verduidelijking, if is geen functie, maar een statement ;).

zeroxcool.net - curity.eu


Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
Op zaterdag 08 december 2001 10:50 schreef ZeRoXcOoL het volgende:
Even ter verduidelijking, if is geen functie, maar een statement ;).
weer wat geleerd :)
Ik heb op deze zaterdag ochtend weer redelijk wat geleerd :)

Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 30-06 19:53
PHP:
1
2
3
4
5
6
<?
if (!$naam)
{
blaat
}
?>

is toch beter?

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Voor dat trimmen moet je ook die variabele er ff voor zetten.
PHP:
1
2
3
<?
$naam = trim($naam);
?>

Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 21-06 17:10
Waarom los je dit soort "checks" niet clientside op met wat JavaScript. Bied ook nog eens een veel betere response dan PHP, omdat er niets naar de server verstuurd hoeft te worden ter controle.

Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
Op zaterdag 08 december 2001 11:24 schreef MarcKonings het volgende:
Waarom los je dit soort "checks" niet clientside op met wat JavaScript. Bied ook nog eens een veel betere response dan PHP, omdat er niets naar de server verstuurd hoeft te worden ter controle.
omdat ik van javascript nog minder weet dan php :P

Acties:
  • 0 Henk 'm!

Anoniem: 8622

Topicstarter
het werkt nu wel allemaal prima trouwens ! :)

Bedankt allemaal! :) :)

Acties:
  • 0 Henk 'm!

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 26-06 17:23
Op zaterdag 08 december 2001 11:24 schreef MarcKonings het volgende:
Waarom los je dit soort "checks" niet clientside op met wat JavaScript. Bied ook nog eens een veel betere response dan PHP, omdat er niets naar de server verstuurd hoeft te worden ter controle.
En omdat je dan voorkomt dat iemand z'n Javascript uitzet of je formulier overneemt zonder de Javascript controle en zo gaat klooien. In ieder geval zou ik nooit vertrouwen op alleen een Javascript check; dan altijd nadat het formulier 'goedgekeurd' is door het Javascriptje de waarden nogmaals serverside controleren.

Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 21-06 17:10
Op zaterdag 08 december 2001 11:42 schreef Jelle Niemantsverdriet het volgende:

[..]

En omdat je dan voorkomt dat iemand z'n Javascript uitzet of je formulier overneemt zonder de Javascript controle en zo gaat klooien. In ieder geval zou ik nooit vertrouwen op alleen een Javascript check; dan altijd nadat het formulier 'goedgekeurd' is door het Javascriptje de waarden nogmaals serverside controleren.
Ik heb ook niet gezegd dat de serverside checks moeten vervallen. Maar JavaScript aan de clientside is gewoon veel sneller (vanuit de gebruiker gezien) voor de afhandeling van deze controles. Daarnaast moet je natuurlijk altijd ook nog op de server controles uitvoeren om de integriteit van je gegevens te bewaken.
Pagina: 1