har precis börjat titta på PHP och har stött på ett litet fel, troligen barnsligt enkelt. För det första: För att använda citationstecken inne i strängar som begränsas av citationstecken sätter du \ framför dem:variabel fel
min funktion ser ut som följande:
function UserAutho($Nick,$pass){
//
$QUERY="select Nick from users where Nick="$Nick" and Pass="$pass""; //<-- här blir felet
$result= mysql_query($query) or die(mysql_error());
if ($result = $Nick)
return 'True' ;
else
return 'False';
}
Och jag får följande fel meddelande:
Parse error: parse error, unexpected T_VARIABLE in c:\inetpub\wwwroot\php\htmlpage1.php on line 99
jag använder IIS 5.0 och php 4.Sv: variabel fel
<code>
$QUERY="select Nick from users where Nick=\"$Nick\" and Pass=\"$pass\"";
</code>
I MySQL använder man dock oftast apostrofer ('enkelfnuttar'):
<code>
$QUERY="select Nick from users where Nick='$Nick' and Pass='$pass'";
</code>
För det andra: När det gäller
<code>
$result= mysql_query($query) or die(mysql_error());
if ($result = $Nick)
</code>
så använder man == för jämförelse i C/C++/C#/Java/PHP/...
I det aktuella fallet gör du dock en konstig jämförelse eftersom $result inte innehåller texten från fältet Nick i tabellen users, utan är ett slags identifierare för hela resultatet (som skulle kunna bestå av många fält och många rader).
För att hämta en post från sökresultatet använder man någon av mysql_fetch-funktionerna, t.ex.
<code>
$user = mysql_fetch_assoc($result);
if($user['Nick'] == $Nick)
...
</code>
För det tredje: Du kan returnera sanningsvärden i stället för strängar som föreställer sanningsvärden:
<code>
if(...)
return true;
else
return false;
</code>
För det fjärde: Jag rekommenderar PHPportalen (http://www.phpportalen.net) för frågor om PHP och MySQL.