PhP Email formulier niet gevuld check fail

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

11/12/2012 20:32:30
Quote Anchor link
Dit lijkt mij anders helemaal niet te kloppen...

if(!empty($_POST['naam']));
if(!empty($_POST['email']));
 
PHP hulp

PHP hulp

24/11/2024 10:51:32
 
Tim S

Tim S

11/12/2012 20:42:49
Quote Anchor link
Nee, je controleert nu alleen opmerking. De andere twee vallen buiten de boot om het zo maar even te zeggen
 
Henk Guuwis

Henk Guuwis

11/12/2012 21:06:31
Quote Anchor link
Zucht, inderdaad, k ben niet goed met IF statements. Hoe moet ik het script dan alle 3 de inputs laten checken ivp alleen 1? (ik had het inderdaad getest door opmerking leeg te laten en ik dacht dus dat het werkte)
 
Ozzie PHP

Ozzie PHP

11/12/2012 21:21:48
Quote Anchor link
Zo moeilijk is dan niet hoor ;)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (!empty($_POST['opmerking']) && !empty($_POST['naam']) && !empty($_POST['email'])) {

}
else {

}

?>


&& betekent "en"
Gewijzigd op 11/12/2012 21:23:00 door Ozzie PHP
 
Dendeze ikke

dendeze ikke

11/12/2012 21:38:24
Quote Anchor link
Dan krijg je toch deze foutmelding Ozzie:
Undefined index
 
Ozzie PHP

Ozzie PHP

11/12/2012 21:52:03
Quote Anchor link
Afhankelijk of je foutmeldingen aanstaan ;)

Beter is het om isset te gebruiken ipv !empty().
 
Tim S

Tim S

11/12/2012 21:53:45
Quote Anchor link
ja en meestal staat er ook nog iets naast index.

Ik denk zelf dat je namen niet goed zijn naam of email.
 
Henk Guuwis

Henk Guuwis

11/12/2012 22:06:13
Quote Anchor link
Hoe bedoel je mijn namen niet goed? en ozzie, ik zou graag isset gebruiken maar het werkt dan niet, deze oplossing van tim werkt iniedergeval bij het checken van 1 ding, dus tenzij jij de oplossing weet, hou ik het denk ik zo ;) toch (alvast) bedankt voor je tijd!
 
Tim S

Tim S

11/12/2012 22:26:26
Quote Anchor link
Werkt nu alles? Controleer je nu alle velden dus ook namen of email?
Als dit alles werkt zou je !empty nog kunnen vervangen door isset of beide gebruiken,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($_POST['naam']) || $_POST['email'] || $_POST['opmerking'] && !empty($_POST['naam']) || $_POST['email'] || $_POST['opmerking']){
}

else{
}

?>
Gewijzigd op 11/12/2012 22:27:00 door Tim S
 
Henk Guuwis

Henk Guuwis

11/12/2012 22:42:15
Quote Anchor link
nope die werkt niet, dan post ie dus gewoon weer alles terwijl het leeg is, bij de vorige optie checkte hij tenminste nog 1 ;)
 
Tim S

Tim S

11/12/2012 23:09:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['naam']) && $_POST['email'] && $_POST['opmerking'] && !empty($_POST['naam']) && $_POST['email'] && $_POST['opmerking']){
echo 'gelukt';
}

else{
}
}

?>


Zelf getest dus moet werken die van net was een foutjes. Kan ook maar dan doe je dit:
if(isset($_POST['naam']) || isset($_POST['email']) etc.
Maar && is minder schrijfwerk.
Gewijzigd op 11/12/2012 23:09:45 door Tim S
 
Reshad F

Reshad F

11/12/2012 23:18:09
Quote Anchor link
@Tim ik denk dat je zelf ook wat php tutorials mag doornemen aangezien empty niet geschikt is hier.. althans niet voor iedereen nog.. en het verschil tussen || en && mag je ook wel even opzoeken..

empty kan pas na php 5.4 ( wat niet iedereen nog heeft ) gebruikt worden zoals jullie het nu doen. in php 5.3 zou je onterecht een false waarde krijgen bij sommige dingen waar je geen false wilt krijgen.

om het correct te doen zou ik de volgende manier hanteren om te zorgen dat je altijd goed zit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

// Maak een array voor de foutmeldingen.
$errors = Array();

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    // Controleer of het formulier is verzonden.

    if( !isset($_POST['naam']) || $_POST['naam'] == '' ) {
        $errors[] = 'vul een naam in...'; // Naamveld is niet correct
    }

    if( !isset($_POST['achternaam']) || $_POST['achternaam'] == '' ) {
        $errors[] = 'vul een achternaam in...'
    }
}


