Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » php кнопка с открытием в новом окне

Ответить
Настройки темы
php кнопка с открытием в новом окне

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Нужно, чтобы при нажатии на кнопку открывалось новое окно (или хотя бы новая вкладка)
Пробовал разные способы, ругается то на =, то на '

<button type="submit" name="vote_id" value="'.$site['vote_id'].'" class="btn btn-primary" role="button">Vote Now</button>';

Полный php этой страницы
PHP код: Выделить весь код

<?php

if(!defined('COMMON_INITIATED')) {
    die(
"Hacking attempt! Logged");
}

if( !empty(
$setmodules) )
{
    
$file basename(__FILE__);
    
$module[_l('Vote')][_l('Vote for GP')] = $file;
    return;
}

# Title
$lefttitle _l('Vote for Game Points');

# To make life simpler, we'll capture all the print
# output from here on out and append it to the $out variable
# at the end of this script
ob_start();

# Security check
if ($this_script == $script_name) {

    
# Only logged in users can access this page
    
if($isuser) {

        
# Setup some variables
        
$page request_var('page''');
        
$enabled = (isset($config['vote_enabled'])) ? (boolean)$config['vote_enabled'] : true;
        
$max_gp = (isset($config['vote_max_gp'])) ? $config['vote_max_gp'] : 4;
        
$min_gp = (isset($config['vote_min_gp'])) ? $config['vote_min_gp'] : 1;
        
$minimum_level = (isset($config['vote_minimum_level'])) ? (int)$config['vote_minimum_level'] : 0;
        
$minimum_play_min = (isset($config['vote_minimum_play_min'])) ? (int)$config['vote_minimum_play_min'] : 0;

        
# Get the game points information
        
$giveGamePoints 0;

        if (
$max_gp <= 0) {
            
$max_gp 4;
        }

        if (
$min_gp <= 0) {
            
$min_gp 1;
        }

        if (
$max_gp $min_gp) {
            
$max_gp $min_gp;
        }

        if (
$max_gp || $min_gp 1) {
            
$giveGamePoints random_float($min_gp$max_gp);
        } else {
            
$giveGamePoints rand($min_gp$max_gp);
        }

        
# Enable or disable this feature
        
if(!$enabled) {
            
$out .= message(_l('Sorry, this feature has been disabled by the administrator.'), _l('Disabled'), 'warning');
            return 
0;
        }

        
# Let's check the character's level and play min
        
if($minimum_level || $minimum_play_min 0) {
            
connectdatadb();
            
$char_sql sprintf("SELECT B.Lv, G.TotalPlayMin FROM tbl_base AS B INNER JOIN tbl_general as G ON B.serial = G.serial WHERE B.DCK = 0 AND B.AccountSerial = %d"$userdata['serial']);
            if(!(
$char_query mssql_query($char_sql))) {
                
$out .= sql_error('An SQL ERROR Occurred query character database');
                return 
0;
            }

            
# Accumulated variables
            
$totalPlayMin 0;
            
$highestLevel 0;

            
# Loop through data
            
while($row mssql_fetch_array($char_query)) {
                if(
$row['Lv'] > $highestLevel) {
                    
$highestLevel = (int)$row['Lv'];
                }
                
$totalPlayMin += $row['TotalPlayMin'];
            }

            
# Do checks now: Minimum play min
            
if($minimum_play_min && $totalPlayMin $minimum_play_min) {
                
$out .= message(_l('Sorry, you need a total accumulated play time of %d minutes to vote. You currently only have %d minutes.'$minimum_play_min$totalPlayMin), _l('Vote Requirements Not Meet'), 'warning');
                return 
0;
            }

            
# Minimum level
            
if($minimum_level && $highestLevel $minimum_level) {
                
$out .= message(_l('Sorry, you need at least one level %d character to vote. Your highest character currently is only level %d.'$minimum_level$highestLevel), _l('Vote Requirements Not Meet'), 'warning');
                return 
0;
            }
        }

        
# Fetch our classes...
        
connectgamecpdb();
        
$site_sql "SELECT vote_id, vote_site_name, vote_site_url, vote_site_image, vote_reset_time FROM gamecp_vote_sites";
        if(!(
$site_query mssql_query($site_sql$gamecp_dbconnect))) {
            
$out .= sql_error('An SQL ERROR Occurred query the vote sites database');
            return 
0;
        }

        
# Loop through our class data
        
$voteSites = array();
        while (
$site mssql_fetch_array($site_query)) {
            
$voteSites[$site['vote_id']] = $site;
        }

        
# Total vote sites
        
$totalVoteSites count($voteSites);
        if(
$totalVoteSites == 0) {
            
$out .= message(_l('Sorry, no vote sites have been added so this feature has been disabled.'), _l('Disabled'), 'warning');
            return 
0;
        }

        
# Fetch user's vote info
        
$vote_sql sprintf("SELECT user_id, user_points, user_vote_timestamp FROM gamecp_gamepoints WHERE user_account_id = '%d'"$userdata['serial']);
        if(!(
$vote_query mssql_query($vote_sql$gamecp_dbconnect))) {
            
$out .= sql_error('An SQL ERROR Occurred query the user vote sites database');
            return 
0;
        }

        if(!(
$userVote mssql_fetch_array($vote_query))) {
            
$out .= message(_l('Error occurred when attempting to fetch your vote site information.'), _l('Error'), 'warning');
            return 
0;
        }

        
# Gather the user info
        
$userVoteTimeStamp = (isset($userVote['user_vote_timestamp'])) ? trim($userVote['user_vote_timestamp']) : '';

        
# Split the user's vote timestamps into an array
        
$split_raw_timestamp explode(","$userVoteTimeStamp);

        
$userSplitTimeStamps = array();
        for (
$i 0$i count($split_raw_timestamp); $i++) {
            if(
$split_raw_timestamp[$i] == '') {
                continue;
            }
            
$split_info explode(":"$split_raw_timestamp[$i]);
            
$split_id[] = $split_info[0];
            
$userSplitTimeStamps[$split_info[0]] = $split_info[1];
        }

        
# Vote for site
        
if($page == 'vote-now') {

            
# User data
            
$vote_id request_var('vote_id'0);

            
# Triggers / Data
            
$voted false;
            
$insertTimestamp '';
            
$redirectUrl '';

            
# We may have a first time user, so the timestamp data might be empty
            # Thus, we need to treat them differently (no comparison and checks needed)
            
if(empty($userSplitTimeStamps)) {

                foreach(
$voteSites as $site) {
                    
# If the vote id matches, we'll add the current timestamp, else 0
                    
if($vote_id == $site['vote_id']) {
                        
$insertTimestamp .= $site['vote_id'].':'.time();
                        
$redirectUrl $site['vote_site_url'];
                        
$voted true;
                    } else {
                        
$insertTimestamp .= $site['vote_id'].':'.'0';
                    }

                    
# Add ending comma
                    
$insertTimestamp .= ', ';
                }

                
# If voted is true
                
if($voted == true) {
                    
# Remove last comma in the statement
                    
$insertTimestamp substr(trim($insertTimestamp), 0, -1);

                    
# Update the game cp database
                    
$update_sql sprintf("UPDATE gamecp_gamepoints SET user_vote_timestamp = '%s', user_points = user_points + %d WHERE user_account_id = '%d'"$insertTimestamp$giveGamePoints$userdata['serial']);
                    if(!(
$update_query mssql_query($update_sql$gamecp_dbconnect))) {
                        
$out .= sql_error('An SQL ERROR Occurred update the game points database');
                        return 
0;
                    } else {
                        
log_vote($user_serial$ip$giveGamePoints, ($userdata['user_points'] + $giveGamePoints));
                        
header("Location: ".$redirectUrl);
                    }
                } else {
                    echo 
message(_l('Could not find the vote site you selected.'), _l('Vote Failed'), 'warning');
                }

            } else {

                foreach(
$voteSites as $site) {
                    
# If the vote id matches, we'll add the current timestamp, else 0
                    
if($vote_id == $site['vote_id']) {
                        
# Get time difference
                        
$time_difference = (time() - $userSplitTimeStamps[$site['vote_id']]);

                        
# Have we voted?
                        
if($time_difference >= $site['vote_reset_time']) {
                            
$insertTimestamp .= $site['vote_id'].':'.time();
                            
$redirectUrl $site['vote_site_url'];
                            
$voted true;
                        }
                    } else {
                        
$timestamp = (isset($userSplitTimeStamps[$site['vote_id']])) ? $userSplitTimeStamps[$site['vote_id']] : '0';
                        
$insertTimestamp .= $site['vote_id'].':'.$timestamp;
                    }

                    
# Add ending comma
                    
$insertTimestamp .= ',';
                }

                
# If voted is true
                
if($voted == true) {
                    
# Remove last comma in the statement
                    
$insertTimestamp substr(trim($insertTimestamp), 0, -1);

                    
# Update the game cp database
                    
$update_sql sprintf("UPDATE gamecp_gamepoints SET user_vote_timestamp = '%s', user_points = user_points + %d WHERE user_account_id = '%d'"$insertTimestamp$giveGamePoints$userdata['serial']);
                    if(!(
$update_query mssql_query($update_sql$gamecp_dbconnect))) {
                        
$out .= sql_error('An SQL ERROR Occurred update the game points database');
                        return 
0;
                    } else {
                        
log_vote($user_serial$ip$giveGamePoints, ($userdata['user_points'] + $giveGamePoints));
                        
header("Location: ".$redirectUrl);
                    }

                } else {
                    echo 
message(_l('You have either already voted for this site or the site you selected does not exist.'), _l('Vote Failed'), 'warning');
                }

            }

        
# Default page
        
} else {

            echo 
'<div class="row">';
            
$inc 0;
            foreach(
$voteSites as $site) {
                
$userTimeStamp = (isset($userSplitTimeStamps[$site['vote_id']])) ? $userSplitTimeStamps[$site['vote_id']] : 0;
                
$time_difference = (time() - $userTimeStamp);
                echo 
'<form method="POST" action="?do='.$do.'&page=vote-now">';
                echo 
'  <div class="col-sm-6 col-md-4">';
                echo 
'      <div class="thumbnail">';
                echo 
'          <div class="caption">';
                echo 
'              <h3 class="text-center">'.$site['vote_site_name'].'</h3>';
                echo 
'              <p class="text-center">';
                if(
$time_difference $site['vote_reset_time']) {
                    
$time_remaining hrs_mins_secs($site['vote_reset_time'] - $time_difference);
                    echo 
'                  <button name="vote_id" value="'.$site['vote_id'].'" class="btn btn-primary" disabled="disabled" role="button">' $time_remaining['hours'] . ' Hr ' $time_remaining['minutes'] . ' Min ' $time_remaining['seconds'] . ' Sec</button>';
                } else {
                    echo 
'                  <button type="submit" name="vote_id" value="'.$site['vote_id'].'" class="btn btn-primary" role="button">Vote Now</button>';
                }
                echo 
'              </p>';
                echo 
'          </div>';
                echo 
'      </div>';
                echo 
'  </div>';
                echo 
'</form>';
                
$inc++;
            }
            echo 
'</div>';

        }

    } else {

        echo 
_l('no_permission');

    }

} else {

    echo 
_l('invalid_page_load');

}

