Completed
Pull Request — master (#2282)
by ྅༻ Ǭɀħ
01:46
created

admin/upgrade.php (2 issues)

Labels
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
define( 'YOURLS_ADMIN', true );
3
define( 'YOURLS_UPGRADING', true );
4
require_once( dirname( __DIR__ ).'/includes/load-yourls.php' );
5
require_once( YOURLS_INC.'/functions-upgrade.php' );
6
require_once( YOURLS_INC.'/functions-install.php' );
7
yourls_maybe_require_auth();
8
9
yourls_html_head( 'upgrade', yourls__( 'Upgrade YOURLS' ) );
10
yourls_html_logo();
11
yourls_html_menu();
12
?>
13
		<h2><?php yourls_e( 'Upgrade YOURLS' ); ?></h2>
14
<?php
15
16
// Check if upgrade is needed
17
if ( !yourls_upgrade_is_needed() ) {
18
	echo '<p>' . yourls_s( 'Upgrade not required. Go <a href="%s">back to play</a>!', yourls_admin_url('index.php') ) . '</p>';
19
20
21
} else {
22
	/*
23
	step 1: create new tables and populate them, update old tables structure,
24
	step 2: convert each row of outdated tables if needed
25
	step 3: - if applicable finish updating outdated tables (indexes etc)
26
	        - update version & db_version in options, this is all done!
27
	*/
28
29
	// From what are we upgrading?
30
	if ( isset( $_GET['oldver'] ) && isset( $_GET['oldsql'] ) ) {
31
		$oldver = yourls_sanitize_version( $_GET['oldver'] );
32
		$oldsql = yourls_sanitize_version( $_GET['oldsql'] );
33
	} else {
34
		list( $oldver, $oldsql ) = yourls_get_current_version_from_sql();
35
	}
36
37
	// To what are we upgrading ?
38
	$newver = YOURLS_VERSION;
39
	$newsql = YOURLS_DB_VERSION;
40
41
	// Verbose & ugly details
42
    /**
43
     * @todo wrapper function to toggle $ydb->debug
44
     */
45
	yourls_debug_mode(true);
46
47
	// Let's go
48
	$step = ( isset( $_GET['step'] ) ? intval( $_GET['step'] ) : 0 );
49
	switch( $step ) {
50
51
		default:
52
		case 0:
53
			?>
54
			<p><?php yourls_e( 'Your current installation needs to be upgraded.' ); ?></p>
55
			<p><?php yourls_e( 'Please, pretty please, it is recommended that you <strong>backup</strong> your database<br/>(you should do this regularly anyway)' ); ?></p>
56
			<p><?php yourls_e( "Nothing awful <em>should</em> happen, but this doesn't mean it <em>won't</em> happen, right? ;)" ); ?></p>
57
			<p><?php yourls_e( "On every step, if <span class='error'>something goes wrong</span>, you'll see a message and hopefully a way to fix." ); ?></p>
58
			<p><?php yourls_e( 'If everything goes too fast and you cannot read, <span class="success">good for you</span>, let it go :)' ); ?></p>
59
			<p><?php yourls_e( 'Once you are ready, press "Upgrade" !' ); ?></p>
60
			<?php
61
			echo "
62
			<form action='upgrade.php?' method='get'>
63
			<input type='hidden' name='step' value='1' />
64
			<input type='hidden' name='oldver' value='$oldver' />
65
			<input type='hidden' name='newver' value='$newver' />
66
			<input type='hidden' name='oldsql' value='$oldsql' />
67
			<input type='hidden' name='newsql' value='$newsql' />
68
			<input type='submit' class='primary' value='" . yourls_esc_attr__( 'Upgrade' ) . "' />
69
			</form>";
70
71
			break;
72
73
		case 1:
74
		case 2:
75
			$upgrade = yourls_upgrade( $step, $oldver, $newver, $oldsql, $newsql );
0 ignored issues
show
Are you sure the assignment to $upgrade is correct as yourls_upgrade($step, $o...wver, $oldsql, $newsql) (which targets yourls_upgrade()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
76
			break;
77
78
		case 3:
79
			$upgrade = yourls_upgrade( 3, $oldver, $newver, $oldsql, $newsql );
0 ignored issues
show
Are you sure the assignment to $upgrade is correct as yourls_upgrade(3, $oldve...wver, $oldsql, $newsql) (which targets yourls_upgrade()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
80
			echo '<p>' . yourls__( 'Your installation is now up to date ! ' ) . '</p>';
81
			echo '<p>' . yourls_s( 'Go back to <a href="%s">the admin interface</a>', yourls_admin_url('index.php') ) . '</p>';
82
	}
83
84
}
85
86
87
?>
88
89
<?php yourls_html_footer(); ?>
90