?>


om te kijken of je formulier nu goed is ingvuld of niet kan je het volgende doen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if( count($errors) == 0 ) {
 // doe je ding hier want je hebt geen errors
}
?>


en als je wel foutmeldingen hebt... stuur je deze netjes door naar je html gedeelte. ( wel in een UL natuurlijk want het blijft een lijst )

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
    <?php if( count($errors) > 0 ) : ?>
            <ul>
            <?php foreach( $errors as $error ) : ?>
                <li><?php echo $error; ?></li>
            <?php endforeach; ?>
            </ul>
    <?php endif; ?>
Gewijzigd op 11/12/2012 23:21:11 door Reshad F
 
Henk Guuwis

Henk Guuwis

11/12/2012 23:49:08
Quote Anchor link
Toch moet ik Tim heel erg bedanken Reshad, want hij werkt nu wel goed, volledig getest! Ik moet er wel ff bij zeggen dat ik geluk heb dat mijn webhoster PHP 5.5 al gebruikt, daar zijn zij ook erg trots op. (sohosted) Toch zal ik deze pagina ff in mijn bladwijzers zetten en nog een keer doornemen als het niet zo laat is, zodat ik nog wat kan leren. Echt super bedankt allemaal! Ik vind dit echt een tof forum.
 
Ozzie PHP

Ozzie PHP

12/12/2012 00:38:52
Quote Anchor link
Dat is grappig want we zijn pas bij versie 5.4.

Toch zou ik de code van Tim ook nog even nakijken want die is ook niet geheel correct.

Probeer dit eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
  if(isset($_POST['naam'], $_POST['email'], $_POST['opmerking'])) {
    echo 'gelukt';
  }
else {
    echo 'sommige velden ontbreken';
  }
}

?>
 
Tim S

Tim S

12/12/2012 00:41:22
Quote Anchor link
Quote:
empty kan pas na php 5.4 ( wat niet iedereen nog heeft ) gebruikt worden zoals jullie het nu doen. in php 5.3 zou je onterecht een false waarde krijgen bij sommige dingen waar je geen false wilt krijgen.


Lijkt me sterk heb een tijd geleden deze tutorial gevolgd van 7 jaar terug:

http://www.phphulp.nl/php/script/php-algemeen/simpel-cms-dmv-tinymce/885/simpelcmsdmvtinymce/662/

Het verschil tussen && en || weet ik niet precies het voorbeeld met && werkt prima
|| wordt ook gebruikt in de tutorial die henk heeft gevolgd.

Toevoeging op 12/12/2012 00:42:40:

Hoe worden trouwens || genoemd?
 
Ozzie PHP

Ozzie PHP

12/12/2012 00:44:02
Quote Anchor link
Het verschil tussen && en || is simpel, maar wel zeer cruciaal. Je moet dus niet zomaar iets "gokken".

De 1e betekent EN, de 2e betekent OF.
 
Henk Guuwis

Henk Guuwis

12/12/2012 00:47:16
Quote Anchor link
Ha nee ik moet nog veel leren, ik gebruikte voor 'en' in het begin maar 1 & maar zeker leerzaam, maar ik had me verkeken, het was idd 5.4 :P
 
Tim S

Tim S

12/12/2012 00:52:04
Quote Anchor link
Ah ik gebruik eigenlijk altijd &&.
 
Ozzie PHP

Ozzie PHP

12/12/2012 00:53:19
Quote Anchor link
Voor jullie beiden valt er nog het nodige te leren ;-)

Henk, gebruik mijn code dan komt het goed.
 
Tim S

Tim S

12/12/2012 01:36:07
Quote Anchor link
In jou voorbeeld heb je if(isset($_POST['naam']) && isset($_POST['email']))
In mijn voorbeeld heb ik if(isset($_POST['naam']) && $_POST['email']). Deze code werkt ook gewoon maar het kan zijn dat ik het mis heb...
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.