Toon posts:

[php] beginner, ik zie de fout niet

Pagina: 1
Acties:
  • 83 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zit php te leren (ben nog maar een beginner) en waneer ik de onderstaande bron open in explorer krijg ik een error wanneer ik de velden ingevuld heb en op verzenden druk. Deze om precies te zijn.
Forbidden
You don't have permission to access /<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>c:/program files/easyphp1-7/www/home.php</b> on line <b>7</b><br /> on this server.

Apache/1.3.27 Server at localhost <mailto:admin@localhost> Port 80
Dit is mijn bronbestand.

code:
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
<html>
<head>
<title>puch</title>
</head>
<body>
<p><h1>Gegevens</h1><p>
<form action="<?php echo $PHP_SELF; ?>" method="post">
Aanspreekvorm <input type="radio" name="titel" value="m"> 
Mijnheer 
<input type="radio" name="titel" value="w"> Mevrouw<br><br>
Uw naam:<input type="text" name="naam"><br><br>
<input type="submit" name="versturen" value="Versturen">
</form>
<hr> <br>
<?php
    if (isset($_POST["titel"]) && isset($_POST["naam"]) && 
    $_POST["naam"]!="") { 
        if ($_POST["titel"]=="s") {
        echo " Je hebt een scooter ";
        }
        else {
        echo "Je hebt een brommer ";
        }
        echo "<strong>" . $_POST["naam"] . "<strong> , leuk 
        dat u er bent!\n";
    } 
    else { 
        if (isset($_POST["versturen"])) {
        echo "Vul alle velden in a.u.b.\
n<br>";
    }
    }
?>
</body>
</html>


Ik heb easyphp om een php site te hosten op mijn eigen pc zegmaar. De fout zit hem blijkbaar in PHP_SELF maar wat is daar verkeerd?

[ Voor 49% gewijzigd door Verwijderd op 12-02-2005 14:18 ]


  • mrClass
  • Registratie: April 2002
  • Laatst online: 17-04-2025
Je kan dit er eigenlijk wel uithalen (Tis niet heel netjes maar werkt wel)
code:
1
action="<?php echo $PHP_SELF; ?>"

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-05 22:46

Janoz

Moderator Devschuur®

!litemod

Kijk eens naar de source van de gegenereerde html. Hierin is een foutmelding gegenereerd die je door de manier waarop deze html wordt afgedrukt niet op de webpagina ziet.

Daarnaast zou ik eens in de php manual kijken naar PHP_SELF en wat voor opmerkingen hierbij staan ($_SERVER is ook wel een goede zoekterm voor in de manual)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
dat PHP_SELF heb ik uit een boekje van mn informatica leraar, php in 10 minuten o.i.d. Ik wil onder die streep de naam en geslacht van de gebruiker krijgen.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zaterdag 12 februari 2005 @ 14:23:
dat PHP_SELF heb ik uit een boekje van mn informatica leraar, php in 10 minuten o.i.d. Ik wil onder die streep de naam en geslacht van de gebruiker krijgen.
Gooi dat boekje weg en haal een nieuwer bij de bibliotheek, je bent achterhaald kost aan het doorspitten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
hm hij ziet er nog heel nieuw uit :P Maar ziet niemand wat ik fout doe?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zaterdag 12 februari 2005 @ 14:50:
hm hij ziet er nog heel nieuw uit :P Maar ziet niemand wat ik fout doe?
Jawel.

[norml][/]

[norml][/]

[norml][/]

Oh, ik moet het ook zeggen? :P Probeer eens $_SERVER['PHP_SELF'] te gebruiken in plaats van $PHP_SELF, waar Janoz hierboven ook op doelt. :)

[ Voor 4% gewijzigd door NMe op 12-02-2005 14:54 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
ja, sorry zo begreep ik dat nie :) Maarre: HET WERKT _/-\o_ Alleen waarom werkt het niet zoals het boekje het zegt?

  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Sinds PHP 4.3 (ofzo) staat register_globals standaard uit.

Register_globals zorgt ervoor dat je variabelen als $_POST[ 'bla' ], $_SERVER[ 'bla' ], $_GET[ 'bla' ] ook met $bla kunt benaderen, maar zorgt ook voor (mogelijke) beveiligingslekken. Vandaar dat dit tegenwoordig uit staat.

