Waarom zie ik de eerste "echo" vanwege leeg veld niet?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- SanThe -

- SanThe -

18/06/2015 19:14:22
Quote Anchor link
Zoals Ward al aangaf: Zet de errors aan.
 
PHP hulp

PHP hulp

01/05/2024 07:59:09
 
Thomas van den Heuvel

Thomas van den Heuvel

18/06/2015 19:35:15
Quote Anchor link
- Aar - op 18/06/2015 17:56:49:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="voornaam" value="<?php if (isset($_POST['voornaam'])) { echo $_POST['voornaam']; } ?> />

AYYY.
 
- Ariën  -
Beheerder

- Ariën -

18/06/2015 19:46:10
Quote Anchor link
Thomas van den Heuvel op 18/06/2015 19:35:15:
- Aar - op 18/06/2015 17:56:49:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="voornaam" value="<?php if (isset($_POST['voornaam'])) { echo $_POST['voornaam']; } ?> />

AYYY.

Ai?
Gewijzigd op 18/06/2015 19:46:28 door - Ariën -
 
Ramon van Dongen

Ramon van Dongen

18/06/2015 19:54:31
Quote Anchor link
Thomas bedoelt:

"AYYY en geen "AYYY"
 
Thomas van den Heuvel

Thomas van den Heuvel

18/06/2015 20:22:13
Quote Anchor link
- geen sluitingsquote voor value="..."
- je escaped $_POST['voornaam'] niet

