select users, wat is verkeerd?

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

select users, wat is verkeerd?

Bericht door LazyTiger » 31 mar 2004, 18:35

ik ben bezig met een nieuwe mod.
maar op een of andere manier krijg ik de gebruikers niet uit de tabel of zo:

Code: Selecteer alles

$sql = "SELECT user_id, username FROM " . USERS_TABLE . " WHERE user_id <> " . ANONYMOUS . " ORDER BY username ASC";

		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain list of users', '', __LINE__, __FILE__, $sql);
		}
while( $row = $db->sql_fetchrow($result) )
		{
			$Choose_users .= '<option value="' . $row[user_id] . '">' . $row[username]   . '</option>';
			$hidden_input .= $row[user_id] . ",";
					}
dit staat in de .php bestand.
hij moet een lijst van gebruikers maken waarin je kunt selecteren.
dit gebeurt in de admin.

verderop staat dit:

Code: Selecteer alles

print("Debug:<br>$Choose_users<br>");
om te proberen of ik resultaat krijg, maar dat is dus niet.
de gebruikers komen niet op het scherm.
ook niet in het blok dat er voor gemaakt is.
wat is er fout?

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 31 mar 2004, 19:06

USERID is nooit anonymous, maar -1 :wink:
Afbeelding

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 31 mar 2004, 19:44

volgens mij maakt dat niet uit...

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 31 mar 2004, 19:59

Klopt, ANONYMOUS is een phpBB constante en gelijk aan -1.

P.T., heb je er wel een <select> omheen staan? Kijk eens in de bron of er niets wordt geschreven? En ik kan je zoieso al aanraden om in zulke vars nooit hoofdletters te gebruiken, hier vergis je je ongetwijfeld een keer in en het verkeerd verwijzen naar variabalen is een van de meest frustrerende fouten. ;)

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 31 mar 2004, 20:07

maakt geen verschil, werkt nog niet.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 31 mar 2004, 20:16

Ga dan na waar het mis gaat, of de while geactiveerd wordt, of de query resultaten oplevert, of $Choose_users en $row[username] bestaan...

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 31 mar 2004, 20:19

mosymuis schreef:Ga dan na waar het mis gaat, of de while geactiveerd wordt, of de query resultaten oplevert, of $Choose_users en $row[username] bestaan...
nu gebruik je ook een hoofdletter ;).

hoe kan ik checken of de while wordt geactiveerd?
en hoe kan ik controleren of $row[username] bestaat?

zo: print("Debug:<br>$row[username]<br>");?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 31 mar 2004, 20:21

P.T. schreef:nu gebruik je ook een hoofdletter ;).
Ja, omdat jij de var zo genoemd hebt.

En je moet gewoon stukjes tekst echo'en door het script heen, om te kijken of het script hem überhaupt uitvoert en of die var inhoud heeft. En dus echo'en, niet printen. Ik weet de exacte verschillen niet maar ik gebruik altijd echo en dat heeft me nog nooit in de steek gelaten.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 31 mar 2004, 20:30

op de meeste plaatsen waar ik een echo plaats, komt er niks op het scherm. verder is echo "\$username= " . $row[username] . "<br />\n"; gewoon leeg op de plaatsen waar hij wel werkt.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 02 apr 2004, 14:31

hm.. hoe op te lossen..

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 03 apr 2004, 13:57

hij doet het... (vraag me niet hoe).
echter ik heb nu een ander probleem en hierbij zal ik een kleine omschrijving moeten geven van wat ik aan het veranderen ben.

ik ben de mass email (Bulk mail) aan het veranderen.
screenshot: http://home.wanadoo.nl/musicpage/screen.gif

nu krijg ik echter de fout dat er een fout zit in deze regel in emailer.php:
// Did it work?
if (!$result)
{
message_die(GENERAL_ERROR, 'Failed sending email :: ' . (($this->use_smtp) ? 'SMTP' : 'PHP') . ' :: ' . $result, '', __LINE__, __FILE__);
}

return true;
}
wat is er fout?
ik denk dat er iets verkeerds zit in de volgende code, al heb ik er niks of niet veel aan gewijzigd:

Code: Selecteer alles

//
		// Let's do some checking to make sure that mass mail functions
		// are working in win32 versions of php.
		//
		if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery'])
		{
			$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';

			// We are running on windows, force delivery to use our smtp functions
			// since php's are broken by default
			$board_config['smtp_delivery'] = 1;
			$board_config['smtp_host'] = @$ini_val('SMTP');
		}

		$emailer = new emailer($board_config['smtp_delivery']);
	
		$emailer->from($board_config['board_email']); 
      $emailer->replyto($board_config['board_email']); 
      $email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n"; 
      $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n"; 
      $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n"; 
      $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n"; 
		$emailer->use_template('admin_send_email');
		$emailer->email_address($to_userdata['user_email']);
		$emailer->set_subject($subject);
		$emailer->extra_headers($email_headers);
		
			$emailer->assign_vars(array(
			'SITENAME' => $board_config['sitename'], 
			'BOARD_EMAIL' => $board_config['board_email'], 
			'MESSAGE' => $message)
		);
		$emailer->send();
		$emailer->reset();

		message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '<br /><br />' . sprintf($lang['Click_return_admin_index'],  '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'));
	}
}


wat doe ik verkeerd of waar zou de fout kunnen zitten?

de mail wordt uiteindelijk wel verstuurd.
maar, "to:" wordt niet ingevuld door de gebruiker zijn e-mailadres.

waar zit de fout van dit andere probleem?

//edit.
ik denk er nu aan... bij dit laatste probleem, ik zal de gebruikers wel niet goed hebben geselecteerd.
maar goed, hoe zorg je ervoor dat dat wel goed werkt? als dat de fout is..

Gebruikersavatar
WebSiteNet
Berichten: 6524
Lid geworden op: 20 okt 2003, 16:56
Locatie: Wieringerwerf
Contacteer:

Re: select users, wat is verkeerd?

Bericht door WebSiteNet » 03 apr 2004, 14:50

P.T. schreef:

Code: Selecteer alles

$sql = "SELECT user_id, username FROM " . USERS_TABLE . " WHERE user_id <> " . ANONYMOUS . " ORDER BY username ASC";

		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain list of users', '', __LINE__, __FILE__, $sql);
		}
while( $row = $db->sql_fetchrow($result) )
		{
			$Choose_users .= '<option value="' . $row[user_id] . '">' . $row[username]   . '</option>';
			$hidden_input .= $row[user_id] . ",";
					}
Doe array's zoals $row[user_id] altijd met quotes.

$row['user_id']

Gesloten