Hoi,
Ik heb een vreemd probleem met een formulier afhandeling.
Het formulier dat ik wil maken / gebruiken is een inlog formulier, dat
qua opmaak in een .inc file zit. Deze ziet er zo uit:
<div id="rightcolumn">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<form action="/traderspit/tests/login.php" method="post">
<input name="active" type="hidden" value="in">
<fieldset>
<legend>Members login</legend>
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td><font color="orange">Emailadres</font></td>
<td>
<input type="text" size="15" name="emailadres">
</td>
<td></td>
</tr>
<tr>
<td><font color="orange">wachtwoord </font></td>
<td>
<input type="password" size="15" name="invoerwachtwoord">
</td>
<td>
<input type="submit" value="Verzenden" name="Submit">
</td>
</tr>
</table>
</fieldset>
</form></td>
</tr>
</table>
</div>
Deze .inc file (loginform.inc) include ik in een php pagina ergens op
de site en voor als er verkeerd wordt ingelogd binnen de file
login.php, die er als volgt uitziet.
<?php
session_start();
?>
<head>
<title>Log in</title>
</head>
<?php
if(isset($_POST['active']) && $_POST['active']=='in')
{
$_SESSION["active"]=$_POST['active'];
unset($HTTP_GET_VARS['active']);
}
if(isset($HTTP_GET_VARS['active']) && $HTTP_GET_VARS['active']!='in')
{
$_SESSION["active"]='out';
unset($HTTP_GET_VARS['active']);
}
if(isset($_POST['invoerwachtwoord'])) { $_SESSION["invoerwachtwoord"]=
$_POST['invoerwachtwoord'];}
if(isset($_POST['emailadres'])) { $_SESSION["emailadres"]=
$_POST['emailadres'];}
if (($_SESSION["active"]<>'in' && $_SESSION["active"]=='out') ||
$_SESSION["emailadres"] == "")
{
$_SESSION["validated"] = false;
include('loginform.inc');
}
if(isset($_SESSION["emailadres"]) && $_SESSION["emailadres"] <> "" &&
isset($_SESSION["invoerwachtwoord"]) && $_SESSION["active"]=='in')
{
mysql_connect("localhost","iemand","daarginder") or die ("kon geen
verbindig maken met de DB");
mysql_select_db("dedatabase") or die ("kan de database niet
selecteren");
$query = "select `wachtwoord` from pta where `emailadres`='".
$_SESSION['emailadres']. "' limit 1";
$result = mysql_query($query) or die(mysql_error());
$countResultRow = mysql_num_rows($result);
if ($countResultRow == 0)
{
session_destroy();
echo "Onbekend emailadres<br><a href=\"".$_SERVER["PHP_SELF"]."?
active=out\">ga terug</a>";
die;
}
$row = mysql_fetch_assoc($result);
$wachtwoord = $row['wachtwoord'];
$_SESSION["validated"] = ($_SESSION["invoerwachtwoord"]==
$wachtwoord);
if (!$_SESSION["validated"]) {
session_destroy();
die ("Het wachtwoord dat u heeft opgegeven, komt niet overeen met
de gegevens in de database.<br> <a href=\"".$_SERVER["PHP_SELF"]."?
active=out\">Ga terug</a>");
}
echo "<a href=\"".$_SERVER["PHP_SELF"]."?active=out\">log out</
a><br>";
}
if (!$_SESSION["validated"]) {
session_destroy();
die();
}
echo "de rest van de pagina, die dan te zien is als je correct bent
ingelogd<br>";
?>
Het vreemde is nu, dat als ik login.php direct aanroep, alles prima
werkt. Als ik niet invul en op verzenden druk, krijg ik gewoon weer
het formulier, als ik een onbekend emailadres invul, krijg ik daar een
melding over en kan ik op terug drukken om nogmaals aan te melden.
Wanneer mijn wachtwoord niet overeenkomt met het wachtwoord dat
gekoppeld is aan het emailadres, dan krijg ik daar ook een melding
van. En als ik de juiste combinatie van email en wachtwoord heb
opgegeven, dan krijg ik “de rest van de pagina, die dan te zien is als
je correct bent ingelogd“ te zien. Dus alles werkt….
Totdat ik het formulier niet invul vanaf login.php, maar vanaf een
andere pagina. Dan krijg ik na het versturen, een string achter de URL
van de pagina die het formulier verstuurd heeft:
test.php?
active=in&emailadres=mijn@emailadres.hier&invoerwa chtwoord=hetwachtwoord&Submit=Verzenden
test.php ziet er zo uit:
<?php
include(‘loginform.inc’);
?>
Het vreemde is dus dat ik weer op dezelfde pagina kom en het verzenden
en de afhandeling niet goed gaat.
Als ik een copy van login.php in een andere directory zet en in
loginform.inc è action de directory aanpas naar de copy, dan kan ik
wel vanuit het origineel het formulier verzenden naar de kopie, waar
het ook correct wordt afgehandeld.
Maar ik krijg het dus niet voor elkaar om het vanuit een andere pagina
te verzenden en af te handelen.
Iemand een idee waar het aan ligt?
Groeten,
Matthijs
Evenementen voor de komende 60 Dag(en)
Resultaten 1 tot 4 van de 4
-
probleem met formulier afhandeling vanuit andere pagina (PHP)
-
Re: probleem met formulier afhandeling vanuit andere pagina (PHP)
On Thu, 28 Aug 2008 13:54:30 +0200, <matthijsdezwart@gmail.com> wrote:
> Hoi,
>
> Ik heb een vreemd probleem met een formulier afhandeling.
> Het formulier dat ik wil maken / gebruiken is een inlog formulier, dat
> qua opmaak in een .inc file zit. Deze ziet er zo uit:
>
> <div id="rightcolumn">
> <table border="0" cellspacing="0" cellpadding="0">
> <tr>
> <td>
> <form action="/traderspit/tests/login.php" method="post">
> Totdat ik het formulier niet invul vanaf login.php, maar vanaf een
> andere pagina. Dan krijg ik na het versturen, een string achter de URL
> van de pagina die het formulier verstuurd heeft:
> test.php?
> active=in&emailadres=mijn@emailadres.hier&invoerwa chtwoord=hetwachtwoord&Submit=Verzenden
Ofwel een GET ipv een POST.
> test.php ziet er zo uit:
>
> <?php
> include(‘loginform.inc’);
> ?>
>
> Het vreemde is dus dat ik weer op dezelfde pagina kom en het verzenden
> en de afhandeling niet goed gaat.
>
> Als ik een copy van login.php in een andere directory zet en in
> loginform.inc è action de directory aanpas naar de copy, dan kan ik
> wel vanuit het origineel het formulier verzenden naar de kopie, waar
> het ook correct wordt afgehandeld.
>
> Maar ik krijg het dus niet voor elkaar om het vanuit een andere pagina
> te verzenden en af te handelen.
>
> Iemand een idee waar het aan ligt?
1) Valideer je HTML.
2) Waarschijnlijk sluit je abusievelijk een <form method="get"> niet af,
en formulieren kunnen in HTML niet nest worden. In welk formulier je
browser interpreteerd dat je velden staan is dan niet te voorspellen, en
wordt overgelaten aan diens foutafhandeling.
--
Rik Wasmus
....spamrun finished
- advertentie
-
Re: probleem met formulier afhandeling vanuit andere pagina (PHP)
On 28 aug, 14:10, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
> On Thu, 28 Aug 2008 13:54:30 +0200, <matthijsdezw...@gmail.com> wrote:
> > Hoi,
>
> > Ik heb een vreemd probleem met een formulier afhandeling.
> > Het formulier dat ik wil maken / gebruiken is een inlog formulier, dat
> > qua opmaak in een .inc file zit. Deze ziet er zo uit:
>
> > * * * * * *<div id="rightcolumn">
> > * * * * * * * * * *<table border="0" cellspacing="0" cellpadding="0">
> > * * * * * * * * * * *<tr>
> > * * * * * * * * * * * *<td>
> > * * * * * * * * * * * *<form action="/traderspit/tests/login.php" method="post">
> > Totdat ik het formulier niet invul vanaf login.php, maar vanaf een
> > andere pagina. Dan krijg ik na het versturen, een string achter de URL
> > van de pagina die het formulier verstuurd heeft:
> > test.php?
> > active=in&emailadres=m...@emailadres.hier&invoerwa chtwoord=hetwachtwoord&Submit=Verzenden
>
> Ofwel een GET ipv een POST.
>
>
>
>
>
> > test.php ziet er zo uit:
>
> > <?php
> > include(‘loginform.inc’);
> > ?>
>
> > Het vreemde is dus dat ik weer op dezelfde pagina kom en het verzenden
> > en de afhandeling niet goed gaat.
>
> > Als ik een copy van login.php in een andere directory zet en in
> > loginform.inc è action de directory aanpas naar de copy, dan kan ik
> > wel vanuit het origineel het formulier verzenden naar de kopie, waar
> > het ook correct wordt afgehandeld.
>
> > Maar ik krijg het dus niet voor elkaar om het vanuit een andere pagina
> > te verzenden en af te handelen.
>
> > Iemand een idee waar het aan ligt?
>
> 1) Valideer je HTML.
> 2) Waarschijnlijk sluit je abusievelijk een <form method="get"> niet af, *
> en formulieren kunnen in HTML niet nest worden. In welk formulier je *
> browser interpreteerd dat je velden staan is dan niet te voorspellen, en *
> wordt overgelaten aan diens foutafhandeling.
> --
> Rik Wasmus
> ...spamrun finished- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -
Het bleek idd aan de opmaak te liggen. Want als ik de opmaak weg laat
en het formulier "grof" in een html pagina zet, werkt het idd wel.
Typisch....
Ik ga eens even kijken hoe ik dat ga oplossen. Ligt het aan de table
opmaak? Of ergens anders aan? Zou ik wel CSS kunnen gebruiken met
div's?
In ieder geval bedankt voor de tip, want het pribleem is in ieder
geval bekend nu.
Mazzel,
Matthijs
-
Re: probleem met formulier afhandeling vanuit andere pagina (PHP)
> > Iemand een idee waar het aan ligt?
>
> 1) Valideer je HTML.
> 2) Waarschijnlijk sluit je abusievelijk een <form method="get"> niet af, *
> en formulieren kunnen in HTML niet nest worden. In welk formulier je *
> browser interpreteerd dat je velden staan is dan niet te voorspellen, en *
> wordt overgelaten aan diens foutafhandeling.
> --
> Rik Wasmus
> ...spamrun finished- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -
Na je verhaal over opmaak en het verkeerd afsluiten van het form, liep
ik nog even goed door de code heen en heb ik de boosdoener gevonden.
Het was een verdwaalde <form>....



LinkBack URL
About LinkBacks
