[php] $_get geeft index fout

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

  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
Beste gotters

ik heb een mooi pakket geinstalleerd, USB Webserver - dit is een mooi pakket met
PHP 5, Apache 2 en MySQL..
op dit pakket heb ik een loginsysteem dat gegevens uit de database haalt in elkaar geflanst.

hij geeft alleen een error als ik de pagina laadt:
Notice: Undefined index: action2 in %location%\Root\aanmelden.php on line 9
%location% heb ik zelf verzonnen:P

ik kijk dus in die Line:

PHP:
1
2
3
if ($_GET['action2'] == 'signup') {

include("config.php");

De 'action2' wordt verwezen in:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
echo " <form action=action2=signup method=POST>
    <input type=hidden name=submit value=1>
    Username: <input type=text name=username maxlength=10>
    <p>
    Password: <input type=password name=password maxlength=15>
    <p>
    Email: <input type=text name=email>
    <br>
    Leeftijd: <input type=text name=leeftijd maxlength=2>
    <input type=submit value=Signup!>
    <input type=reset value=Clear>
    </form> ";[/td]


die staat onderaan die pagina. dus als de gebruiker niet ingelogd is Echo dan de Form om ze dat wel te laten doen...

- ik heb action2 al hernoemd (het was eerst action), omdat ik dacht dat dit misschien problemen kon geven met dubbele waarden ofzo..

- ik heb de register_globals aan gezet - misschien dat hij waarden niet kon laden oid.

- hij wérkt wel - hij geeft alleen die error

- ik heb hem niét op een andere server geprobeerd - ik heb liever een oplossing :+

als jullie de hele code willen zien dan post ik die later wel - misschien is het iets heel makkelijks wat ik fout heb gedaan

[ Voor 18% gewijzigd door sjongenelen op 13-04-2006 11:50 ]

you had me at EHLO


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22-02 00:22

Janoz

Moderator Devschuur®

!litemod

Dat stukje html is wel de meest brakke die ik ooit heb gezien. Probeer eens wat meer quotes om je attributen te gebruiken. Daarnaast kun je onderdelen die je niet door je gebruiker wilt laten invullen, maar wel met je formulier mee wilt zenden beter in een input met type="hidden" stoppen.

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


  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

Sja, ik weet niet wat deze regel voorstelt:

<form action=action2=signup method=POST>

Komt mij vreemd over...

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 16:51
wat is dit?
action=action2=signup
Je "action" in de form-tag moet naar een URL verwijzen waar je form wordt verwerkt. Daarnaast wil je dan waarschijnlijk nog een hidden input hebben waarin staat dat je "actie" een signup is.

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Gebruik daar de submit voor:
HTML:
1
<input type="submit" value="Signup!" name="action2">

[ Voor 47% gewijzigd door Michali op 13-04-2006 11:30 ]

Noushka's Magnificent Dream | Unity


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

de eerste keer dat je de pagina laad zijn er geen GET variablen, je url is gewoon index.php

hij checkt of action2 in de url voorkomt,maar dat is niet, je zou dus het volgende moeten doen:

code:
1
 if (isset($_GET['action2']) && $_GET['action2']=="signup")


:)

Going for adventure, lots of sun and a convertible! | GMT-8


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
Janoz schreef op donderdag 13 april 2006 @ 11:28:
Dat stukje html is wel de meest brakke die ik ooit heb gezien. Probeer eens wat meer quotes om je attributen te gebruiken. Daarnaast kun je onderdelen die je niet door je gebruiker wilt laten invullen, maar wel met je formulier mee wilt zenden beter in een input met type="hidden" stoppen.
:'( het is mn eerste script, ik vind het nog wel meevallen - ik heb nul ervaring met php of formulieren..
maar ik zoek alleen een oplossing voor het php gedeelte - de verstuurformulieren zijn bijzaak -
het gaat om het php gedeelte :+

you had me at EHLO


  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

OnTracK schreef op donderdag 13 april 2006 @ 11:29:
wat is dit?
[...]


