Ik heb sinds een aantal dagen dit draaien: http://anouksweb.nl/php/members.zip

alles werkt goed, maar nu het probleem:

Ik heb een eigen php pagina waar ik het login formulier op wil hebben.

Dus dat deed ik met

<?php
include("members\login.php");
?>

Maar als ik nu inlog, logt ie niet echt in zeg maar, de pagina veranderd niet naar de pagina die je krijgt als je ingelogt bent, het lijkt erop dat hij die pagina alleen maar ververst.

Als ik direct inlog op de pagina 'members/login.php' gaat het gewoon goed.

Iemand enig idee hoe ik het werkend kan krijgen?

Alvast Bedankt!
Zet dit bovenin je eerste script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Naar welke pagina wordt het formulier verzonden?

Dus geef ons even de form-tag volledig:

<form method="POST" action="??????????">
als je het hier hebt over dezelfde login.php als er in dat archief zit dan is het vrij logisch dat er niet veel gebeurd, dat is namelijk niet het formulier maar het script dat het formulier aanspreekt. Begint met if ($submit), dus zonder formulier zal hij ook niets uitvoeren.
De code van login.php:

<?
session_start();

require("config.php");

if($submit){

$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);

if(!$result){
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}
$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";


if(!$login){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('members/aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
Dit is een oud script zo te zien. Begin eens met het up-tp-date te maken.
Om maar wat te noemen:

session_register is antiek.

echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$login){
$......
}
else{
header("Location: index.php");
}
Je krijgt op die header een error.

Haal $vars buiten de quotes.

Bouw foutafhandeling in.
ah, thanks! Het werkt nu. NU doet het volgende probleem zich voor voor een bepaalde pagina heb ik het member ID nodig (een profiel pagina) Ik probeerde het zo op te lossen:
<?php
require("config.php");
$result = mysql_query("SELECT * FROM members");
$row = mysql_fetch_array( $result );
$id = $row['id'];
getid = echo $id;
include ("members/profiel.php?mid='.$getid.'");
?>

Het enige is dat dit niet werkt. De bedoeling is dus dat de url zoiets wordt:
http://ww.mijnsite.nl/profiel.php?id=1

Heeft iemand enig idee hoe ik dit moet doen?
Je scoort hoog: Zes regels met vijf fouten/opmerkingen.

- Met de query haal je álle members op. Kijk eens naar WHERE.
- Uit al die members pak je de allereerste die gevonden is. Niemand weet welk dat is want ze staan niet gesorteerd. Het kan dus iedereen zijn.
- Er zit totaal geen enkele foutafhandeling in dus je mag hopen dat het goed gaat, maar weten zal je het nooit.
- Dan stop je het resultaat van een echo in een var. Het is helemaal geen var want het begint niet met een $. En verder geeft die echo een false of een true terug.
- En in een include kun je geen GET waarden zetten. Dat werkt niet.

Edit: Dit heb je ook nog niet gedaan.
SanThe schreef op 11.09.2008 00:12
Zet dit bovenin je eerste script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
na wat eraan gesleuteld te hebben, heb ik nu dit:

<?
require("config.php");
session_start();

if(session_is_registered('memberid')){
$result = mysql_query("SELECT naam FROM members WHERE username = '$memberid'");

$row = mysql_fetch_array( $result );
$naam = $row['naam'];
?>


Ingelogd als : <? echo $naam;
?>

Alleen staat er dus geen gebruikersnaam, wel staat er de volgende fout:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Ik vermoed dat het te maken heeft met mysql_fetch_array aangezien het nu maar een rij is die doorzocht moet worden. Klopt mijn vermoeden, en wat is de oplossing hiervoor?

Het inloggen werkt nu, en het menu komt goed tevoorschijn. Mijn probleem met het inloggen in dus verholpen.
Je query is mislukt. Ik zie ook geen foutafhandeling dus dat kan je verwachten. En session_is_registered is antiek.
zoals SanThe dat al zei kan je beter eerst:


<?php
 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

?>


boven je script zetten en ipv session_is_registerd, $_SESSION[] gebruiken

Reageren