Server op localhost werkt niet zoals het moet...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sure Is

Sure Is

24/01/2011 16:34:47
Quote Anchor link
Hi all,
Ik testte vroeger altijd mijn php's rechtstreeks op een domein dat ik beheer,
maar omdat altijd die files uploaden een beetje omslachtig is,
heb ik eens een server opgezet om het local te kunnen testen.

Ik heb dus xampp van Apache Friends gedownload en geïnstalleerd,
en alle bestanden in de correcte folder geplaatst.
Als ik nu een eenvoudig script test, dan werkt dit zoals het hoort (bv http://localhost/index.php)

Echter, wanneer er database aan te pas komt (bv. bij sign up) dan krijg ik errors.
Ik heb de database correct geïnstalleerd en de MySql is "running".
Ik heb alle tables die ik gebruik in het script correct toegevoegd.

Meer bepaald krijg ik deze errors:
Quote:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\sign_up.php on line 44


Op lijn 44 staat er dit:
Quote:
$dn = mysql_num_rows(mysql_query('select id from mytable where user="'.$username.'"'));

(testen of de username nog niet bestaat)

Mijn config ziet er zo uit:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

session_start();

mysql_connect('localhost', 'myusersname', 'mypass');
mysql_select_db('mydb');

$mail_webmaster = '[email protected]';

$url_root = 'http://localhost/';
?>


Wanneer ik de user of pass verander in de config, krijg ik hele reeks errors, dus dat is correct ingevuld. Wanneer ik echter "mydb" verander in config.php in iets willekeurigs, dan verandert er niks. De error blijft dezelfde, en er komen geen extra errors bij... het lijkt wel of hij mijn table niet vindt ofzo...?

Ik heb het script ook online getest, op een domein dat ik beheer, alle tables etc. ook overgenomen, met dezelfde variabelen, en daar werkt alles perfect... geen errors.

Iemand die mij kan helpen?
Gewijzigd op 24/01/2011 16:36:02 door Sure Is
 
PHP hulp

PHP hulp

24/04/2024 05:27:49
 
Thomas van den Bulk

Thomas van den Bulk

24/01/2011 16:39:05
Quote Anchor link
waneer je een mysql_query uitvoerd, zal hij true of false geven,
ligt er natuurlijk aan of de query gelukt is of niet,

dit zal waarscheinlijk wel werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$user
= mysql_query('select id from mytable where user="'.$username.'"');
$dn = mysql_num_rows($user);
?>


ik weet niet waarom het wel werkt op je domein, maar niet op je localhost,
maar zo kun je het iig oplossen.
Gewijzigd op 24/01/2011 16:41:00 door Thomas van den Bulk
 
Kris Peeters

Kris Peeters

24/01/2011 16:40:17
Quote Anchor link
mysql_select_db('mytable');

Dat is vreemd. Ik zou verwachten dat je daar een database selecteert; niet een tabel.
Of heb jij een database 'mytable' genoemd?
 
Sure Is

Sure Is

24/01/2011 16:43:42
Quote Anchor link
Kris Peeters op 24/01/2011 16:40:17:
mysql_select_db('mytable');

Dat is vreemd. Ik zou verwachten dat je daar een database selecteert; niet een tabel.
Of heb jij een database 'mytable' genoemd?

Sorry, dat was een schrijffoutje, het is inmiddels aangepast :)


Toevoeging op 24/01/2011 16:48:06:

@ Thomas: jouw code geeft helaas dezelfde error voor de lijn waar "$dn = mysql_num_rows($user);" staat...
 
Kris Peeters

Kris Peeters

24/01/2011 16:50:15
Quote Anchor link
Thomas van den Bulk op 24/01/2011 16:39:05:
waneer je een mysql_query uitvoerd, zal hij true of false geven,


mysql_query geeft geen true weer.

mysql_query geeft je een resource terug, waar je informatie uit kan halen met iets als mysql_fetch_assoc.

mysql_query geeft een false weer wanneer iets fouts gebeurt.
Je gebruikt velden die niet in de tabel staan of je hebt een een slechte database verbinding gemaakt of zo.


Controleer eens bij de andere mysql functies of ergens een fout wordt gegeven.
bv. mysql_select_db (http://be.php.net/mysql_select_db) kan je ook in een if zetten. Je ziet in de documentatie dat de functie een true of false terug geeft

if (mysql_select_db('myDb')) {
...
Gewijzigd op 24/01/2011 16:55:58 door Kris Peeters
 
Sure Is

Sure Is

24/01/2011 16:50:56
Quote Anchor link
Extra info:

Ook voor login hetzelfde probleem:

"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\connexion.php on line 46"


Source code:
45: $req = mysql_query('select password, id FROM users WHERE user="'.$username.'"');
46: $dn = mysql_fetch_array($req);

Toevoeging op 24/01/2011 16:53:02:

Kris Peeters op 24/01/2011 16:50:15:
mysql_query geeft een false weer wanneer iets fouts gebeurt.
Je gebruikt velden die niet in de tabel staan of je hebt een een slechte database verbinding gemaakt of zo.

Inderdaad, en dat is het 'm nu juist: ik gebruik geen velden die niet in de table staan, en mijn database verbinding is ook correct.
Online, met dezelfde tables, werkt alles perfect...
Gewijzigd op 24/01/2011 16:51:24 door Sure Is
 
Kris Peeters

Kris Peeters

24/01/2011 16:58:30
Quote Anchor link
Ja, dan ligt de fout dus in code die daar boven staat.
(Zie mijn vorige post die ik aangepast heb, net te laat)
 
Sure Is

Sure Is

24/01/2011 16:59:21
Quote Anchor link
Update:
Ik heb het probleem opgelost.
Even mijn oplossing voor wanneer er ooit nog eens mensen dit probleem hebben:

Blijkbaar krijgen zelf toegevoegde users van de MySQL slechts "usage privileges".
De standaard gebruiker "root" heeft "all privileges".

Config.php upgedate naar:
"mysql_connect('localhost', 'root', '');
mysql_select_db('mydb');"

Alles werkt nu as it should.
Wanneer ik alles online smijt zal ik die root en paswoord dan wel nog manueel even aanpassen in de cofig-file.

Toch bedankt van de response!
Grtz.
Gewijzigd op 24/01/2011 17:00:40 door Sure Is
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.