diff options
Diffstat (limited to 'admin/install.php')
-rw-r--r-- | admin/install.php | 599 |
1 files changed, 599 insertions, 0 deletions
diff --git a/admin/install.php b/admin/install.php new file mode 100644 index 000000000..c87a63bbd --- /dev/null +++ b/admin/install.php @@ -0,0 +1,599 @@ +<?php +/*************************************************************************** + * install_step1.php is a part of PhpWebGallery * + * ------------------- * + * last update : Tuesday, July 16, 2002 * + * email : pierrick@z0rglub.com * + * * + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; * + * * + ***************************************************************************/ + function header_install() + { + $output = " +<html> + <head> + <title>PhpWebGallery 1.2</title> + <style> + a + { + text-decoration : none; + color : #006699; + } + a:hover + { + text-decoration : underline; + } + body,table,input,form,select,textarea + { + font-family : Arial, Verdana, Sans-Serif; + font-size : 12px; + } + .miniature + { + border : solid 1px black; + } + body + { + background-color : #E5E5E5; + } + .titretable1 + { + color : black; + background-color : #D3DCE3; + text-align : center; + border : 2px solid #006699; + } + .grostitre + { + text-align : center; + font-size : 20px; + margin-bottom : 20px; + } + .plan + { + margin : 10px 10px 10px 2px; + white-space : nowrap; + } + .table1 + { + border-collapse : collapse; + background-color : #FFFFFF; + } + .contenucellule + { + background-color : #EEEEEE; + border : 2px solid #006699; + } + .style1 + { + margin-top : 20px; + } + th + { + font-weight : bold; + background-color : #D3DCE3; + } + td.row1 + { + background-color : #DDDDDD; + } + td.row2 + { + background-color : #E8E8E8; + } + .cat_plan + { + font-weight : bold; + } + .retrait + { + margin : 10px; + margin-left : 30px; + margin-top : 2px; + } + input,textarea + { + border-width : 1; + border-color : #000000; + background : #ffffff; + color: #000000; + } + .erreur + { + color : red; + text-align : center; + } + .info + { + color : darkblue; + text-align : center; + } + </style> + </head> + <body> + <table style=\"width:100%;height:100%\"> + <tr align=\"center\" valign=\"middle\"> + <td> + <div class=\"grostitre\">PhpWebGallery 1.2</div> + <table width=\"700\" class=\"table1\" style=\"margin:auto;\"> + <tr> + <td class=\"contenucellule\">"; + return $output; + } + + function footer_install() + { + $output = " + </td> + </tr> + </table> + </td> + </tr> + </table> + </body> +</html>"; + return $output; + } + + if ( isset( $HTTP_GET_VARS['language'] ) ) + { + $isadmin = true; + $lang = array(); + include( "../language/".$HTTP_GET_VARS['language'].".php" ); + } + + /*---------------------------------------Step 1------------------------------------*/ + if ( $HTTP_GET_VARS['step'] == 1 ) + { + $erreur1 = true; + $message = ""; + // création du fichier de configuration de connexion à la BD mysql + if( isset( $HTTP_POST_VARS['cfgBase'] ) && isset( $HTTP_POST_VARS['cfgUser'] ) && isset( $HTTP_POST_VARS['cfgPassword'] ) && isset( $HTTP_POST_VARS['cfgHote'] ) ) + { + if ( @mysql_connect( $HTTP_POST_VARS['cfgHote'], $HTTP_POST_VARS['cfgUser'], $HTTP_POST_VARS['cfgPassword'] ) ) + { + if ( @mysql_select_db($HTTP_POST_VARS['cfgBase'] ) ) + { + $message.= "<div class=\"info\">".$lang['step1_confirmation']."</div>"; + $erreur1 = false; + } + else + { + $message.= "<div class=\"erreur\">".$lang['step1_err_db']."</div>"; + } + } + else + { + $message.= "<div class=\"erreur\">".$lang['step1_err_server']."</div>"; + } + + if ( !$erreur1 ) + { + // écriture du fichier de configuration + if ( $fp = @fopen("../include/mysql.inc.php","a+") ) + { + fwrite( $fp, "<?php\n\t\$cfgBase='".$HTTP_POST_VARS['cfgBase']."';\n\t\$cfgUser='".$HTTP_POST_VARS['cfgUser']."';\n\t\$cfgPassword='".$HTTP_POST_VARS['cfgPassword']."';\n\t\$cfgHote='".$HTTP_POST_VARS['cfgHote']."';\n\t\$prefixeTable='".$HTTP_POST_VARS['prefixe']."';\n?>" ); + fclose( $fp ); + } + $cfgHote = ""; + $cfgUser = ""; + $cfgPassword = ""; + $cfgBase = ""; + include ( "../include/mysql.inc.php" ); + $erreur2 = true; + if ( @mysql_connect( $cfgHote, $cfgUser, $cfgPassword ) ) + { + if ( @mysql_select_db ( $cfgBase ) ) + { + $erreur2 = false; + } + } + if ( $erreur2 ) + { + $message.="<br /><br />".$lang['step1_err_copy']." :<br /> + -----------------------------------------------------<br /> + <div style=\"color:blue;\"><?php<br /> + \$cfgBase = '".$HTTP_POST_VARS['cfgBase']."';<br /> + \$cfgUser = '".$HTTP_POST_VARS['cfgUser']."';<br /> + \$cfgPassword = '".$HTTP_POST_VARS['cfgPassword']."';<br /> + \$cfgHote = '".$HTTP_POST_VARS['cfgHote']."';<br /> + \$prefixeTable = '".$HTTP_POST_VARS['prefixe']."';<br /> + ?></div> + -----------------------------------------------------<br />"; + $message.= "<div style=\"text-align:center;\">".$lang['step1_err_copy_2']."<br />"; + $message.= "<a href=\"install.php?step=2&language=".$HTTP_GET_VARS['language']."\">".$lang['step1_err_copy_next']."</a></div>"; + } + else + { + $url = "install.php?step=2&language=".$HTTP_GET_VARS['language']; + header("Request-URI: $url"); + header("Content-Location: $url"); + header("Location: $url"); + exit(); + } + } + } + + echo header_install(); + if ( isset( $message ) && $message != "" ) + { + echo" + <table width=\"100%\"> + <tr> + <th>".$lang['install_message']."</th> + </tr> + <tr> + <td>$message</td> + </tr> + </table>"; + } + if ( $erreur1 ) + { + echo" + <form method=\"post\" action=\"install.php?step=1&language=".$HTTP_GET_VARS['language']."\"> + <table width=\"100%\"> + <tr> + <th colspan=\"3\">".$lang['step1_title']."</th> + </tr> + <tr> + <td colspan=\"3\"> </th> + </tr> + <tr> + <td>".$lang['step1_host']."</td> + <td align=center><input type='text' name='cfgHote' value='"; + if ( !isset( $HTTP_POST_VARS['cfgHote'] ) ) + { + echo"localhost"; + } + else + { + echo $HTTP_POST_VARS['cfgHote']; + } + echo"'></td> + <td class=\"row2\">".$lang['step1_host_info']."</td> + </tr> + <tr> + <td>".$lang['step1_user']."</td> + <td align=center><input type='text' name='cfgUser' value='".$HTTP_POST_VARS['cfgUser']."'></td> + <td class=\"row2\">".$lang['step1_user_info']."</td> + </tr> + <tr> + <td>".$lang['step1_pass']."</td> + <td align=center><input type='password' name='cfgPassword' value=''></td> + <td class=\"row2\">".$lang['step1_pass_info']."</td> + </tr> + <tr> + <td>".$lang['step1_database']."</td> + <td align=center><input type='text' name='cfgBase' value='".$HTTP_POST_VARS['cfgBase']."'></td> + <td class=\"row2\">".$lang['step1_database_info']."</td> + </tr> + <tr> + <td>".$lang['step1_prefix']."</td> + <td align=center><input type='text' name='prefixe' value='"; + if ( !isset( $HTTP_POST_VARS['prefixe'] ) ) + { + echo"phpwebgallery_"; + } + else + { + echo $HTTP_POST_VARS['prefixe']; + } + echo"'></td> + <td class=\"row2\">".$lang['step1_prefix_info']."</td> + </tr> + <tr> + <td colspan=\"3\"> </th> + </tr> + <tr> + <td colspan=3 align=center><input type='submit' name='Valider' value=\"".$lang['submit']." *\"></td> + </tr> + </table> + </form>"; + } + echo footer_install(); + } + /*---------------------------------------Step 2------------------------------------*/ + else if ( $HTTP_GET_VARS['step'] == 2 ) + { + include( "../include/mysql.inc.php" ); + mysql_connect( $cfgHote, $cfgUser, $cfgPassword ) or die ( "erreur de connexion au serveur" ); + mysql_select_db( $cfgBase ) or die ( "erreur de connexion a la base de donnees" ); + + if ( !isset( $HTTP_POST_VARS['submit'] ) ) + { + $query = "CREATE TABLE ".$prefixeTable."categories ( + id tinyint(3) unsigned NOT NULL auto_increment, + date_dernier date NOT NULL default '0000-00-00', + nb_images smallint(5) unsigned NOT NULL default '0', + name varchar(255) default NULL, + id_uppercat tinyint(3) unsigned default NULL, + comment text, + dir varchar(255) NOT NULL default '', + rank tinyint(3) unsigned default NULL, + status enum('visible','invisible') NOT NULL default 'visible', + site_id tinyint(4) unsigned NOT NULL default '1', + PRIMARY KEY (id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."comments ( + id int(11) unsigned NOT NULL auto_increment, + image_id smallint(5) unsigned NOT NULL default '0', + date int(11) unsigned NOT NULL default '0', + author varchar(255) NOT NULL default '', + content longtext, + PRIMARY KEY (id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."config ( + periode_courte smallint(5) unsigned NOT NULL default '7', + periode_longue smallint(5) unsigned NOT NULL default '14', + prefixe_thumbnail varchar(10) NOT NULL default 'TN-', + webmaster varchar(255) NOT NULL default '', + mail_webmaster varchar(255) NOT NULL default '', + acces enum('libre','restreint') NOT NULL default 'libre', + session_id_size tinyint(3) unsigned NOT NULL default '4', + session_keyword varchar(255) NOT NULL default '', + session_time tinyint(3) unsigned NOT NULL default '30', + max_user_listbox tinyint(3) unsigned NOT NULL default '10', + expand enum('true','false') NOT NULL default 'false', + show_comments enum('true','false') NOT NULL default 'true', + nb_comment_page tinyint(4) NOT NULL default '10', + upload_available enum('true','false') NOT NULL default 'false', + upload_maxfilesize smallint(5) unsigned NOT NULL default '150', + upload_maxwidth smallint(5) unsigned NOT NULL default '800', + upload_maxheight smallint(5) unsigned NOT NULL default '600', + upload_maxwidth_thumbnail smallint(5) unsigned NOT NULL default '150', + upload_maxheight_thumbnail smallint(5) unsigned NOT NULL default '100' + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."favorites ( + user_id smallint(5) unsigned NOT NULL default '0', + image_id smallint(5) unsigned NOT NULL default '0', + KEY user_id (user_id,image_id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."history ( + date int(11) NOT NULL default '0', + login varchar(15) default NULL, + IP varchar(50) NOT NULL default '', + categorie varchar(150) default NULL, + page varchar(50) default NULL, + titre varchar(150) default NULL, + commentaire varchar(200) default NULL + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."images ( + id smallint(5) unsigned NOT NULL auto_increment, + file varchar(255) NOT NULL default '', + cat_id tinyint(3) unsigned NOT NULL default '0', + date_available date NOT NULL default '0000-00-00', + date_creation date default NULL, + tn_ext char(3) NOT NULL default 'jpg', + name varchar(255) default NULL, + comment varchar(255) default NULL, + author varchar(255) default NULL, + hit int(10) unsigned NOT NULL default '0', + filesize mediumint(9) unsigned default NULL, + width smallint(9) unsigned default NULL, + height smallint(9) unsigned default NULL, + PRIMARY KEY (id), + KEY cat_id (cat_id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."restrictions ( + user_id smallint(5) unsigned NOT NULL default '0', + cat_id tinyint(3) unsigned NOT NULL default '0', + PRIMARY KEY (user_id,cat_id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."sessions ( + id varchar(255) binary NOT NULL default '', + user_id smallint(5) unsigned NOT NULL default '0', + expiration int(10) unsigned NOT NULL default '0', + ip varchar(255) NOT NULL default '', + PRIMARY KEY (id) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."sites ( + id tinyint(4) NOT NULL auto_increment, + galleries_url varchar(255) NOT NULL default '', + PRIMARY KEY (id), + UNIQUE KEY galleries_url (galleries_url) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."users ( + id smallint(5) unsigned NOT NULL auto_increment, + pseudo varchar(20) binary NOT NULL default '', + password varchar(255) NOT NULL default '', + mail_address varchar(255) default NULL, + nombre_image_ligne tinyint(1) unsigned NOT NULL default '5', + nombre_ligne_page tinyint(3) unsigned NOT NULL default '3', + theme varchar(255) NOT NULL default 'melodie/blue', + status enum('admin','membre','visiteur') NOT NULL default 'visiteur', + language varchar(50) NOT NULL default 'english', + maxwidth smallint(6) default NULL, + maxheight smallint(6) default NULL, + PRIMARY KEY (id), + UNIQUE KEY pseudo (pseudo) + );"; + mysql_query( $query ); + $query = "CREATE TABLE ".$prefixeTable."waiting ( + id int(10) unsigned NOT NULL auto_increment, + cat_id tinyint(3) unsigned NOT NULL default '0', + file varchar(255) NOT NULL default '', + username varchar(255) NOT NULL default '', + mail_address varchar(255) NOT NULL default '', + date int(10) unsigned NOT NULL default '0', + tn_ext char(3) default NULL, + PRIMARY KEY (id) + );"; + mysql_query( $query ); + } + if ( isset( $HTTP_POST_VARS['submit'] ) ) + { + $configuration = false; + $erreur = ""; + $nb_erreur = 0; + // le pseudo du webmaster ne doit pas + // 1. être vide + // 2. commencer ou se terminer par un espace + // 3. comporter les caractères ' ou " + // Notes sur le pseudo du webmaster : + // - lorsque l'on trouve plusieurs occurences + // consécutives du caractère espace, on réduit à une seule occurence + if ( $HTTP_POST_VARS['webmaster'] == "" ) + { + $erreur .= "<li>".$lang['step2_err_login1']."</li>"; + $nb_erreur++; + } + $webmaster = ereg_replace( "[ ]{2,}", " ", $HTTP_POST_VARS['webmaster'] ); + if ( ereg( "^.* $", $webmaster ) || ereg( "^ .*$", $webmaster) ) + { + $erreur .= "<li>".$lang['step2_err_login2']."</li>"; + $nb_erreur++; + } + if ( ereg( "'",$webmaster ) || ereg( "\"",$webmaster ) ) + { + $erreur .= "<li>".$lang['step2_err_login3']."</li>"; + $nb_erreur++; + } + // on vérifie que le password rentré correspond bien à la confirmation faite par l'utilisateur + if ( $HTTP_POST_VARS['pwdWebmaster'] != $HTTP_POST_VARS['pwdWebmasterConf'] ) + { + $erreur .= "<li>".$lang['step2_err_pass']."</li>"; + $nb_erreur++; + } + // le mail doit être conforme à qqch du type : nom@serveur.com + if( !ereg("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)", $HTTP_POST_VARS['mail_webmaster'] ) ) + { + $erreur .= "<li>".$lang['step2_err_mail']."</li>"; + $nb_erreur++; + } + // on met à jour les paramètres de l'application dans le cas où il n'y aucune erreur + if ( $nb_erreur == 0 ) + { + mysql_query( "delete from $prefixeTable"."config" ); + $query = "insert into $prefixeTable"."config (webmaster,mail_webmaster) values ('$webmaster','".$HTTP_POST_VARS['mail_webmaster']."')"; + mysql_query($query); + $query = "insert into $prefixeTable"."sites values (1, './galleries/');"; + mysql_query($query); + $query = "insert into $prefixeTable"."users (pseudo,password,status,language) values ('$webmaster','".md5( $pwdWebmaster )."','admin','".$HTTP_GET_VARS['language']."')"; + mysql_query($query); + mysql_query("insert into $prefixeTable"."users (pseudo,password,status,language) values ('visiteur','".md5( "" )."','visiteur','".$HTTP_GET_VARS['language']."')"); + $configuration = true; + } + } + + echo header_install(); + if ( $configuration ) + { + echo" + <table width=\"100%\"> + <tr> + <th>".$lang['install_end_title']."</th> + </tr> + <tr> + <td> </th> + </tr> + <tr> + <td>".$lang['install_end_message']."</td> + </tr> + </table>"; + } + else + { + if ( $nb_erreur > 0 ) + { + echo" + <table width=100%> + <tr> + <th>".$lang['install_message']."</th> + </tr> + <tr> + <td> </td> + </tr> + <tr> + <td>$erreur</td> + </tr> + <tr> + <td> </td> + </tr> + </table>"; + } + echo" + <form method=\"post\" action=\"install.php?step=2&language=".$HTTP_GET_VARS['language']."\"> + <table width=100%> + <tr> + <th colspan=\"3\">".$lang['step2_title']."</th> + </tr> + <tr> + <td colspan=\"3\"> </td> + </tr> + <tr> + <td>".$lang['conf_general_webmaster']."</td> + <td align=\"center\"><input type='text' name='webmaster' value=\"".$HTTP_POST_VARS['webmaster']."\"></td> + <td class=\"row2\">".$lang['conf_general_webmaster_info']."</td> + </tr> + <tr> + <td>".$lang['step2_pwd']."</td> + <td align=center><input type='password' name='pwdWebmaster' value=''></td> + <td class=\"row2\">".$lang['step2_pwd_info']."</td> + </tr> + <tr> + <td>".$lang['step2_pwd_conf']."</td> + <td align=center><input type='password' name='pwdWebmasterConf' value=''></td> + <td class=\"row2\">".$lang['step2_pwd_conf_info']."</td> + </tr> + <tr> + <td>".$lang['conf_general_mail']."</td> + <td align=center><input type='text' name='mail_webmaster' value=\"".$HTTP_POST_VARS['mail_webmaster']."\"></td> + <td class=\"row2\">".$lang['conf_general_mail_info']."</td> + </tr> + <tr> + <td colspan=\"3\"> </th> + </tr> + <tr> + <td colspan=3 align=center> + <input type='submit' name='submit' value='".$lang['submit']."'> + </td> + </tr> + </table> + </form>"; + } + echo footer_install(); + } + /*----------------------------------Language choice------------------------------------*/ + else + { + include( "../include/functions.php" ); + echo header_install(); + echo" + <form method=\"get\" action=\"install.php\"> + <input type=\"hidden\" name=\"step\" value=\"1\"/> + <table width=\"100%\"> + <tr> + <td align=\"center\"> + <select name=\"language\">"; + $languages = get_languages( "../language/" ); + for ( $i = 0; $i < sizeof ( $languages ); $i++ ) + { + echo" + <option>".$languages[$i]."</option>"; + } + echo" + </select> + <input type=\"submit\" value=\"Go\"> + </td> + </tr> + </table> + </form>"; + echo footer_install(); + } +?>
\ No newline at end of file |