Just nu i M3-nätverket
Jump to content

Php och wap login


kompiz

Recommended Posts

Följande kod fungerar utmärkt i gelon.nets wap browser men inte i en vanlig wap telefon. Så vi undrar om det finns någon som ser något fel på följande kod:

 

[log]

SIDA 1

<?php header("Content-type: text/vnd.wap.wml");

 

print "<?xml version=\"1.0\"?>\n";

print "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\""

. " \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n";'>http://www.wapforum.org/DTD/wml_1.1.xml\">\n";

 

?>

<?

print"<wml>\n";

print" <card id='card_1' title='login'>\n";

print"<do type='accept' label='logga in'>\n";

print"<go method='post' href='http://www.spedit.nu/wap/wap_php/inloggad.php'>\n";

print"<postfield name='user_name' value='$(user_name)'/>\n";

print"<postfield name='password' value='$(password)'/>\n";

print"</go>\n";

print"</do>\n";

print"<p>\n";

 

print"Användarnamn:\n";

print"<input type='text' name='user_name'/>\n";

print"</p>\n";

print"<p>\n";

print"Lösenord:\n";

print"<input type='password' name='password'/>\n";

print"</p>\n";

print"</card>\n";

print"</wml>\n";

?>

 

 

 

SIDA 2

<?php

 

header("Content-type: text/vnd.wap.wml");

 

print "<?xml version=\"1.0\"?>\n";

print "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\""

. " \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n";

?>

 

 

 

 

 

<?

print" <wml>\n";

print"<card id='card_2' title='inloggad'>\n";

print"<p>\n";

 

 

 

$db=mysql_connect("**.**.**.**","********","*******") or die ("cant connect");

mysql_select_db("spedit",$db) or die ("cant change");

$query = "SELECT * FROM driver WHERE user_name='$user_name'";

$result = mysql_query($query);

$row = mysql_fetch_array($result);

 

//kolla ifall användarnamet och lösenordet stämmer

if ($row["user_name"]==$user_name && $row["losen"]==$password)

{

echo"Användarnamn $row[user_name], Företagsnamn $row[company_name], Driver_id $row[driver_id] ";

mysql_free_result($result);

#echo"<A HREF='test_wap.php'>vidare</A>";

} else

{

echo "<span class='text'>Ni har uppgivit ett Användarnamn/lösenord som inte är korrekt var god <A HREF='login_wap.php'>försök igen</A>!\n</span>";

}

 

 

print"</p>\n";

print"<do type='accept' label='testsida'>\n";

print"<go method='get' href='http://www.spedit.nu/wap/wap_php/test_wap.php'>\n";

print"<postfield type='hidden' name='driver_id' value='$(driver_id)'/>\n";

print"</go>\n";

print"</do>\n";

print"</card>\n";

print"</wml>\n";

?>

[/log]

 

Via vanlig wap telefon så kommer man in på sida 1 och kan skriva in lösenord och användarnamn men man kommer inte in på sida 2.

 

 

 

Hej hopp

 

 

 

[inlägget ändrat 2007-05-26 20:32:18 av Maratonmannen]

Link to comment
Share on other sites

I XML-koden kan du inte använda ' runt attribut, utan måste använda citationstecken ". Detta är ett standardkrav. Kan kanske vara det som ställer till det?

 

Ska kolla igenom koden lite mer senare...

 

Link to comment
Share on other sites

Det finns några fler saker som jag har synpunkter på i koden.

 

Följande rader:

print "<postfield name='user_name' value='$(user_name)'/>\n"; 
print "<postfield name='password' value='$(password)'/>\n";

Du bör "escapa" dollartecknen eftersom PHP använder dessa för variabler. Så här alltså:

value=\"\$(user_name)\"

 

På sida 2 har du för det första ett felaktigt sätt att komma åt de skickade variablerna på. Du bör stänga av register_globals i din php.ini, och använda dig av $_POST["user_name"] och $_POST["password"].

 

Sedan är dini databasfråga inte säker, vilket innebär att en illasinnad besökare i dagsläget kan rensa hela din användar-databas.

 

För att göra SQL-frågan säker, skriv om den så här:

$query = "SELECT * FROM driver WHERE user_name='" . addslashes($_POST["user_name"]) . "'";

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...