Добрый день, поскольку у меня знаний маловато, и я можно сказать совсем не знаю переменных, прошу помощи в оформлении формы, которая регистрирует новый ящик на почтовом сервере, поскольку планирую вывести эту форму в блок на главную страницу table и tr сейчас форма выглядит так а хотелось бы нечто как здесь в форме входа я так понимаю что нужно оформить ввиде таблицы, но не знаю как это сделать хотел бы отделить шапку от тела таблицы, чтобы потом можно было в шапку вставить какой-нибудь лого почты(еще не придумал) ну и для кнопки Create тоже думаю нужно отедьную строку сделать в таблице, чтобы можно было добавить еще несколько кнопок. вот текущий код страницы Код (Text): <?php //MySQL Information: $mysql_host = "localhost"; //Host Name $mysql_user = "*****"; //Username $mysql_pass = "*****"; //Password $mysql_db = "hmail"; //Database //General Configuration: $form_title = "signup"; //Name for this form $account_max = "10000000"; //Maximum size per account (1000000 = 1MB -> Do not uses spaces or commas!) $admin_notify = 1; //1 = yes & 0 = no $admin_email = "admin@oldgamer.org"; //Administrators email to send notifications) $admin_default_activate = 1; //1 = yes & 0 = no -> If no, the administrator has to authorise the account $encryption = 2; //Password encryption level //DO NOT EDIT BELOW!// // Protect the Database and MD5 the password. $strName = addslashes( $_POST['name'] ); $strUser = addslashes( $_POST['user'] ); $strDomain = addslashes( $_POST['domain'] ); $strPass1 = addslashes( $_POST['pass1'] ); $strMD5Pass = md5( $strPass1 ); error_reporting(E_ALL ^ E_NOTICE); //Next two lines connect to database using information from above. $open = mysql_connect($mysql_host, $mysql_user, $mysql_pass); $select = mysql_select_db($mysql_db); IF (!$open || !$select) { echo "Unable to open database, contact your administrator!"; } ELSE { echo "<font size=\"+2\">$form_title</font><br><br>"; //Display form title from above //Decide On What Path To Take SWITCH ($_GET['mode']) { CASE "do": //#### PAGE IF FORM FILLED OUT ####// $q=mysql_query("SELECT * FROM `hm_domains` WHERE `domainid` = '{$strDomain}' LIMIT 1"); //Load Domain Into memory (internal use) WHILE ($v=mysql_fetch_array($q)) { $temp_domain = $v['1']; } //Apply information $q2=mysql_query("SELECT * FROM `hm_accounts` WHERE `accountaddress` = '{$strUser}@$temp_domain' LIMIT 1"); //Check if account exists $v2=mysql_num_rows($q2); //Gets number of accounts that exist with that profile (should be less than or equal to one) IF ($v2 == 1) { echo "A user with this username already exists! <a href=\"javascript:history.go(-1)\">Go Back</a>"; } ELSE { IF (!$_POST['pass1'] || !$_POST['pass2']) { echo "You did not enter both passwords! <a href=\"javascript:history.go(-1)\">Go Back</a>"; } ELSEIF ($_POST['pass1'] <> $_POST['pass2']) { echo "Your passwords do not match! <a href=\"javascript:history.go(-1)\">Go Back</a>"; } ELSE { $q3=mysql_query("INSERT INTO `hm_accounts` (`accountdomainid`,`accountaddress`,`accountpassword`,`accountactive`,`accountisad`,`accountmaxsize`,`accountpwencryption`) VALUES ('$strDomain','$strUser@$temp_domain','$strMD5Pass','$admin_default_activate','0','$account_max','$encryption')") or die(mysql_error()); } } IF ($q3) { IF ($admin_default_activate == 0) { echo "Your account has been created <b>however requires administrator activation.</b> You should receive a message soon regarding this."; } ELSE { echo "Your account has been created and is ready for use!<br><br>Username: $strUser@$temp_domain<br><br>Webmail: <a href=\"$serv_webmail/mail\">www.$temp_domain/mail</a><br>POP3: mail.$temp_domain<br>IMAP: mail.$temp_domain<br><br>SMTP: mail.$temp_domain"; $subject = "Welcome To MYWEBSITE!"; $message = "This is confirmation that your account has been created."; mail("{$_POST['user']}@$temp_domain", $subject, $message); //Send welcome message } } ELSE { echo "Database error, unable to add account. Please contact your administrator!"; } IF ($admin_default_activate == 0 && $admin_notify == 0) { $admin_mail_subject = "Account Requires Activation!"; $admin_mail_message = "{$_POST['user']}@$temp_domain has been created by {$_POST['name']} and needs to be activated!"; mail($admin_email, $admin_mail_subject, $admin_mail_message); } ELSEIF ($admin_default_activate == 1 && $admin_notify == 1) { $admin_mail_subject = "New Account Created!"; $admin_mail_message = "{$_POST['user']}@$temp_domain has been created by {$_POST['name']}!"; mail($admin_email, $admin_mail_subject, $admin_mail_message); } ELSEIF ($admin_default_activate == 0 && $admin_notify == 1) { $admin_mail_subject = "New Account Created!"; $admin_mail_message = "{$_POST['user']}@$temp_domain has been created by {$_POST['name']}!"; mail($admin_email, $admin_mail_subject, $admin_mail_message); } break; DEFAULT: } } //#### MAIN PAGE IF FORM NOT FILLED OUT ####// echo " <div align=\"justify\"><form action=\"?mode=do\" method=\"POST\"> Your Name: <input type=\"text\" name=\"name\" size=\"21\"><br> E-Mail: <input type=\"text\" name=\"user\" size=\"21\"> @ <select name=\"domain\"> "; $q2=mysql_query("SELECT * FROM `hm_domains` WHERE `domainactive` = '1' ORDER BY `domainname` DESC"); //Load avaliable domains into memory WHILE ($v2=mysql_fetch_array($q2)) //Display avaliable domains { echo "<option value=\"{$v2['0']}\">{$v2['1']}</option>"; } echo " </select><br> Password: <input type=\"password\" name=\"pass1\" size=\"21\"><br> Password: <input type=\"password\" name=\"pass2\" size=\"21\"> (For Confirmation)<br><br> <input type=\"submit\" value=\"Create Account\"> </form></div> "; ?> и еще момент, если меняю названия полей с английского на русский, то в браузере кракозябры, как установить нормальную кодировку для страницы?
так понимаю за рассположение всей формы отвечает то что идет после Код (Text): //#### MAIN PAGE IF FORM NOT FILLED OUT ####// тут и нужно редактировать
вроде бы сам оформил вот так получилось Код (Text): //#### MAIN PAGE IF FORM NOT FILLED OUT ####// echo " <div align=\"center\"><table width=355 height=148 border=0 align=left cellpadding=0 cellspacing=2 bgcolor=#F0F0F0> <tr> <td valign=top><table width=355 height=1 border=0 cellpadding=0 cellspacing=0 bgcolor=#CCE6F6> <tr> <td height=1><div align=center><font size=\"+1\">$form_title</font></div></td> <tr> <td valign=top><table width=355 height=1 border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF> </tr> </table></td> </tr> </table></div> <form action=\"?mode=do\" method=\"POST\"> Your Name: <input type=\"text\" name=\"name\" size=\"21\"><br> E-Mail: <input type=\"text\" name=\"user\" size=\"21\"> @ <select name=\"domain\"> "; $q2=mysql_query("SELECT * FROM `hm_domains` WHERE `domainactive` = '1' ORDER BY `domainname` DESC"); //Load avaliable domains into memory WHILE ($v2=mysql_fetch_array($q2)) //Display avaliable domains { echo "<option value=\"{$v2['0']}\">{$v2['1']}</option>"; } echo " </select><br> Password: <input type=\"password\" name=\"pass1\" size=\"21\"><br> Password: <input type=\"password\" name=\"pass2\" size=\"21\"> (For Confirmation)<br><br> <input type=\"submit\" value=\"Create Account\"> </form> "; ?> правда не получается выровнять таблицу посредине, с помощью <div align=" подскажите как выровнять ее по центру? результат оформления можно глянуть здесь
странно, добавил в тег, получилось так Код (Text): <table style=\"margin: 0 auto;\" width=350 height=148 border=0 align=left cellpadding=0 cellspacing=2 bgcolor=#F0F0F0> <tr> <td valign=top><table style=\"margin: 0 auto;\" width=350 height=1 border=0 cellpadding=0 cellspacing=0 bgcolor=#CCE6F6> <tr> <td height=1><div align=center><font size=\"+1\">$form_title</font></div></td> <tr> <td valign=top><table style=\"margin: 0 auto;\" width=350 height=1 border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF> </tr> </table></td> </tr> но ничего не выровнялось
в общем вот что получилось, помогите подправить косяки после интеграции html вот код текста который оформляет форму таблицы Код (Text): //#### MAIN PAGE IF FORM NOT FILLED OUT ####// echo " <!DOCTYPE html> <html> <head> <title>Example HTML 5 document</title> <style> *{ margin:0; padding:0; font:11px Verdana,Geneva,Arial,Helvetica,sans-serif; } form{ margin:10% auto 0; -moz-outline-radius:10px; background-color:rgba(51,51,51,.9); border:1px solid rgba(25,25,25,.7); border-radius:10px; width:350px; padding:5px 10px 10px; } h1{ background-color:rgba(25,25,25,.4); border:1px solid rgba(25,25,25,.3); border-radius:10px; font-weight:bold; font-size:13px; height:16px; margin:0 -5px 10px; padding:5px 0; text-align:center; color:white; } div{ height:18px; margin:2px 0; } input:not(#createAccount), select, span{ height:16px; border:1px solid rgba(25,25,25,.3); border-radius:3px; } #name, #password, #confirmPassword{ float:right; width:180px; } #eMail{ float:right; width:70px; } select{ float:right; width:98px; } span{ float:right; width:10px; display:inline-block; color:white; } label{ color:white; display:inline-block; width:168px; height:18px; line-height:18px; } #createAccount{ display:block; margin:16px auto 0; } </style> </head> <form action=\"?mode=do\" method=\"POST\"> <h1>Signup</h1> <div> <label for=\"name\">Your Name:</label> <input id=\"name\" name=\"name\" size=\"21\"> </div> <div> <label for=\"eMail\">E-Mail:</label> <select name=\"domain\"> <option value=\"1\">oldgamer.org</option> </select> <span>@</span> <input id=\"eMail\" name=\"user\" size=\"21\"> </div> <div> <label for=\"password\">Password:</label> <input id=\"password\" type=\"password\" name=\"pass1\" size=\"21\"> </div> <div> <label for=\"confirmPassword\">Confirm password:</label> <input id=\"confirmPassword\" type=\"password\" name=\"pass2\" size=\"21\"> </div> <input type=\"submit\" value=\"Create Account\" id=\"createAccount\"> </form> </html> "; $q2=mysql_query("SELECT * FROM `hm_domains` WHERE `domainactive` = '1' ORDER BY `domainname` DESC"); //Load avaliable domains into memory WHILE ($v2=mysql_fetch_array($q2)) //Display avaliable domains { echo "<option value=\"{$v2['0']}\">{$v2['1']}</option>"; } ?> воткак это выглядит сейчас а как должно поидее быть Строки как бы "съехали", но не смог дать ума почему это произошло, если они не отнимались и не добавлялись, и еще там где имя домена выбирается - последняя буква закрыта ("съедена") таблицей тоже непонятно почему %)
слишком много кода, который (к тому же) плохо оформлен, нечитабелен. попробуй для начала сделать просто статичную html страницу и обработать её. после того, как добьёшься нужного результата, просто скопируешь хтмл код в пхп. HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>TEST</title> <style type="text/css"> #login { border: solid 1px blue; margin: 0 auto; text-align: center; width: 100px; } </style> </head> <body> <div id="login">bla-bla-bla</div> </body> </html>
так вроде так и делал в html все нормально и таблица по центру и строки ровные, а как в php вставил, сразу и строки съехали и таблица убегла к левому краю.. html вставляется в echo " ..." ?
да особо неначего смотреть пока там (даже стыдно показывать) .с контентом напряг нешуточный почту вот решил поднять все с делал работает - как рега и веб-клиент, но проблема осталась в оформлении формы для регистрации ящика http://oldgamer.org/mail/signup.php форма логина вот тут http://oldgamer.org/mail/ -хотелось бы сделать также. вот в html код формы HTML: <!DOCTYPE html> <html> <head> <title>Example HTML 5 document</title> <style> *{ margin:0; padding:0; font:11px Verdana,Geneva,Arial,Helvetica,sans-serif; } form{ margin:10% auto 0; -moz-outline-radius:10px; background-color:rgba(51,51,51,.9); border:1px solid rgba(25,25,25,.7); border-radius:10px; width:350px; padding:5px 10px 10px; } h1{ background-color:rgba(25,25,25,.4); border:1px solid rgba(25,25,25,.3); border-radius:10px; font-weight:bold; font-size:13px; height:16px; margin:0 -5px 10px; padding:5px 0; text-align:center; color:white; } div{ height:18px; margin:2px 0; } input:not(#createAccount), select, span{ height:16px; border:1px solid rgba(25,25,25,.3); border-radius:3px; } #name, #password, #confirmPassword{ float:right; width:180px; } #eMail{ float:right; width:70px; } select{ float:right; width:98px; } span{ float:right; width:10px; display:inline-block; color:white; } label{ color:white; display:inline-block; width:168px; height:18px; line-height:18px; } #createAccount{ display:block; margin:16px auto 0; } </style> </head> <body> <form action="?mode=do" method="POST"> <h1>Signup</h1> <div> <label for="name">Your Name:</label> <input id="name" name="name" size="21"> </div> <div> <label for="eMail">E-Mail:</label> <select name="domain"> <option value="1">oldgamer.org</option> </select> <span>@</span> <input id="eMail" name="user" size="21"> </div> <div> <label for="password">Password:</label> <input id="password" type="password" name="pass1" size="21"> </div> <div> <label for="confirmPassword">Confirm password:</label> <input id="confirmPassword" type="password" name="pass2" size="21"> </div> <input type="submit" value="Create Account" id="createAccount"> </form> </body> </html>
но проблема как уже описал - даже в html надписи выше на строку чем поля в которые вносятся данные, не получается поправить. начинаю переписывать, блок летит к чертям(
Для начала посмотри исходный код страницы и найди там <font size="+2"></font><br><br> <!DOCTYPE html> и </html> <option value="1">oldgamer.org</option> второе посмотри на кроссбраузерность куда в сss3 полез?
Extremist чтобы во всех браузерах работало одинаково - обязательно пиши ДОКТАЙП в первой строчке кода. т.е. нужно выводить сразу echo '<!DOCTYPE...'; без переноса на новую строку. и доктайп нужно писать не просто а полностью, как в примере, который я дал: Доктайпов бывает 3 разных типа. К тому же следует проверить код, который генерируется - при кривой странице посмотри исходный код хтмл из браузера (обычно доступен по нажатию правой кнопки мыши в браузере). Вставь этот код в статическую хтмл страницу и снова сделай запрос на сервере - увидишь, что страница будет такая же кривая А это значит, что выводимых пхп хтмл отличается от статического, который ты делаешь. UPD. ridraider уже указал тебе на грубую ошибку в сгенерированном хтмл-коде.
Gromo В HTML5 просто <!DOCTYPE html> DOCTYPE не обязательный тег, а если все таки решите ставить то лучше <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> он допускает устаревшие теги.