0

電子メールとパスワードを挿入することでユーザーがアプリケーションにログインできるログインシステムを作成しました。ユーザーが自分のプロファイルページを作成してタイムテーブルを設定すると、次のコードがエラーなしで自分のプロファイルを画面に印刷します。これは、プロファイルページを印刷するコードです。

<?php
   if(  isset($_GET['email']) === true  &&  empty($_GET['email']) === false  ){

    $email = $_GET['email'];

  if(user_exists($email) === true) {

        $user_id = user_id_from_email($email);
        $profile_data = user_data($user_id,'name','surname','email');
?>

<h1><font size="5"><?php echo $profile_data['name'];?> <?php echo $profile_data['surname']; ?> </font></h1>

<a href="profile_timetable.php" >Timetable</a>

<?php

}else {
    echo 'Sorry, that user does not exist!';
}
  }else{
     header('Location: index.php');
     exit();
   }

私はこれである.htaccessファイルも持っています:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /work/profile.php?email=$1

そして、これはタイムテーブルページを印刷するコードです:

<?

if(  isset($_GET['email']) === true  &&  empty($_GET['email']) === false  ){


$email = $_GET['email'];

    if(user_exists($email) === true) {

       $user_id = user_id_from_email($email);

       $profile_data_timetable = $user_data_profile_timetable($user_id,'hour_start_1','minute_start_1','hour_finish_1','minute_finish_1','activity_1');

?>

<font size="5"> 
    <?php echo $user_data_profile_timetable['hour_start_1']; ?> 
    <?php echo $user_data_profile_timetable['minute_start_1']; ?> 
    <?php echo $user_data_profile_timetable['hour_finish_1']; ?> 
    <?php echo $user_data_profile_timetable['minute_finish_1']; ?> 
    <?php echo $user_data_profile_timetable['activity_1']; ?> 
</font>

<?php
  }else {
echo 'Sorry, that user does not exist!';
}
 }else{
header('Location: index.php');
exit();
 }

私の問題は、「時刻表リンク」をクリックしてユーザーの時刻表を取得すると、空の画面だけが表示されることです(おそらく、空のページであるindex.phpにリダイレクトされます)。リンクが機能してユーザーの時刻表を印刷するように、これを修正するにはどうすればよいですか?

4

1 に答える 1

1

リンクを編集してメールを再送信する必要があります

リンクはになりprofile_timetable.phpますが、に行く必要がありますprofile_timetable.php?email=fooo@foo.fo

あなたはこれを試すことができます:

<a href="profile_timetable.php?email=<?php echo $email; ?>" >Timetable</a>

送信された電子メールが有効な形式であるかどうかを確認していないことに気付きました。インジェクションに注意してください。

if(filter_var($email, FILTER_VALIDATE_EMAIL))メール形式を確認したり、正規表現を使用したりするだけです。

于 2013-03-12T15:15:29.760 に答える