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.
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.
$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.
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.'");
?>
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);
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.