Variabels worden niet opgeslagen.
Ik ben bezig om een soort registratie / login systeem te maken voor mijn site.
Het enigste probleem is, dat hij de $variables niet onthoud :S
Als ik mijn gegevens invoer, en op registreren klik, dan krijg ik de zelfde pagina weer met het registreer gedeelte, terwijl eigenlijk er een melding moet verschijnen dat ik me heb geregistreerd.
De code heb ik voor nu nog simpel gehouden, en de MySQL zit er nog niet in, maar het zou toch moeten werken?
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
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
<?
/* Scripted by Johannes Wiersma */
if ($submit){
echo "Gefeliciteerd ".$user_name."Registratie geslaagd";
exit;}
include "header.php";
?>
<B><H3>Registratie</H3></B>
Graag alles goed invullen a.u.b.<BR>
Anders kunnen er fouten verschijnen!<BR><BR>
<FORM ACTION="<? $PHP_SELF ?> " METHOD="POST">
<TABLE BORDER="0">
<TR><TD WIDTH="160">Gebruikersnaam:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" ID="user_name" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160">Wachtwoord:</TD>
<TD WIDTH="260"><INPUT TYPE="PASSWORD" ID="user_pass" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160">E-mail:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" ID="user_mail" SIZE="40" MAXLENGTH="50"></TD></TR>
<TR><TD WIDTH="160"></TD>
<TD WIDTH="260"><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Registreer" />
<input type="reset" value="Reset" /></TD></TR>
</TABLE>
<? include "footer.php"; ?>
/* Scripted by Johannes Wiersma */
if ($submit){
echo "Gefeliciteerd ".$user_name."Registratie geslaagd";
exit;}
include "header.php";
?>
<B><H3>Registratie</H3></B>
Graag alles goed invullen a.u.b.<BR>
Anders kunnen er fouten verschijnen!<BR><BR>
<FORM ACTION="<? $PHP_SELF ?> " METHOD="POST">
<TABLE BORDER="0">
<TR><TD WIDTH="160">Gebruikersnaam:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" ID="user_name" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160">Wachtwoord:</TD>
<TD WIDTH="260"><INPUT TYPE="PASSWORD" ID="user_pass" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160">E-mail:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" ID="user_mail" SIZE="40" MAXLENGTH="50"></TD></TR>
<TR><TD WIDTH="160"></TD>
<TD WIDTH="260"><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Registreer" />
<input type="reset" value="Reset" /></TD></TR>
</TABLE>
<? include "footer.php"; ?>
Ookal heb ik bij een tutorial hier op deze site gekeken, die na de submit butten naar een andere pagina gaat, maar op die pagina is hij de variables alweer vergeten.
Ik snap niet waarom het werkt. Kan iemand mij hierbij helpen?
-edit- Owjah, header en footer.php geven aleen maar de titel en en wat text onderaan weer, dat is aleen maar een beetje html
Gewijzigd op 01/01/1970 01:00:00 door Johannes
Sinds wanneer controleer je op deze manier of een formulier verzonden is? Dat doe je altijd nog met:
Verder hoort $PHP_SELF natuurlijk $_SERVER['PHP_SELF'] te zijn. En tenslotte zijn html tags tegenwoordig allemaal lowercase...
ps. Verder lees je geposte variabelen uit met $_POST['var']. Gewoon $var zal niet meer werken als register_globals uitgezet is...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
@Blanche: Het werkt. Harstikke bedankt, nu kan ik weer verder.
ALs ik de verbeteringen van hierboven gebruik, en daarna de variable opvraag krijg ik een error:
Dit betetekend dus, dat hij nog steeds niet de variable heeft opgeslagen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
/* Scripted by Johannes Wiersma */
error_reporting(E_ALL);
ini_set("display_errors", 1);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$user_name = $_POST['$user_name'];
echo "Gefeliciteerd ".$user_name."Registratie geslaagd";
}else{
?>
<FORM ACTION="<? $_SERVER['PHP_SELF'] ?> " METHOD="POST">
<TABLE BORDER="0">
<TR><TD WIDTH="160">Gebruikersnaam:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" name="user_name" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160"></TD>
<TD WIDTH="260"><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Registreer" />
<input type="reset" value="Reset" /></TD></TR>
</TABLE>
<? } ?>
/* Scripted by Johannes Wiersma */
error_reporting(E_ALL);
ini_set("display_errors", 1);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$user_name = $_POST['$user_name'];
echo "Gefeliciteerd ".$user_name."Registratie geslaagd";
}else{
?>
<FORM ACTION="<? $_SERVER['PHP_SELF'] ?> " METHOD="POST">
<TABLE BORDER="0">
<TR><TD WIDTH="160">Gebruikersnaam:</TD>
<TD WIDTH="260"><INPUT TYPE="TEXT" name="user_name" SIZE="20" MAXLENGTH="20"></TD></TR>
<TR><TD WIDTH="160"></TD>
<TD WIDTH="260"><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Registreer" />
<input type="reset" value="Reset" /></TD></TR>
</TABLE>
<? } ?>
Gewijzigd op 01/01/1970 01:00:00 door Johannes
Edit:
En dit soort dingen:
is onzin. Je kopiëert de ene variabele in de andere zonder er iets mee te doen. Zonde.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
P.S. Jullie zijn hier wel snel met antwoord geven. Toppie!
Johannes schreef op 26.12.2007 19:49:
Harstikke bedankt. dat 1 verkeerd geplaatste teken een heel systeem in de war kan brengen :P
Ja, het steekt krap he, dat programmeren ;-)