Je "action" in de form-tag moet naar een URL verwijzen waar je form wordt verwerkt. Daarnaast wil je dan waarschijnlijk nog een hidden input hebben waarin staat dat je "actie" een signup is.
Juist, dat lijkt me logischer.

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 13:22

Cyphax

Moderator LNX
Sowieso staat er als method post in het form en vervolgens probeer je die variabelen uit get te halen. Die komen niet in $_GET terecht maar in $_POST.

Saved by the buoyancy of citrus


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22-02 20:26
Om het weer even over die "error" te hebben. Het is geen error, wat dat staat er niet! Het is een notice, zeg maar waarschuwing. Waarom dan? Omdat je op regel 9, "if ($_GET['action2'] == 'signup') {", een index in de get-array probeert te benaderen niet van te voren niet is vastgesteld.

Met behulp van de functie isset() kun je nagaan of die variabele uberhaupt wel voorkomt in de get-array.

Maar waarom kun je hier zelf niet uitkomen? Het is namelijk een nogal voor de hand liggen "fout."

[ Voor 7% gewijzigd door Sybr_E-N op 13-04-2006 11:33 ]


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
de verwerking gebeurd in dezelfde pagina....

met:

code:
1
 if (isset($_GET['action2']) && $_GET['action2']=="signup")

is de error wel weg maar word er niet weggeschreven in de database


dit is de hele code:

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
56
57
58
59
60
61
62
<?php

echo "<font size=4>Signup</font>
    <br>
    <br>";

if ($_GET['action2'] == 'signup')
\\dit is de plek

 {

include("config.php");

if ($_POST['username'] == '')
{
echo "<font color=#ff0000>je hebt geen username ingevuld</font>";
}
else {
    if ($_POST['email'] == '')
        {
        echo "<font color=#ff0000>Je hebt geen e-mailadres ingevuld</font>";
        }
            else {
        if ($_POST['password'] == '')
            {
            echo "<font color=#ff0000>Je hebt geen password ingevuld</font>";
            }
                else {
                  if ($_POST['leeftijd'] == '')
                    {
                    echo "<font color=#ff0000>Je hebt geen leeftijd ingevuld! </font>";
                    }

$pw = md5(password);

mysql_query("INSERT INTO members (username,email,password,leeftijd) VALUES ('$_POST[username]','$_POST[email]','$pw','$_POST[leeftijd]')")or die(mysql_error());


echo "je bent aangemeld";

                    }
                }
    }
}

else {

\\en hier is de plek
echo " <form action=action2=signup method=POST>
    <input type=hidden name=submit value=1>
    Username: <input type=text name=username maxlength=10>
    <p>
    Password: <input type=password name=password maxlength=15>
    <p>
    Email: <input type=text name=email>
    <br>
    Leeftijd: <input type=text name=leeftijd maxlength=2>
    <input type=submit value=Signup!>
    <input type=reset value=Clear>
    </form> ";
}
?>



in config.php staan het wachtwoord en pass voor welke database..

hoe maak ik een mooie tabel waarin de opmaak bewaard blijft?

[ Voor 51% gewijzigd door sjongenelen op 13-04-2006 11:49 ]

you had me at EHLO


  • NaN
  • Registratie: Oktober 2004
  • Niet online

NaN

SjoebieDoowah.

$pw = md5(password);

Moet naar mijn idee $pw = md5($password);

zijn

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ondanks dat dit erg basic is past het beter in Programming; ik verplaats het daar dus ook naartoe; het is even ter beoordeling van de moderators aldaar of je inzet als voldoende wordt ingeschat; ook voor je eerste script kun je je namelijk gewoon inlezen :)

SA > P

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
Spider.007 schreef op donderdag 13 april 2006 @ 11:42:
Ondanks dat dit erg basic is past het beter in Programming; ik verplaats het daar dus ook naartoe; het is even ter beoordeling van de moderators aldaar of je inzet als voldoende wordt ingeschat; ook voor je eerste script kun je je namelijk gewoon inlezen :)

SA > P
ik heb ook op tweakers op die index fout gezocht, maar daar was de oplossing een <? en ?> tussen de codes te zetten. Dit werkt bij mij niet hoor :/


