[PHP+MSSQL] Query elende

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Ik zit al 2 dagen (ben beginnend php noob) te zoeken naar een login script die samen met MSSQL werkt. Beetje kopie pasta gedaan en gewijzigd en alles werkt kan gebruikertje aanmaken enzo maar ik kan niet inloggen. Krijg continu errors....

De volgende melding heb ik nu:

Warning: mssql_query(): message: Line 1: Incorrect syntax near '&'. (severity 15) in c:\inetpub\wwwroot\login.php on line 17

Warning: mssql_query(): Query failed in c:\inetpub\wwwroot\login.php on line 17

Warning: mssql_num_rows(): supplied argument is not a valid MS SQL-result resource in c:\inetpub\wwwroot\login.php on line 19

Nu denk ik dat het in regel 17 zit:

$usernameexists = mssql_query("SELECT ID FROM tblusers WHERE username='".$_POST["username"]." '&& password='".$_POST["password"]."'");

En dat het iets met " of ' te maken heeft maar ik kan geen goed voorbeeld vinden of uitleg ergens die mij hier mee kan helpen :'(

Regel 19 ziet er zo uit:

if (mssql_num_rows($usernameexists) != 0)

Misschien is dit een hele domme vraag, maar mocht dit zo zijn het is voor mij erg moeilijk dus voor dat je spamt met dat het al 100x besproken is zou je aub dan een linkje kunnen posten waar precies _/-\o_ ik moet dit echt werkend krijgen :|

[ Voor 6% gewijzigd door Swanfield op 28-12-2005 14:19 ]

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Scott
  • Registratie: December 2004
  • Laatst online: 07:11

Scott

Ik ben, dus ik tweak

Je spatie staat verkeerd:
PHP:
1
$usernameexists = mssql_query("SELECT ID FROM tblusers WHERE username='".$_POST["username"]."' && password='".$_POST["password"]."'");


Jij zette de spatie voor de ' terwijl hij voor de && moest.. Ook niet al te moeilijk om te vinden lijkt me...

[ Voor 41% gewijzigd door Scott op 28-12-2005 14:22 ]


Verwijderd

PHP:
1
2
  $usernameexists = mssql_query("SELECT ID FROM tblusers WHERE username='" . 
  $_POST["username"]." '&& password='".$_POST["password"]."'");


Maak van die && eens 'AND'.

Dus:

PHP:
1
2
3
4
5
6
7
8
9
$usernameexists = mssql_query(
              "SELECT
                   ID
               FROM
                   tblusers
               WHERE
                   username = '" . $_POST["username"] . "' AND
                   password = '" . $_POST["password"] . "'"
);

edit:
was single quotes om de username en password vergeten

[ Voor 122% gewijzigd door Verwijderd op 28-12-2005 14:31 ]


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
ScottB schreef op woensdag 28 december 2005 @ 14:21:
Je spatie staat verkeerd:
PHP:
1
$usernameexists = mssql_query("SELECT ID FROM tblusers WHERE username='".$_POST["username"]."' && password='".$_POST["password"]."'");


Jij zette de spatie voor de ' terwijl hij voor de && moest.. Ook niet al te moeilijk om te vinden lijkt me...
Ik krijg nog steeds de zelfde errors...

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Die oplossing is beter alleen geeft hij nu deze melding:

Warning: mssql_query(): message: Invalid column name 'Damien'. (severity 16) in c:\inetpub\wwwroot\login.php on line 19

Plus die van het paswoord dus ik denk dat hij het invul veld als kolom naam ziet :S

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:43

Janoz

Moderator Devschuur®

!litemod

Je hebt een fout in je query (zoals je in je eerste foutmelding kunt lezen). Hierdoor kan de query niet uitgevoerd worden zodat er geen geldige resultset is. Dit alles is keurig netjes te lezen in de gegenereerde foutmeldingen. Probeer je query eerst eens werkend te krijgen in (bv) de Enterprise Manager.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Beetje debugwerk, maar goed

PHP:
1
2
3
4
5
6
7
8
9
10
$username = $_POST['username'];
$password = $_POST['password']; 
$usernameexists = mssql_query(
              "SELECT
                   ID
               FROM
                   tblusers
               WHERE
                   username = '{$username}' AND password = '{$password}'
);

[ Voor 20% gewijzigd door Verwijderd op 28-12-2005 14:29 ]


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Janoz schreef op woensdag 28 december 2005 @ 14:28:
Je hebt een fout in je query (zoals je in je eerste foutmelding kunt lezen). Hierdoor kan de query niet uitgevoerd worden zodat er geen geldige resultset is. Dit alles is keurig netjes te lezen in de gegenereerde foutmeldingen. Probeer je query eerst eens werkend te krijgen in (bv) de Enterprise Manager.
De query werk wel alleen kan in enterprise manager niet $_POST gebruiken. Het zit echt volgens mij in de " en de ' zoiets las ik al ergens maar ken geen goed voorbeeld vinden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
<? 
$username = $_POST['username']; 
$password = $_POST['password'];  
$usernameexists = mssql_query( 
              "SELECT 
                   ID 
               FROM 
                   tblusers 
               WHERE 
                   username = '{$username}' AND password = '{$password}' 
); 
?>


mist ergens een " volgens mij

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • disjfa
  • Registratie: April 2001
  • Laatst online: 08-01 11:17

disjfa

be

Damien2004 schreef op woensdag 28 december 2005 @ 14:34:
[...]
De query werk wel alleen kan in enterprise manager niet $_POST gebruiken. Het zit echt volgens mij in de " en de ' zoiets las ik al ergens maar ken geen goed voorbeeld vinden.
Dan echo je je query en zet die in de manager :?

PHP:
1
2
3
$query = "SELECT ...... ";
echo $query;
$usernameexists = mssql_query($query);


En de echo haal je weer weg als hij wel werkt...... Debuggen is soms best handig.

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Damien2004 schreef op woensdag 28 december 2005 @ 14:34:
[...]


mist ergens een " volgens mij
Dan zet je die er toch bij? :O Sorry hoor...

Helemaal aan het eind dus een " toevoegen en probeer het dan eens.

  • whoami
  • Registratie: December 2000
  • Nu online
Sorry hoor, maar dit is gewoon debug-werk.
Als je ergens een script download, en je kan het aanpassen, dan moet je het zelf ook kunnen debuggen. (Iedere programmeur moet kunnen debuggen).

Dit is dus gewoon een kwestie van syntax errors interpreteren, en daarnaar handelen.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.