Hoe kan ik via de role van de user iets anderd doorgeven met echo.
Op de volgende code kreeg ik no voor antwoord als mijn gebruikersnaam of wachtwoord niet klopt maar geen user of admin
Bij voorbaat dank Dimi.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
$role = mysql_real_escape_string($_POST['role']);
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'" ;
$result = mysql_fetch_array(mysql_query($query));
if (!$result)
{
$output .= "<loginsuccess>no</loginsuccess>";
}
elseif (!$result == "yes" || $role == "user" )
{
$output .="<loginsuccess>user</loginsuccess>";
}
elseif(!$result == "yes" || $role == "admin" )
{
$output .= "<loginsuccess>admin</loginsuccess>";
}
echo $output
?>
$password = mysql_real_escape_string($_POST["password"]);
$role = mysql_real_escape_string($_POST['role']);
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'" ;
$result = mysql_fetch_array(mysql_query($query));
if (!$result)
{
$output .= "<loginsuccess>no</loginsuccess>";
}
elseif (!$result == "yes" || $role == "user" )
{
$output .="<loginsuccess>user</loginsuccess>";
}
elseif(!$result == "yes" || $role == "admin" )
{
$output .= "<loginsuccess>admin</loginsuccess>";
}
echo $output
?>
[/CODE]
Het is ook gevaarlijk om zo passwords in een db te hebben staan. Sla het op met md5 en een salt.
http://phptuts.nl/view/39
http://phptuts.nl/view/41
Owja, wat je nou precies wilt is me niet geheel duidelijk, ik kijk alleen maar naar je code. (En ben je met xml aan het kloten? Ga dan niet zelf die xml maken, maar gebruik dan dom of simplexml.)
Deze php stuurt via xml een van de drie antwoorden door naar flex en naar aanleiding daar van kreeg je elk keer een ander state(pagina) te zien.
Het werkt niet, als in de verkeerde naam wachtwoord invult kreeg een no voor antwoord (dat is te verwachten). Maar met de juiste inlog kreeg ik error
“Property loginsuccess not found on String and there is no default value.”
Ik heb ook een tweede "oplosing" (zie onder) om flex voor de role laten luisteren en dan beslisen, maar ik doe iets fout, de php pagina werkt niet
Ik ben van plan zo iets(md5) te gebruiken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
if (!$result)
{
$output .= "<loginsuccess>no</loginsuccess>";
}
else
{
$output .="<loginsuccess>yes</loginsuccess>";
// zonder de volgende lijn alles werkt, met niet meer.
// het is waarschijnlijk iets simpels maar ik ken php niet zo goed.
$output .="<role>"$role"</role>";
}
echo $output
Gewijzigd op 01/01/1970 01:00:00 door dimi orla
Karl schreef op 02.05.2009 12:51:
Verder haal je een array op dus kan je niet $result == "yes" doen.
En een array is ook geen boolean. Dus niet true of false.
Je opzet is gewoon niet goed. Lees eens een tutorial door over sql en bouw een fatsoenlijke foutafhandeling in.
Ik zaag het net, php verwacht de role van mijn aplicatie
$role = mysql_real_escape_string($_POST['role']);
(thanks karl voor de tut http://phptuts.nl/view/39)
terwijl ik wil deze van mysql over te nemen
SanThe schreef op 03.05.2009 01:36:
En een array is ook geen boolean. Dus niet true of false.
Je opzet is gewoon niet goed. Lees eens een tutorial door over sql en bouw een fatsoenlijke foutafhandeling in.
Karl schreef op 02.05.2009 12:51:
Verder haal je een array op dus kan je niet $result == "yes" doen.
En een array is ook geen boolean. Dus niet true of false.
Je opzet is gewoon niet goed. Lees eens een tutorial door over sql en bouw een fatsoenlijke foutafhandeling in.
Klopt, al wordt een lege array naar false gecast en eentje waar teminste één element in zit naar true language.types.boolean#language.types.boolean.casting.