Just nu i M3-nätverket
Gå till innehåll

Php och wap login


kompiz

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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...

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...