Vraag over 'echo'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Bart Matsko

Bart Matsko

04/04/2014 14:02:13
Quote Anchor link
Ik probeer een simpel login forum te maken en het werkt perfect. Alleen staat er altijd al 'Code fout' en dat moet er alleen komen als hij ook echt fout is. Niet als je nog niks hebt ingevoerd.

Hoe moet dit?

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
if($_POST["wachtwoord"] != "1111") {
    echo "<h1>Code fout!</h1>";
}

else {
?>


<h1>Code geaccepteerd!</h1>
<meta http-equiv="refresh" content="1;url=content" />

<?php
}
?>

    
Gewijzigd op 04/04/2014 14:02:50 door Bart Matsko
 
PHP hulp

PHP hulp

23/06/2024 06:41:50
 
Michael -

Michael -

04/04/2014 14:05:32
Quote Anchor link
Sowieso al omdat je niet controleert of er gepost is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] != "1111") {
        echo "<h1>Code fout!</h1>";
    }
}

?>

Ik neem aan dat h1 als test is? Je gebruikt geen heading om een foutmelding weer te geven, maar waar z'n naam zegt dat ie voor bedoelt is.
Gewijzigd op 04/04/2014 14:07:02 door Michael -
 
- Ariën  -
Beheerder

- Ariën -

04/04/2014 14:05:48
Quote Anchor link
Controleren of er ge-POST is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    if($_POST["wachtwoord"] != "1111") {
            echo "<h1>Code fout!</h1>";
    }
else {
        echo '<h1>Code geaccepteerd!</h1>
        <meta http-equiv="refresh" content="1;url=content" />'
;
    }
}

?>
 
Bart Matsko

Bart Matsko

04/04/2014 14:13:38
Quote Anchor link
Ja die <h1> is gewoon als test.

Wat is het verschil tussen de twee code's die jullie geven of maakt het uiteindelijk niet uit?
 
- Ariën  -
Beheerder

- Ariën -

04/04/2014 14:16:14
Quote Anchor link
Bij Michael wordt er daadwerkelijk gekeken of $_POST["wachtwoord"] wel bestaat.
 
Michael -

Michael -

04/04/2014 14:22:29
Quote Anchor link
isset() voorkomt notices. Die van Aar heeft een else. Als je beide samenvoegt heb je de perfecte code ;) In dit geval zou de isset niet helemaal gepast zijn. Het volgende is beter.
Waarom een meta ipv header location, of nog beter, op de zelfde pagina?

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
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] == "1111")
    {

        echo '<h1>Code geaccepteerd!</h1>
        <meta http-equiv="refresh" content="1;url=content" />'
;
    }

    else
    {
        echo "<h1>Code fout!</h1>";
    }
}

?>
Gewijzigd op 04/04/2014 14:28:24 door Michael -
 
Bart Matsko

Bart Matsko

04/04/2014 23:59:15
Quote Anchor link
Michael - op 04/04/2014 14:22:29:
isset() voorkomt notices. Die van Aar heeft een else. Als je beide samenvoegt heb je de perfecte code ;) In dit geval zou de isset niet helemaal gepast zijn. Het volgende is beter.
Waarom een meta ipv header location, of nog beter, op de zelfde pagina?

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
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] == "1111")
    {

        echo '<h1>Code geaccepteerd!</h1>
        <meta http-equiv="refresh" content="1;url=content" />'
;
    }

    else
    {
        echo "<h1>Code fout!</h1>";
    }
}

?>


Wat is precies isset?
En ik gebruikte header location niet omdat ik het niet fixend kreeg. Ik heb op dit moment:

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
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] == "1111")
    {

        echo "<h1>Code geaccepteerd!</h1>
     <?php
header('Location: http://google.nl/');
?> "
;
    }

    else
    {
        echo "<h1>Code fout!</h1>";
    }
}

?>

    


De reden waarom ik het bestand niet in dit document zet is omdat het geen bestand is. Zoals ik al zei is dit een soort test voor mezelf en gaat het naar een map zonder index bestand.

Zo iets dus:

Afbeelding

Ik ben er nog niet achter of het ook mogelijk is om een bestand te maken waarmee je dit kan zien en zelf gewoon mooie pagina ervan kan maken. Tot nu toe ben ik daarover nog niets tegen gekomen op google dus dan maar zo dacht ik.

Gr
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 01:21:15
Quote Anchor link
over je laatste code, kijk eens naar de kleurtjes....

Waarom open je een PHP-tag midden in je echo? En waarom wil je nog iets echo'en als je toch iemand doorstuurt?

Wat isset() doet, dat is niets meer dan controleren of een variabele bestaat.
 
Bart Matsko

Bart Matsko

05/04/2014 08:52:58
Quote Anchor link
- Aar - op 05/04/2014 01:21:15:
over je laatste code, kijk eens naar de kleurtjes....

