crzmotoのプロフィール

@crzmoto crzmoto
ありがとう数9
質問数0
回答数13
ベストアンサー数
6
ベストアンサー率
66%
お礼率
0%

  • 登録日2011/05/25
  • 会員ページ SESSIONについて

    レンタルサーバはさくらインターネット、プランはプレミアムです。 PHPは5.2.171、MySQLは5.1です。 login.phpから各メンバーのIDとPWを入力してデータベース内ののデータと一致したら、main.phpにLocationでとぶようにしています。 2日前ほどからログインができなくなり、大変困っています。(それまでは問題なくログインができた。) 原因はわからないのですが、色々検証したところ、 login.phpでログインしたときにmain.phpでIDが取得できていないということがわかりました。 コードは下記のようになります。 login.php if ($uid != "" || $upass != "") { $link = mysql_connect($DB_HOST,$DB_USER,$DB_PASS); mysql_select_db($DB_NAME,$link); $uid = mysql_real_escape_string($uid, $link); $upass = mysql_real_escape_string($upass, $link); $userQuery = sprintf("SELECT count(*) as `cnt` FROM `member` WHERE `id`='%s' AND `password`='%s'",$uid,$upass); $userResult = mysql_query($userQuery, $link) or die(mysql_error()); if ($row = mysql_fetch_assoc($userResult)) { $count = $row['cnt']; if ($count == 1) { session_start(); $_SESSION['ok_flg'] = 1; $_SESSION['uid'] = $_REQUEST['id']; header("Location: main.php"); exit; } else { $msg = '<p class="error">ユーザーIDまたはパスワードが違います。</p>'."\n"; } } else { $msg = '<p class="error">ユーザーIDまたはパスワードが違います。</p>'."\n"; } } 省略部分が少しありますが、特に問題ないと思います。 main.php session_start(); if ($_SESSION['ok_flg'] != 1) { header("Location: /"); exit; } if (!isset($_SESSION['uid'])) { header("Location: /"); exit; } $uid = mysql_real_escape_string($_SESSION['uid'], $link); $userQuery = sprintf("SELECT * FROM `member` WHERE id='%s' ",$uid); $userResult = mysql_query($userQuery, $link) or die(mysql_error()); if ($row = mysql_fetch_assoc($userResult)) { $user_name = $row['user_name']; } echo $user_name; としています。 ここからが問題なのですが、 1.ログインするとSESSIONファイルが2つ発行されてしまう。  1つ目は空のファイル。2つ目がIDなどが記載されているファイル。 main.phpのsession_start()を取ると1つのみの発行。(IDなどが記載されている方。) 2.main.phpに切り替わったときに$_SESSION['ok_flg']と$_SESSION['uid']の値が取得できないためlogin.phpに戻される。 3.main.phpのsession_start()を取ればページは表示されるが、session_id()も$_SESSION['ok_flg']と$_SESSION['uid']の2つも取得できない。 3.main.phpでsession_start()を取れば他のページはsession_idは取得できるが$_SESSION['ok_flg']と$_SESSION['uid']が取得できない。 4.session_start()と併用で$_GETも使用しているページがあるが$_GETを使用しているページも2と同じ現象になる。 以上ですが、お分かりになる方がいらっしゃいましたら、教えていただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • h-h13
    • PHP
    • 回答数2
  • ビジネスパートナーで独立できるのですか?

    Web制作会社の多くは、ビジネスパートナーを募集していますが、WEBプログラマーはこのような仕事をいくつかの会社からうけてSOHOで独立して働いている人も多くいるのでしょうか? このような仕事ならコネなどがなくても経歴と作品を送って相手が良いと思えば仕事をもらえるのでしょうか? このような場合働く先は基本的に自宅でWEBアプリやショッピングカートなどを作ってメールか何かでおくるという形態なのでしょうか? 一般的にどれ位のPHPなどの経験が必要とされるのでしょか?下請けのプログラマーでは無理で、上流の経験を積んだプログラマーでないと無理なのでしょうか?

    • ベストアンサー
    • noname#252495
    • PHP
    • 回答数3
  • ビジネスパートナーで独立できるのですか?

    Web制作会社の多くは、ビジネスパートナーを募集していますが、WEBプログラマーはこのような仕事をいくつかの会社からうけてSOHOで独立して働いている人も多くいるのでしょうか? このような仕事ならコネなどがなくても経歴と作品を送って相手が良いと思えば仕事をもらえるのでしょうか? このような場合働く先は基本的に自宅でWEBアプリやショッピングカートなどを作ってメールか何かでおくるという形態なのでしょうか? 一般的にどれ位のPHPなどの経験が必要とされるのでしょか?下請けのプログラマーでは無理で、上流の経験を積んだプログラマーでないと無理なのでしょうか?

    • ベストアンサー
    • noname#252495
    • PHP
    • 回答数3
  • if の中の 複数のor についてお教えください

    フォームに a または b または c または d を入力して送信した場合に「正解です」と表示しようとしています。 $nr = 1408; $ant1 = ('a'); $ant2 = ('b'); $ant3 = ('c'); $ant4 = ('d'); $ant = htmlspecialchars(@$_POST['antwort']); if (($ant == $ant1 or $ant == $ant2 or $ant == $ant3 or $ant == $ant4) and ($score_line[2] < $nr)){ print "正解です"; } a または b を入力するとうまくいきますが、c と d はだめです。 どのようにしたらよいか、お教えください。よろしくお願いします。 $score_line[2] は テキストファイルから読み込んだ数値です。

  • html

    <from enctype="multipart/form-data" action="edit.php" method="post" accept="image/gif, image/jpeg, image/png"> 画像:<input type="file" name="upfile"><br> <input type="submit" name="submit" value="送信"> <input type="reset" name="reset" value="リセット"> </from> ↑では 画像が送信できないのですがどうすれば 送信できるようになりますか?