こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

スマホ向け検索サイトのPOST変数について

<?php
session_start();
////////////////////
// POST変数の取得 //
////////////////////
if(isset($_POST['login_id'])){
//if($_POST['login_id']!==""){
$login_id = $_POST['login_id'];
setcookie("id", $login_id, time()+60*60*24*365); // アカウント用のクッキーの有効期限は一年間
}
if(isset($_POST['passwd'])){
//if($_POST['password']!==""){
$passwd = (int)$_POST['passwd'];
setcookie("passwd", $passwd, time()+60*60*24*365);
}
var_dump($_POST['login_id']);
var_dump($_POST['passwd']);

////////////////////////
// データベースを検索 //
////////////////////////
$con = mysql_connect("", "", "");
mysql_select_db("");
mysql_set_charset('utf8');
$sql = "SET NAMES utf-8";
mysql_query($sql);

$sql = "SELECT * FROM user_profile;";
$result = mysql_query($sql, $con) or die(mysql_error());
$rowco = mysql_num_rows($result);
for($i=0; $i<$rowco; $i++){
$row = mysql_fetch_row($result); // 取得された行に対応する配列を返し、内部のデータポインタを前に進める
if($login_id===$row[1] && $password===(int)$row[2]){ // IDとパスワードが両方一致していた場合
$_SESSION['login'] = 1; // ログイン状態にする
$_SESSION['login_id'] = $login_id; // メールアドレス
header("Location: hospital.php?login=1");
}/*else{
header("Location: login.php");
}*/
}
mysql_close($con); // データベースとの接続を解除する
//var_dump($row[1]);
//var_dump($row[2]);
?>
<!doctype html>
<html>
<head><title>ログインページ</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" type="text/css" href="bootstrap.css">
<script type="text/javascript" src="jquery-2.1.3.js"></script>
<link rel="stylesheet" href="jquery.mobile-1.4.5.min.css" />
<script src="jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>
<script type="text/javascript" src="bootstrap.js"></script>
</head>
<body>
<br>
<div class="mojis2">
<?php
for($i=0; $i<2; $i++){
echo '&nbsp';
}
?>
美容整形に失敗しないための口コミサイト
</div>

if($_SESSION['login']!==1){
echo '<a href="shinki.php"><img src="../image/shinki.png" border="0"></a>';
echo '&nbsp;<a href="login.php"><img src="../image/login.png" border="0"></a>';
}else{ // ログインしてれば
echo '<a href="mypage.php"><img src="../image/mypage.png" border="0"></a>';
echo '&nbsp;<a href="logout.php"><img src="../image/logout.png" border="0"></a>';
}
?>
<br><br>
<center>

<?php
// タブナビゲーション(上部)
echo '<div id="centeredmenu2">';
echo '<ul class="nav nav-tabs">';
if($_SESSION['login']===1) echo '<li><a href="hospital.php?login=1">ホーム</a></li>';
else echo '<li><a href="hospital.php?login=0">ホーム</a></li>';
echo '<li class="active"><a href="login.php">ログイン</a></li>';
echo '</ul>';
echo '</div>';

echo '<br>';

//////////////
// 表の表示 //
//////////////
echo '<table width="360" cellpadding="0" cellspacing="0" border="0">';
echo '<tr>';
echo '<th rowspan="14" width="360" align="right" valign="top">';

echo '<table width="360" border="0">';
echo '<form name="form1" method="POST" action="login.php">';
//echo '<form name="form1" method="post" action="login.php">';
echo '<tr><td><img src="../image/login_bar.png"></td></tr>';
echo '<tr>';
echo '<td width="360" height="40" class="line1">ログインID(メールアドレス)</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="360" height="40" align="middle">';
echo '<input type="text" class="yokohaba" name="login_id" id="login_id" tabindex="1" value="'.$_COOKIE["id"].'">';
echo '</td>';
echo '</tr>';
echo '<td width="360" height="40" class="line1">パスワード</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="360" height="40" align="middle">';
echo '<input type="password" class="yokohaba" name="passwd" id="passwd" tabindex="2" value="'.$_COOKIE["passwd"].'">';
echo '</td>';
echo '</tr>';
echo '<tr><td width="360" height="40" align="middle">';
echo '<a href="JavaScript:document.form1.submit()" onclick="location.href=\'login.php\'"><img src="../image/login_send.png" border="0"></a>';
echo '</td></tr>';
echo '</form>';
echo '</table>';
-------------------
スマホ向けの検索サイトで、
上記のPHPスクリプトで、var_dump()した値がNULLと表示れます。
DBのデータと、ID,パスが一致したら、トップページにジャンプするようにしたいのですが、
どこがまちがっているのでしょうか?

投稿日時 - 2015-07-28 08:41:42

QNo.9020041

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

ANo.1

#php以前の問題です。まずはhtmlをキチンと学んでください。

>echo '<a href="JavaScript:document.form1.submit()" onclick="location.href=\'login.php\'"><img src="../image/login_send.png" border="0"></a>';

onclickが先に実行されるので(その時点で画面遷移するので)href属性のJavaScriptは実行されていませんよね(alertなどに置換して動作確認すれば自明です)。form要素のsubmitではなくonclickのlocation.hrefで画面遷移しているだけなので、当然ながら何もPOSTされません。そもそもJavaScriptに頼る場面ではありませんが(後述)百歩譲ってもhref属性とonclickの記述が逆です。

画像(img要素)をsubmitボタンにしたいときはbutton要素を使います(htmlの基本中の基本です)。htmlで出来ることなのでJavaScriptを使う意味はありません。

echo '<button type="submit"><img src="../image/login_send.png" border="0"></button>';

http://www.tagindex.com/html_tag/form/button.html

投稿日時 - 2015-07-28 09:15:12

お礼

ご回答ありがとうございました。

投稿日時 - 2015-07-28 12:32:43

-広告-
-広告-
-広告-
-広告-
-広告-