enneh: het password gedeelte werkt ook - encrypted ^^
alleen nog één (simpel :p) dingetje

[ Voor 16% gewijzigd door sjongenelen op 13-04-2006 11:49 ]

you had me at EHLO


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

PHP:
1
//hier stond schandalige code


:) onder voorbehoud natuurlijk

offtopic:
en nu pizza maken :P :)

[ Voor 234% gewijzigd door Snake op 13-04-2006 12:09 . Reden: doh ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
eh, geen foutmelding - dat klopt! maar ook niets te zien in de database...

offtopic:
even wachten met de pizza :P

you had me at EHLO


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22-02 00:22

Janoz

Moderator Devschuur®

!litemod

TheNymf schreef op donderdag 13 april 2006 @ 11:30:
[...]


:'( het is mn eerste script, ik vind het nog wel meevallen
Het maakt weinig uit wat jij er van vindt, je browser/computer houd absoluut geen rekening met het feit of een ontwikkelaar net begonnen is of een gevorderde is.
- ik heb nul ervaring met php of formulieren..
maar ik zoek alleen een oplossing voor het php gedeelte - de verstuurformulieren zijn bijzaak -
het gaat om het php gedeelte :+
Maar de fout zit grotendeels in je html code.

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


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

TheNymf schreef op donderdag 13 april 2006 @ 11:55:
eh, geen foutmelding - dat klopt! maar ook niets te zien in de database...

offtopic:
even wachten met de pizza :P
offtopic:
Ie zit in de oven


Check script nu eens, ik had GET en POST omgedraaid

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
<?php
echo "<font size=4>Signup</font><br><br>";

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

    include("config.php");
    
    if ($_POST['username'] == '') {
        echo "<font color=#ff0000>je hebt geen username ingevuld</font>";
    } elseif ($_POST['email'] == '') {
        echo "<font color=#ff0000>Je hebt geen e-mailadres ingevuld</font>";
    } elseif ($_POST['password'] == '') {
        echo "<font color=#ff0000>Je hebt geen password ingevuld</font>";
    } elseif ($_POST['leeftijd'] == '') {
        echo "<font color=#ff0000>Je hebt geen leeftijd ingevuld! </font>";
    }
    
    $pw = md5($_POST['password']);
    
    mysql_query("INSERT INTO members (username,email,password,leeftijd) VALUES ('".$_POST['username']."','".$_POST['email']."','".$pw."','".$_POST['leeftijd']."')") or die(mysql_error());


    echo "je bent aangemeld";
} else {
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        Username: <input type="text" name="username" maxlength="10"><br>
        Password: <input type="password" name="password" maxlength="15"><br>
        Email: <input type="text" name="email"><br>
        Leeftijd: <input type="text" name="leeftijd" maxlength="2"><br>
        <input type="submit" value="Signup!"><br>
        <input type="reset" value="Clear"><br>
    </form>
<?php
}
?>

getest, en het werkt hier :)

offtopic:
yay pizza klaar

[ Voor 47% gewijzigd door Snake op 13-04-2006 12:10 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 19-02 21:56
het werkt idd -

ik weet alleen niet wat het doet... :/
<?php echo $_SERVER['PHP_SELF']; ?>
maar dat ga ik wel even lezen...

bedankt!

you had me at EHLO


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

TheNymf schreef op donderdag 13 april 2006 @ 12:40:
het werkt idd -

ik weet alleen niet wat het doet... :/


[...]


maar dat ga ik wel even lezen...

bedankt!
als je script index.php heet, dan wordt $_SERVER['PHP_SELF'] index.php
heet het aanmelden.php dan wordt het aanmelden.php

enz... ;)

http://php.net :)

Going for adventure, lots of sun and a convertible! | GMT-8


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Goed, dit topic is samen te vatten in één zinnetje: "Koop een boek, lees wat tutorials door en spendeer veel meer tijd op PHP.net." Alle vragen die de revue passeren in dit topic zouden met een beetje moeite van jouw kant ook wel opgelost kunnen worden. Beginner zijn is geen "excuus" om geen boeken te hoeven lezen. ;)

'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.

Pagina: 1

Dit topic is gesloten.