Yvon schreef op 31.05.2006 22:55
Beste Jan,
Heeft het ook zin, als ik je even laat zien wat er in mijn database staat? Of maakt dat helemaal niets uit?
Wat misschien kan helpen is als je de tabelstructuur kunt laten zien.
Link gekopieerd
Nu maar hopen dat je dit bedoeld (hihi)
CREATE TABLE `SEC_TABLE_USERS` (
`id` int(10) unsigned NOT NULL auto_increment,
`username` varchar(50) NOT NULL default '',
`paswoord` varchar(40) NOT NULL default '',
`paswoord_plain` varchar(30) NOT NULL default '',
`email` varchar(255) default NULL,
`categorie` int(4) default NULL,
`extra_1` int(4) default NULL,
`extra_2` int(4) default NULL,
`extra_3` int(4) default NULL,
`extra_4` int(4) default NULL,
`extra_5` int(4) default NULL,
`set_design` int(4) default NULL,
`layout_1` int(4) default NULL,
`layout_2` int(4) default NULL,
`layout_3` int(4) default NULL,
`layout_4` int(4) default NULL,
`layout_5` int(4) default NULL,
`show_gb` int(2) default NULL,
`show_sm` int(2) default NULL,
`show_ct` int(2) default NULL,
`contact_tekst` text,
`kb_tot` int(7) default NULL,
`kb_pic` int(7) default NULL,
`kb_txt` int(7) default NULL,
`mb_traffic` int(5) default NULL,
`kb_maxpic` int(7) default NULL,
`php_js_menu` int(2) default NULL,
`extra_stats` int(2) default NULL,
`pv_totaal` int(10) default NULL,
`abonnement_tot` date default NULL,
`abonnement_wijz` datetime default NULL,
`credits` int(4) default NULL,
`credits_wijz` datetime default NULL,
`geregistreerd` datetime default NULL,
`gewijzigd_profiel` datetime default NULL,
`gewijzigd_account` datetime default NULL,
`ip_useragent` varchar(255) default NULL,
`laatste_login` datetime default NULL,
`mail_reminder` int(2) default NULL,
`melding` text,
`admin_notitie` text,
`soort` int(4) default NULL,
`status` int(4) default NULL,
PRIMARY KEY (`id`),
KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Link gekopieerd
Ik blijf benieuwd naar de query, zo moeilijk kan het toch niet zijn om deze even te echoen. SEC_TABLE_USERS lijkt een verkeerde waarde te bevatten. Ook die kun je even echoen.
Link gekopieerd
Ja, even gewoon simpel: echo $sql;
Link gekopieerd
Jan Koehoorn schreef op 31.05.2006 23:07
Ja, even gewoon simpel: echo $sql;
Voor jullie vast heel simpel (hahaha), maar waar moet ik dat doen????
Link gekopieerd
Okee, dus username is een bestaand veld in je MySQL tabel.
Link gekopieerd
<?php $code = 9;
if (isset ($_POST['checkurl'])) { // rare naamgeving trouwens
$username = addslashes($_POST['checkurl']);
}
else {
$username = 'test';
}
$pattern_username = '^([0-9a-z])([0-9a-z-]{1,18})([0-9a-z])$';
if ($username != '') {
$sql = "
SELECT username
FROM " . SEC_TABLE_USERS . "
WHERE username='" . $username . "'";
//EN HIER KOMT DE ECHO DAN
echo $sql;
$res = mysql_query($sql) or trigger_error (mysql_error ());
$num_rows = mysql_num_rows ($res);
}
if ($num_rows > 0) {
$stop=1;
$code=1;
}
elseif ($username == '') {
$stop=1;
$code=2;
}
elseif (!ereg ($pattern_username, $username)) {
$stop=1;
$code=3;
}
?>
Link gekopieerd
Yvon schreef op 31.05.2006 23:09
[quote=Jan Koehoorn schreef op 31.05.2006 23:07]Ja, even gewoon simpel: echo $sql;
Voor jullie vast heel simpel (hahaha), maar waar moet ik dat doen????[/quote]
Zoals ik al eerder zei: helemaal onderaan je script dit:
<?php
echo $sql;
?>
wat zie je dan?
Link gekopieerd
Hmmm, het databasemodel is ook voor verbetering vatbaar. Lees eens een artikel over databasenormalisatie. Kolomnamen als extra_1, extra_2, etc. (dus genummerd, zelfde soort gegevens) duiden vrijwel zonder uitzondering op een fout datamodel. Deze gegevens horen in een aparte tabel te staan.
Link gekopieerd
<?php $code = 9;
if (isset ($_POST['checkurl'])) { // rare naamgeving trouwens
$username = addslashes($_POST['checkurl']);
}
else {
$username = 'test';
}
$pattern_username = '^([0-9a-z])([0-9a-z-]{1,18})([0-9a-z])$';
if ($username != '') {
// EN VOLGENS MIJ ZAT DE FOUT IN DAT JE DE TABELNAAM FOUT HAD VERWERKT IN DE QUERY
$sql = "
SELECT username
FROM SEC_TABLE_USERS WHERE username='" . $username . "'";
//EN HIER KOMT DE ECHO DAN
echo $sql;
$res = mysql_query($sql) or trigger_error (mysql_error ());
$num_rows = mysql_num_rows ($res);
}
if ($num_rows > 0) {
$stop=1;
$code=1;
}
elseif ($username == '') {
$stop=1;
$code=2;
}
elseif (!ereg ($pattern_username, $username)) {
$stop=1;
$code=3;
}
?>
Link gekopieerd