проверка за съществуващ запис и още нещо..

cmsfan

Registered
Ето го скрипта:
Код:
<?php
$username =  $phpbb_user->data['username'];
include "forum/config.php";
$dbconn = mysql_connect("$dbhost", "$dbuser", "$dbpasswd");
if (!$dbconn)
{
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db("$dbname", $dbconn);
if (!$db_selected)
{
die ('Can\'t use foo : ' . mysql_error());
}
mysql_query("SET NAMES UTF8");
if (!$_POST['changenick'])
{
$our = mysql_query("SELECT * FROM
        phpbb_forums,
        phpbb_moderator_cache,
        phpbb_topics,
        phpbb_users

        WHERE 
        
        phpbb_forums.forum_last_poster_name='$username' 
        
        AND phpbb_moderator_cache.username='$username' 

        
        AND phpbb_topics.topic_first_poster_name='$username' 
        AND phpbb_topics.topic_last_poster_name='$username' 
       
        AND phpbb_users.username='$username' 
        AND phpbb_users.username_clean='$username'

        LIMIT 0,1");


while($r=mysql_fetch_assoc($our)){

?>
<form method='POST'>
<b>Настоящт ник:</b><br /> <input type='text' name='oldnick' maxlength='30' style='width:200px;' readonly='readonly'  value='$username'/><br />
<b>Нов ник:</b><br /> <input type='text'  name='newnick' style='width:200px;'><br />
<b>SMS Код:</b><br /> <input type='text'  name='smscod' style='width:200px;'><br />
<input name='changenick' type='submit' value='Промени!' class='button'>
</form>
<?
}
}
else{
$oldnick = $_POST['oldnick'];
$newnick = $_POST['newnick'];
$oldnick = htmlspecialchars($oldnick);
$newnick = htmlspecialchars($newnick);
echo "<meta http-equiv=\"refresh\" content=\"1; url=changenick.php\">";

function mobio_checkcode($servID, $smscod, $debug=0) {

	$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$servID&code=$smscod");

	$ret = 0;
	if($res_lines) {

		if(strstr($res_lines[0], "PAYBG=OK")) {
			$ret = 1;
		}else{
			if($debug)
				echo $line."\n";
		}
	}else{
		if($debug)
			echo "Unable to connect to mobio.bg server.\n";
		$ret = 0;
	}

	return $ret;
}



$servID = 14733;
$smscod = $_REQUEST["smscod"];

if(mobio_checkcode($servID, $smscod, 0) == 1) {
$update = mysql_query("Update
        
        phpbb_forums,
        phpbb_moderator_cache,
        phpbb_topics,
        phpbb_users
        
        SET

        phpbb_forums.forum_last_poster_name = '$newnick',
        
        phpbb_moderator_cache.username = '$newnick',


        phpbb_topics.topic_first_poster_name = '$newnick',
        phpbb_topics.topic_last_poster_name = '$newnick',

        phpbb_users.username = '$newnick',
        phpbb_users.username_clean = '$newnick'

        WHERE

        phpbb_forums.forum_last_poster_name = '$oldnick'
        
        AND phpbb_moderator_cache.username ='$oldnick'

        AND phpbb_topics.topic_first_poster_name = '$oldnick'
        AND phpbb_topics.topic_last_poster_name='$oldnick'

        AND phpbb_users.username = '$oldnick'
        AND phpbb_users.username_clean='$oldnick'


");
echo "Успешно промени ника си!";
}else{
	echo "Грешен или неправилно попълен код!";
}

}
?>

Проблема е, че нещо не работи както трябва, уж имам един потребител "test" среща се в датабазата в посочените таблици, но не показва формата за смяна на ник, а трябва да я показва (не го намира ли ... де да знам)
Това е първото нещо.
Второто нещо е, че искам ако може да се добави "проверка за вече съществуващ" ник, ако ника test се смени с ника "milen" (а него вече го има в дб-то) - да показва някакво echo, че ника вече го има и не може да се използва.
Третото нещо е, че не променя всичко. Пример давам с:
AND phpbb_topics.topic_first_poster_name = '$oldnick'
AND phpbb_topics.topic_last_poster_name='$oldnick'

В таблицата phpbb_topics и на тези 2- колони по точно ника "milen" се среща 1800 пъти, но скрипта сменя около 1400, а другите 400 остават не-променени. (не знам защо е така)
Четвъртото нещо е максимум допустими стойности за символите, примерно (20) - ако може да се направи някаква дефиниция най-отгоре в скрипта която да е = 20 за да може да се променя по-лесно.
Другото нещо е "trim" функция която да следи за празните места (да няма такива)

Благодаря!
 

eddyy93

Registered
Ей така трябва да ти е цикъла:

PHP:
while($r=mysql_fetch_assoc($our)){ 

echo"
<form method='POST'> 
<b>Настоящт ник:</b><br /> <input type='text' name='oldnick' maxlength='30' style='width:200px;' readonly='readonly'  value=".$r['username']."/><br /> 
<b>Нов ник:</b><br /> <input type='text'  name='newnick' style='width:200px;'><br /> 
<b>SMS Код:</b><br /> <input type='text'  name='smscod' style='width:200px;'><br /> 
<input name='changenick' type='submit' value='Промени!' class='button'> 
</form>
"; 

}
 

Горе