Maar dit kun je vast ook allemaal vinden op php.net :)

Verwijderd

Topicstarter
php_self bestond niet op php.net iig mar goed. Hij werkt.

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 13-05 10:16

Zoefff

❤ 

Wellicht ten overvloede http://nl3.php.net/globals en http://nl3.php.net/manual...reserved.variables.server (PHP_SELF) :)

[ Voor 47% gewijzigd door Zoefff op 12-02-2005 15:11 ]


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op zaterdag 12 februari 2005 @ 15:08:
php_self bestond niet op php.net iig mar goed. Hij werkt.
Hier wel, maar het is niet echt handig vindbaar ofzo.

En nog te laat ook :/

[ Voor 4% gewijzigd door ACM op 12-02-2005 15:15 ]


Verwijderd

Topicstarter
code:
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
<html>
<head>
<title>Website</title>
</head>

<body>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method=post>
Naam: 
<br><br><input type="text" name="naam">
<br><br>
E-mail adres: 
<br><br><input type="text" name="mail">
<br><br>
Bericht:
<br><br>
<textarea name="bericht" name="bericht"></textarea>
<br><br>
<input type="submit" name="verzenden" value="verzenden">
<br><br><hr>

<?php

if (isset($_POST["naam"]) && $_POST["naam"]!="") && isset($_POST["mail"]) 
    && $_POST["mail"]!="") && isset($_POST["bericht"]) && $_POST["bericht"]!="") 

    {

        echo "<b>" . $_POST["naam"] . " (" . $_POST["mail"] . ")</b>\n";


    }

        echo "<br><br>Schreef:\n";

    {

        echo "<b><br><br>" . $_POST["bericht"] . "</b>\n";

    }

else { 
        if (isset($_POST["verzenden"])) {
        echo "Vul alle velden in a.u.b.\n<br>";

}

}


?>

</body>

</html>


de fout zit hem ergens mij isset, kan iemand mij vertellen wat? in de ts moest zo'n textvakje zo:
isset($_POST["mail"]) && $_POST["mail"]!="")

gecontroleerd worden dus ik heb dat maar 3x gedaan bij de drie vakken...

[ Voor 33% gewijzigd door Verwijderd op 20-02-2005 14:53 ]


  • WormLord
  • Registratie: September 2003
  • Laatst online: 30-03 16:26

WormLord

Devver

In je if-clause heb je 4 keer een ( en 6 keer een ). Wat denk je zelf wat er dan fout zal zijn?

Verwijderd

Topicstarter
if (isset($_POST["naam"]) && isset($_POST["mail"]) && isset($_POST["bericht"])
&& $_POST["naam"]!="" && $_POST["mail"]!="" && $_POST["bericht"]!="")

heb ik ervan gemaakt, nu geeft hij een fout bij else in regel 42 (Parse error: parse error, unexpected T_ELSE in c:\program files\easyphp1-7\www\site.php on line 42) dus dit stuk:

code:
1
2
3
4
5
6
else    { 

        if (isset($_POST["verzenden"])) {
        echo "Vul alle velden in a.u.b."\n";

}

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Gebruik eens wat meer haakjes. (Volgens mij heeft && precedence over !=, maar dat weet ik niet zeker; liever teveel haakjes dan te weinig.) Ook kun je beter de empty-functie gebruiken, die is speciaal gemaakt om te kijken of een string leeg is.

Wat voor fout krijg je nu eigenlijk? :?

Edit: wat betreft die laatste parse error: een accolade te weinig boven die else of een puntkomma vergeten.

[ Voor 16% gewijzigd door NMe op 20-02-2005 15:10 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 09:48

Creepy

Tactical Espionage Splatterer

Ok. We verwachten hier op GoT dat je dit soort errors zelf kunt op lossen. Dat je een beginner bent geeft echt niet maar als we al moeten gaan helpen met fouten oplossen als je ergens een {, } of ; bent vergeten dan gaat dat echt te ver.

Tip: gebruik een editor met syntax highlighting. Dan zie je dit soort fouten veel eerder.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.