# Append data to the $out variable
$out .= ob_get_contents();
ob_end_clean();


Отправлено: 22:45, 05-07-2020

 

Новый участник


Сообщения: 20
Благодарности: 5

Профиль | Отправить PM | Цитировать


Чтобы форма отправлялась в новое окно, достаточно для тега form дописать атрибут target="_blank"
А поводу ошибки в PHP - смотрите на что конкретно ругается. По крайней мере, в строке
PHP код: Выделить весь код

echo '<button type="submit" name="vote_id" value="'.$site['vote_id'].'" class="btn btn-primary" role="button">Vote Now</button>'

ошибки нет (если, конечно, $site['vote_id'] существует).
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 05-07-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо, заработало, открывает в новой вкладке после такого изменения

echo '<form method="POST" action="?do='.$do.'&page=vote-now">';

в

echo '<form method="POST" target="_blank" action="?do='.$do.'&page=vote-now">';

А есть инфа, как открывать новое окно? Или фреймом (что наверно одно и то же)

Отправлено: 23:46, 05-07-2020 | #3


Новый участник


Сообщения: 20
Благодарности: 5

Профиль | Отправить PM | Цитировать


С помощью javascript открываете новое окно
HTML код: Выделить весь код
<script> window.open('url', 'name'); </script>

где вместо url подставляете адрес, а вместо name задаете имя окна.
А затем можете это имя подставить в атрибут target (вместо _blank).

Отправлено: 16:05, 07-07-2020 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » php кнопка с открытием в новом окне

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Папки открываются в новом окне Blast Microsoft Windows 7 151 10-03-2016 17:33
Интернет - K-Meleon - открывает ссылки в новом окне CyraxZ Программное обеспечение Windows 9 22-09-2015 13:10
Интерфейс - Локальные диски открываются в новом окне Cheling Лечение систем от вредоносных программ 15 11-07-2008 13:37
открывать ссилку в новом окне AlexSaaa Вебмастеру 1 04-12-2005 17:19
фреймы+PHP+распечатка в новом окне Demiurg Вебмастеру 5 17-10-2005 13:55




 
Переход