:*(
 
Johan Derks

Johan Derks

19/06/2015 15:18:14
Quote Anchor link
Ik heb van alles geprobeerd, maar kan de foutmeldingen nog steeds niet produceren.
Als ik het volgende script gebruik (ik vermeld steeds maar twee variabelen):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php if (isset($_POST['submit'])) {
    foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
    $voornaam = $_POST['voornaam'];
    $achternaam    = $_POST['achternaam'];
    if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
    if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
}
else {
    $voornaam = $achternaam = "";
}

?>

komt er, als het aanmeldformulier voor het eerst verschijnt: "Notice: Undefined variable: voornaamFt", vanwege
<input type="text" name="voornaam" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $voornaam;?>
" size="30"/>
<span class="error">*
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $voornaamFt;?>
</span>
in het formulier. Idem voor achternaamFt.
Als ik het script uitbreid met twee regels om de foutmeldingen op leeg te zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php if (isset($_POST['submit'])) {
    foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
    $voornaam = $_POST['voornaam'];
    $achternaam    = $_POST['achternaam'];
    if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
    if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
}
else {
    $voornaamFt = $achternaamFt = "";
$voornaam = $achternaam = "";
}

?>

verschijnt het aanmeldformulier zonder Notice, maar als ik het dan leeg verzend, komt er geen echo van voornaamFt en achternaamFt.
Gewijzigd op 19/06/2015 15:20:12 door Johan Derks
 
- SanThe -

- SanThe -

19/06/2015 15:23:36
Quote Anchor link
De kans dat $voornaamFt bestaat is klein.
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
<?php // $voornaamFt bestaat NIET
    if (isset($_POST['submit'])) {
    foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
    $voornaam = $_POST['voornaam'];
    $achternaam    = $_POST['achternaam'];
    // $voornaamFt bestaat NIET
    if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
else // $voornaamFt bestaat NIET
    if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
}
else {
    // $achternaamFt bestaat NIET
    $voornaam = $achternaam = "";
}

?>


Simpele oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php $voornaamFt = '';
      $achternaamFt = '';
    if (isset($_POST['submit'])) {
    foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
    $voornaam = $_POST['voornaam'];
    $achternaam    = $_POST['achternaam'];
    if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
    if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
}
else {
    $voornaam = $achternaam = "";
}

?>
Gewijzigd op 19/06/2015 15:28:03 door - SanThe -
 
Johan Derks

Johan Derks

19/06/2015 15:28:12
Quote Anchor link
Ik bedenk nu, dat het gedeelte
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php    $voornaamFt = $achternaamFt = "";  
    if ($voornaam == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
    if ($achternaam == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
?>

, weliswaar met de voorwaarde if "(isset($_POST['submit']))", voor het formulier staat en dat het misschien pas "gefired" moet worden bij "submit".
Gewijzigd op 19/06/2015 15:29:32 door Johan Derks
 
- SanThe -

- SanThe -

19/06/2015 15:30:35
Quote Anchor link
Zie ook mijn aanvulling vorige post.
 
Johan Derks

Johan Derks

19/06/2015 15:37:10
Quote Anchor link
Jouw opmerking, SanThe kruiste de mijne. Zoals je waarschijnlijk begrijpt, zijn de foutmeldingen vooraf op nul gesteld.

Toevoeging op 19/06/2015 15:40:52:

Ik heb error_reporting(E_ALL | E_STRICT); aan staan.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/06/2015 16:02:51
Quote Anchor link
Als je nou eens start met het eruitslopen van het kopiëren van variabelen ($whatever = $_POST['whatever']) dan:

- maak je je probleemgebied al een stuk kleiner
- wordt je code een stuk beter leesbaar
- zie je direct waar de waarde van een variabele vandaan zou moeten komen
Gewijzigd op 19/06/2015 16:03:47 door Thomas van den Heuvel
 
Johan Derks

Johan Derks

19/06/2015 16:47:55
Quote Anchor link
Hier volgt een gestripte versie van mijn script, met excuses aan Aar, dat ik haar opmerking over code niet
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
20
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
$headers  = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
$foutloos = "";
if (isset($_POST['submit'])) {
    foreach ($_POST as $key => $value) {$inhoud .= "$key: $value\n";}; print $inhoud;
    $voornaamFt = $achternaamFt = $adresFt = $plaatsFt = $postcodeFt = "";  
    $landFt = $telFt = $netadresFt = $aanhefFt1 = $aanhefFt2 = "";
    if ($_POST['voornaam'] == "") {$voornaamFt = "Vi ne plenigis vian personan nomon!";};
    if ($_POST['achternaam'] == "") {$achternaamFt = "Vi ne plenigis vian familian nomon!";};
    $foutloos = $voornaamFt.$achternaamFt.$adresFt.$plaatsFt.$postcodeFt.$landFt.$telFt.$netadresFt.$aanhefFt1.$aanhefFt2;
}
else {
    $voornaamFt = $achternaamFt = $adresFt = $plaatsFt = $postcodeFt = "";  
    $landFt = $telFt = $netadresFt = $aanhefFt1 = $aanhefFt2 = "";
    $_POST['voornaam'] = $_POST['achternaam'] = $_POST['volgorde'] = $_POST['aanhef'] = $_POST['aanhef1'] = $_POST['poralia'] = $_POST['adres'] = $_POST['adres1'] = "";
    $_POST['plaats'] = $_POST['plaats1'] = $_POST['postcode'] = $_POST['land'] = $_POST['huistel'] = $_POST['zaktel']    = $_POST['netadres'] = "";
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<meta name="author" content="Unregistered User"/>
<meta name="generator" content="AceHTML Freeware"/>

<style type="text/css">
.error {color: #FF0000;}
</style>

</head>

<body>
<form name="personalia" method="post" action="completer.php">
<table border="1" width="60%">
<tr>
<td width="35%">Persona nomo<br/><font size="2">a&#365; nur &#285;ia unua litero:</font></td>
<td><input type="text" name="voornaam" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['voornaam'];?>
" size="30"/>
<span class="error">*
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $voornaamFt;?>
</span></td>
</tr>
<tr>
<td>Familia nomo: </td>
<td><input type="text" name="achternaam" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['achternaam'];?>
" size="30"/>
<span class="error">*
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $achternaamFt;?>
</span></td>
</tr>
</table>
<p></p>
<input type="reset" value="Rekomencigu" />&nbsp;&nbsp;&nbsp;<input type="submit" value="Sendu" />
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (isset($_POST['submit'])) {
    if ($foutloos == "") {
        if ($_POST['volgorde'] == "0") {
            $naam = $_POST['voornaam']." ".$_POST['achternaam'];
        }
else {
            $naam = $_POST['achternaam']." ".$_POST['voornaam'];
        };
    };
}

?>


<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="hosted_button_id" value="MPASZA2MRSZDW"/>
<input type="image" src="https://www.paypalobjects.com/nl_NL/NL/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal, la sekura kaj kompleta maniero por pagi enrete."/>
</form>

</body>
</html>
Gewijzigd op 21/06/2015 13:04:42 door Johan Derks
 
- SanThe -

- SanThe -

19/06/2015 16:57:59
Quote Anchor link
Je hebt twee formulieren.
Het eerste form gaat naar jouw site.
De tweede gaat naar paypal.

Jij hebt:
if (isset($_POST['submit'])) {

En $_POST['submit'] bestaat alleen als het tweede formulier is gepost.
Gewijzigd op 19/06/2015 17:00:49 door - SanThe -
 
Johan Derks

Johan Derks

19/06/2015 21:17:37
Quote Anchor link
Dan zijn er twee oplossingen: Ik moet de twee formulieren integreren -
Ik weet niet, of het door PayPal geleverde formulier dat toestaat -
of er moet een methode zijn om de twee formulieren apart af te handelen.
Gewijzigd op 19/06/2015 21:17:54 door Johan Derks
 
- SanThe -

- SanThe -

19/06/2015 21:26:43
Quote Anchor link
Geef gewoon je eerste submit ook een name="...".
 
Johan Derks

Johan Derks

20/06/2015 16:55:27
Quote Anchor link
Wat is 'gewoon'. Ik heb beide formulieren een naam gegeven en dan het eerste formulier, leeg, opgestuurd. Er verschijnt geen foutmelding.
Hier de formulierelementen waarom het gaat:

<form name="personalia" method="post" action="completer.php"">
<input type="submit" onclick="document.forms['personalia'].submit();" value="La donita&#309;oj estas &#285;ustaj. Sendu ilin."/>

<form action="……" method="post" target="_top" name="betaal">
<input type="image" src="………" border="0" name="submit" onclick="document.forms['betaal'].submit()"/>


Toevoeging op 20/06/2015 21:11:58:

De inputknop voor 'submit' had zelf niet de naam 'submit' en werd dus niet door het php-script herkend en doorgegeven aan het HTML-formulier! Ik werk de zaak nu bij en vermoed, dat alles nu in orde is.
Iedereen bedankt!

Toevoeging op 21/06/2015 12:59:39:

Een laatste - hoop ik - probleempje kan ik nog niet oplossen.
Ik heb een textarea in het invulformulier en wil dat met de ingevulde tekst reproduceren, als - vanwege andere fout ingevulde velden het formulier bij de gebruiker terugkomt. Daarvoor heb ik gebruikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<textarea name="poralia" value="<?php echo $_POST['poralia'];?>" cols="30" rows="5" wrap="hard"></textarea>

De variabele $_POST['poralia'] is wel ontvangen door het formulier, maar de textarea blijft leeg.

Toevoeging op 21/06/2015 13:43:54:

Een verbetering is de code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<textarea name="poralia" cols="30" rows="5" wrap="hard">
        <?php (isset($_POST['poralia'])? $_POST['poralia']: '') ?></textarea>
,
maar het werkt nog niet.

Toevoeging op 21/06/2015 13:50:15:

Maar nu is het opgelost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<textarea name="poralia" cols="30" rows="5" wrap="hard">
        <?php echo $var = isset($_POST['poralia']) ? $_POST['poralia'] : ''; ?>
        </textarea>
Gewijzigd op 21/06/2015 13:42:18 door Johan Derks
 

Pagina: « vorige 1 2



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.