Waarom open je een PHP-tag midden in je echo? En waarom wil je nog iets echo'en als je toch iemand doorstuurt?

Wat isset() doet, dat is niets meer dan controleren of een variabele bestaat.


De kleurtjes heb ik sowieso nooit begrepen. Het is rood maar meer delen zijn rood die wel goed zijn dus dat betekend niet dag het fout is lijkt me.

En waarom ik een PHP tag open, omdat ik jet eerst zonder PHP geprobeerd had maar dat werkte ook niet. Ik smal niet hoe ik het anders moet doen?
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 08:55:26
Quote Anchor link
Je zit al in de PHP-modus, dus waarom open je dan opnieuw een PHP-tag?
Verder kan je gewoon header('Location: http://google.nl/'); gebruiken, alleen die echo is behoorlijk onnodig, en kan je dan weglaten. let erop dat er ook in het pad die het script volgt ook geen echo bovenaan staat.
Gewijzigd op 05/04/2014 08:55:50 door - Ariën -
 
Bart Matsko

Bart Matsko

05/04/2014 09:36:36
Quote Anchor link
Volgens mij bedoel jij dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] == "1111")
    {

     header('Location: http://google.nl/');
    }

    else
    {
        echo "<h1>Code fout!</h1>";
    }
}

?>


Maar als ik dan inlog komt deze foutcode:

Warning: Cannot modify header information - headers already sent by (output started at ******************************) in *********************** on line 44

Toevoeging op 05/04/2014 09:37:53:

En met echo erbij komt gewoon header('Location .................) als tekst te staan zegmaar.
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 10:19:25
Quote Anchor link
Er mag ook geen echo of andere HTML boven je header staan.
 
Bart Matsko

Bart Matsko

05/04/2014 10:22:51
Quote Anchor link
Dat staat er toch ook niet?
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 10:31:27
Quote Anchor link
Jammer dat je ook de bestandsnaam, en de regelnummer achter de dubbele punt, uit je error, weghaalt.

Daar vind je de bottleneck.
Gewijzigd op 05/04/2014 10:32:27 door - Ariën -
 
Bart Matsko

Bart Matsko

05/04/2014 10:33:11
Quote Anchor link
- Aar - op 05/04/2014 10:31:27:
Jammer dat je ook de bestandsnaam, en de regelnummer achter de dubbele punt, uit je error, weghaalt.


37 staat er.
Het gaat om de regel: 'Log in door hieronder uw gebruikersnaam of e-mailadres en wachtwoord in te vullen.'

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
21
22
23
24
25
            <div class="tekst">

                Log in door hieronder uw gebruikersnaam of e-mailadres en wachtwoord in te vullen.

                <form action="index" method="POST">

                    <input type="password" name="wachtwoord" value="Wachtwoord" onfocus="if(this.value == 'Wachtwoord') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Wachtwoord'; }" />

                    <input type="submit" name="inloggen" value="Inloggen" />

                </form>
</div>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    if(isset($_POST["wachtwoord"]) && $_POST["wachtwoord"] == "1111")
    {

     header('Location: http://google.nl/');
    }

    else
    {
        echo "<div class='top'> <i class='fa fa-exclamation-triangle'></i> Om deze pagina te bezoeken dient u eerst in te loggen. <div>";
    }
}

?>
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 10:45:05
Quote Anchor link
Er mag geen HTML boven staan.
 
Bart Matsko

Bart Matsko

05/04/2014 10:47:31
Quote Anchor link
- Aar - op 05/04/2014 10:45:05:
Er mag geen HTML boven staan.


Nee maar ik wil die tekst er wel hebben, hoe moet ik dat gaan oplossen dan?
Ik heb hem helemaal boven aangezet en dan geeft hij dezelfde foutcode alleen slaat het dan op de regel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 10:51:21
Quote Anchor link
Dat hele PHP blok boven je HTML plaatsen.
 
Bart Matsko

Bart Matsko

05/04/2014 10:52:29
Quote Anchor link
- Aar - op 05/04/2014 10:51:21:
Dat hele PHP blok boven je HTML plaatsen.


Ja dat is dus wat ik net heb gedaan. Maar dan krijg ik dezelfde foutcode alleen dan gaat het over de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php [/code] dus daar snap ik helemaal niks van.
Gewijzigd op 05/04/2014 10:55:08 door Bart Matsko
 
- Ariën  -
Beheerder

- Ariën -

05/04/2014 11:06:59
Quote Anchor link
Geef je hele error eens?
 
Bart Matsko

Bart Matsko

05/04/2014 11:14:31
Quote Anchor link
Warning: Cannot modify header information - headers already sent by (output started at /home/**********/domains/**********.nl/public_html/file/files/index.php:13) in /home/**********/domains/**********.nl/public_html/file/files/index.php on line 18



Afbeelding
Gewijzigd op 05/04/2014 11:19:13 door Bart Matsko
 

Pagina: 1 2 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.