Ошибка при попытке заполнить поля регистрации - PullRequest
1 голос
/ 22 января 2012

Я пытаюсь создать систему входа в систему и регистрации на PHP для школьного задания, но в настоящее время она не работает ...

Проблема в том, что он генерирует ошибку, говоря, что поля пусты, даже если вы заполнили поля данными, поэтому не должно выдавать эту ошибку.

Код:

    <html>
<head>
    <title>Music Database</title>
    <link rel="stylesheet" href="layout.css" type="text/css" />
    <?php
        // Verbinden met de database //
        include('connect.php');

        // Registreer data verkrijgen en in variabelen zetten //
        if(isset($_POST['r_submit'])){
            $r_username = $_POST['r_username']; 
            $r_password = $_POST['r_password'];
            $confirm_r_password = $_POST['confirm_r_password']; 
            $r_name = $_POST['r_name']; 
            $r_surname = $_POST['r_surname'];
            $r_birth = $_POST['r_dateofbirth'];
            $r_mail = $_POST['r_mail'];
        }
    ?>
</head>
<body>
    <div id="login">
        <form name="login" action="login.php" method="post">
            <p>Login: <input class="input" type="text" name="username" value="Username" />
            <input id="password" type="password" name="password" value="Password" /></p>
            <div><a class="link" href="register.php">Register here!</a></div>
            <p align="center"><input class="submit" type="submit" name="login_submit" value="Submit" /></p>
        </form>
    </div>
    <div id="header">
        <a class="link" href="index.php">Music Database</a>
    </div>
    <div id="search">
        <form name="search" action="search.php" method="post">
            <p>Search for: <input class="input" type="text" name="search" value="<?php if(isset($_POST['search'])) print $_POST['search']; ?>" />
            <input class="submit" type="submit" name="search_submit" value="Submit" /></p>
            <p>Artist: <input type="checkbox" name="artistsearch" checked /> 
            Album: <input type="checkbox" name="albumsearch" /> 
            Song: <input type="checkbox" name="songsearch" /> 
            Genre: <input type="checkbox" name="genresearch" /></p>
        </form>
    </div>
    <div id="wrapper"><br /></div>
    <div id="content">
        <h1>Register down here please:</h1>
        <table id="wrap_table">
            <tr>
                <td>
                    <div id="reg_content">
                    <div id="reg_form">
                        <form name="register_login" action="register.php" method="post">
                            <fieldset>
                            <legend>Login Data: </legend>
                                <table class="r_table">
                                    <tr>
                                        <td>Username<sup>*</sup>: </td>
                                        <td><input class="input" type="text" name="r_username" value="<?php if(isset($r_username)){ print $_POST['r_username']; }  ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_username)){
                                                    echo "<td>Error: No Username has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                    <tr>
                                        <td>Password<sup>*</sup>: </td>
                                        <td><input class="input" type="password" name="r_password" value="<?php if(isset($r_password)){ print $_POST['r_password']; }  ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_password)){
                                                    echo "<td>Error: No Password has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                    <tr>
                                        <td>Confirm Password<sup>*</sup>: </td>
                                        <td><input class="input" type="password" name="confirm_r_password"  value="<?php if(isset($confirm_r_password)){ print $_POST['confirm_r_password']; }  ?>"/></td>
                                        <?php
                                            if(isset($confirm_password)){
                                                if($confirm_r_password != $r_password){
                                                    echo "<td>Error: The passwords don't match!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                </table>
                            </fieldset>
                        </form>
                    </div>
                </td>
                <td>
                    <div id="reg_form">
                        <form name="register_personal" action="register.php" method="post">
                            <fieldset>
                            <legend>Personal Data: </legend>
                                <table class="r_table_personal">
                                    <tr>
                                        <td>Name: </td>
                                        <td><input class="input" type="text" name="r_name" value=""/></td>                              
                                    </tr>
                                    <tr>
                                        <td>Surname: </td>
                                        <td><input class="input" type="text" name="r_surname" value=""/></td>
                                    </tr>
                                    <tr>
                                        <td>Date of Birth: </td>
                                        <td><input class="input" type="text" name="r_dateofbirth"  value=""/></td>
                                    </tr>
                                    <tr>
                                        <td>E-mail<sup>*</sup>: </td>
                                        <td><input class="input" type="text" name="r_mail" value="<?php if(isset($r_mail)){ print $_POST['r_mail']; } ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_mail)){
                                                    echo "<td>Error: No E-mail has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                </table>
                            </fieldset>
                        </form>
                    </div>
                </div>
                </td>
            </tr>
            <tr>
                <td>Fields with an asterisk<sup>*</sup> are required for registry!
                    <div id="reg_content">
                        <form name="submit_registry" action="register.php" method="post">
                            <input class="submit" type="submit" name="r_submit" value="Submit!" />
                        </form>
                    </div>
                </td>
            </tr>
        </table>
    </div>
    <div id="footerbreak"><br /></div>
    <div id="footer"> &copy; Jorik ter Molen &amp; Camiel Collet, 2011.</div>
</body> 

Ответы [ 3 ]

0 голосов
/ 22 января 2012

Итак, вы включаете первую страницу «формы» во второй php-файл после правильного кода?

Прежде всего, в файл PHP необходимо добавить все сегменты

if(isset($_POST['submit'])){

в один:

if(isset($_POST['submit'])){
    $r_username = $_POST['r_username'];
    $r_password = $_POST['r_password'];
    $confirm_r_password = $_POST['confirm_r_password']; 
    $r_name = $_POST['r_name']; 
    $r_surname = $_POST['r_surname'];
    $r_birth = $_POST['r_dateofbirth'];
    $r_mail = $_POST['r_mail'];
} 

Скорее всего, ваша проблема в $ _POST ['submit'], так как у вас есть две проверки, одна для $ _POST ['submit'] и другая для $ _POST ['r_submit']

Если вы не отправите его обоими способами, я предлагаю изменить PHP-файл для проверки на «r_submit»

Обновление:

Попробуйте поместить форму на страницу register.php, чтобыэто выглядит так:

<?php
    if(isset($_POST['r_submit'])){
        $r_username = $_POST['r_username'];
        $r_password = $_POST['r_password'];
        $confirm_r_password = $_POST['confirm_r_password']; 
    } 

?>

<form action="register.php" method="post">

    <td>Username<sup>*</sup>: </td>
        <td><input class="input" type="text" name="r_username" value="<?php     if(isset($r_username)){ print $_POST['r_username']; }  ?>"/></td>
    <?php
        if(isset($_POST['r_submit'])){
            if(!isset($r_username)){
                echo "<td>Error: No Username has been entered!</td>";
            }
        }
    ?>
</tr>
<tr>
    <td>Password<sup>*</sup>: </td>
    <td><input class="input" type="password" name="r_password" value="<?php if(isset($r_password)){ print $_POST['r_password']; }  ?>"/></td>
    <?php
        if(isset($_POST['r_submit'])){
            if(!isset($r_password)){
                echo "<td>Error: No Password has been entered!</td>";
            }
        }
    ?>
</tr>
<tr>
    <td>Confirm Password<sup>*</sup>: </td>
    <td><input class="input" type="password" name="confirm_r_password"  value="<?php if(isset($confirm_r_password)){ print $_POST['confirm_r_password']; }  ?>"/></td>
    <?php
        if(isset($confirm_password)){
            if($confirm_r_password != $r_password){
                echo "<td>Error: The passwords don't match!</td>";
            }
        }
    ?>
   </tr>

<input name="r_submit" type="submit" value="Submit" />   
</form>

Решение:

<html>
<head>
    <title>Music Database</title>
    <link rel="stylesheet" href="layout.css" type="text/css" />
    <?php

        // Verbinden met de database //
        include('connect.php');

        // Registreer data verkrijgen en in variabelen zetten //
        if(isset($_POST['r_submit'])){
            $r_username = $_POST['r_username']; 
            $r_password = $_POST['r_password'];
            $confirm_r_password = $_POST['confirm_r_password']; 
            $r_name = $_POST['r_name']; 
            $r_surname = $_POST['r_surname'];
            $r_birth = $_POST['r_dateofbirth'];
            $r_mail = $_POST['r_mail'];
        }
    ?>
</head>
<body>
    <div id="login">
        <form name="login" action="login.php" method="post">
            <p>Login: <input class="input" type="text" name="username" value="Username" />
            <input id="password" type="password" name="password" value="Password" /></p>
            <div><a class="link" href="register.php">Register here!</a></div>
            <p align="center"><input class="submit" type="submit" name="login_submit" value="Submit" /></p>
        </form>
    </div>
    <div id="header">
        <a class="link" href="index.php">Music Database</a>
    </div>
    <div id="search">
        <form name="search" action="search.php" method="post">
            <p>Search for: <input class="input" type="text" name="search" value="<?php if(isset($_POST['search'])) print $_POST['search']; ?>" />
            <input class="submit" type="submit" name="search_submit" value="Submit" /></p>
            <p>Artist: <input type="checkbox" name="artistsearch" checked /> 
            Album: <input type="checkbox" name="albumsearch" /> 
            Song: <input type="checkbox" name="songsearch" /> 
            Genre: <input type="checkbox" name="genresearch" /></p>
        </form>
    </div>
    <div id="wrapper"><br /></div>
    <div id="content">
        <h1>Register down here please:</h1>
        <table id="wrap_table">
            <tr>
                <td>
                    <div id="reg_content">
                    <div id="reg_form">
                        <form name="register_login" action="register.php" method="post">
                            <fieldset>
                            <legend>Login Data: </legend>
                                <table class="r_table">
                                    <tr>
                                        <td>Username<sup>*</sup>: </td>
                                        <td><input class="input" type="text" name="r_username" value="<?php if(isset($r_username)){ print $_POST['r_username']; }  ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_username)){
                                                    echo "<td>Error: No Username has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                    <tr>
                                        <td>Password<sup>*</sup>: </td>
                                        <td><input class="input" type="password" name="r_password" value="<?php if(isset($r_password)){ print $_POST['r_password']; }  ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_password)){
                                                    echo "<td>Error: No Password has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                    <tr>
                                        <td>Confirm Password<sup>*</sup>: </td>
                                        <td><input class="input" type="password" name="confirm_r_password"  value="<?php if(isset($confirm_r_password)){ print $_POST['confirm_r_password']; }  ?>"/></td>
                                        <?php
                                            if(isset($confirm_password)){
                                                if($confirm_r_password != $r_password){
                                                    echo "<td>Error: The passwords don't match!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                </table>
                            </fieldset>
                    </div>
                </td>
                <td>
                    <div id="reg_form">

                            <fieldset>
                            <legend>Personal Data: </legend>
                                <table class="r_table_personal">
                                    <tr>
                                        <td>Name: </td>
                                        <td><input class="input" type="text" name="r_name" value=""/></td>                              
                                    </tr>
                                    <tr>
                                        <td>Surname: </td>
                                        <td><input class="input" type="text" name="r_surname" value=""/></td>
                                    </tr>
                                    <tr>
                                        <td>Date of Birth: </td>
                                        <td><input class="input" type="text" name="r_dateofbirth"  value=""/></td>
                                    </tr>
                                    <tr>
                                        <td>E-mail<sup>*</sup>: </td>
                                        <td><input class="input" type="text" name="r_mail" value="<?php if(isset($r_mail)){ print $_POST['r_mail']; } ?>"/></td>
                                        <?php
                                            if(isset($_POST['r_submit'])){
                                                if(!isset($r_mail)){
                                                    echo "<td>Error: No E-mail has been entered!</td>";
                                                }
                                            }
                                        ?>
                                    </tr>
                                </table>
                            </fieldset>
                    </div>
                </div>
                </td>
            </tr>
            <tr>
                <td>Fields with an asterisk<sup>*</sup> are required for registry!
                  <div id="reg_content">

                            <input class="submit" type="submit" name="r_submit" value="Submit!" />
                            </div>
                      </form>

                </td>
            </tr>
        </table>
    </div>
    <div id="footerbreak"><br /></div>
    <div id="footer"> &copy; Jorik ter Molen &amp; Camiel Collet, 2011.</div>
</body> 
0 голосов
/ 22 января 2012

Вокруг строки 82, где у вас есть проверка php для совпадающих паролей, замените ее на:

<?php
if(isset($_POST['r_submit'])){
    if($confirm_r_password != $r_password)
    {
          echo "<td>Error: The passwords don't match!</td>";
    }
 }
 ?>

Хотя это просто базовая проверка и ничего не защищает, так как пользователь может оставить оба пароля пустыми, и онивсе еще совпадают.

0 голосов
/ 22 января 2012

у вас там есть <form action="" method="post">?

вы также можете отладить глобальную переменную $ _POST, чтобы увидеть, что происходит (если данные попадают в ваш скрипт)

var_dump($_POST);
...