勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

短縮URL作成(管理画面)

      2014/07/03

error_reporting(E_ALL & ~E_NOTICE);
require_once("../../library/database.php");

/*ランダムな英数字を作成するファンクション
http://ameblo.jp/linking/entry-10289895826.html
を使用させて頂きました*/
function makeRandStr($length) {
$str = array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z"'));
for ($i = 0; $i < $length; $i++) {
$r_str .= $str[rand(0, count($str)-1)];
}
return $r_str;
}

//変数の取得
extract($_REQUEST);

//登録があった際の処理
if ($mode == "registration") {
//先にcodeが登録されていないかどうかのチェック
$i = 0;
while ($i <= 0) {
$code = makeRandStr(6);
$sql = '
SELECT code
FROM short_url
WHERE code = "' . $code . '";
';
$row = mysql_query($sql);
$check = mysql_num_rows($row);
$i = ($check == 0) ? 1 : 0;
}
$sql = '
INSERT INTO short_url
(code, url)
VALUES
("' . $code . '", "' . $url . '");
';
mysql_query($sql);
header("Location: ./admin.php?mode=registration2");
} elseif ($mode == "delete") {
$sql = '
DELETE FROM short_url
WHERE seq = ' . $seq . ';
';
mysql_query($sql);
header("Location : ./admin.php?mode=delete2");
}

$sql = '
SELECT *
FROM short_url;
';
$row = mysql_query($sql);
$check = mysql_num_rows($row);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transtional//EN" "http://www.w3c.org/TR/html4/loose.dtd">
<meta http-equiv="content-type" content="text/html"/>
<meta cherset = "UTF-8">
<html lang="ja">
<head>
<title>短縮URL</title>
<style>
body,table {
font-size : 11px;
}
table,th,td,tr {
text-align : center;
border-style : solid;
border-width : 1px;
border-collapse: collapse;
}
th {
background-color : #DCDCDC;
}
tr:hover {
background-color: #F5F5F5;
}
.code {
width : 100px;
}
.url {
width : 400px;
}
.short_url {
width : 300px;
}
.mode {
width : 50px;
}
</style>
<script>
function check_delete(){
if (confirm(" 削除してよろしいですか? ")) {
return true;
} else {
return false;
}
}
</script>
</head>
<body>
<h1>短縮URL</h1>
<?
if ($mode == "registration2") {
echo '<font color="red">登録が完了しました</font>';
} elseif ($mode == "delete2") {
echo '<font color="red">削除が完了しました</font>';
}
?>
<form method="post" action="admin.php">
<input type="hidden" name="mode" value="registration">
URL : <input type="text" name="url" size="70">
<input type="submit" value="作成">
</form><br>
<?
if ($check <= 0) {
echo "登録がありません。";
} else {
echo '
<table>
<tr>
<th class="code">短縮コード</th>
<th class="url">登録URL</th>
<th class="short_url">短縮URL</th>
<th class="mode">削除</th>
</tr>
';
while ($result = mysql_fetch_array($row)) {
echo '
<tr>
<td> ' . $result["code"] . '</td>
<td><input type="text" value="' . $result["url"] . '" size="70"></td>
<td>http://aaa/php/short_url/?' . $result["code"] . '</td>
<td><a href="?mode=delete&seq=' . $result["seq"] . '" onclick="return check_delete()">削除</a></td>
</tr>
';
}
echo '</table>';
}
?>
</body>
</html>

 - PHP

  関連記事

MySQLから任意の順番で取り出す

SELECT * FROM テーブル名 WHERE seq =  $seq OR ...

PHPで特定のファイル内のみタイムアウトを無効にする

重たい処理をするページだけ、タイムアウトを無効にする場合のメモ。 以下をPHPフ ...

URLのクエリを取得

<? /* 通常であれば$_GETとかで取得するが、 http://tes ...

PHPでステータスコードを取得する方法

サーバーの死活監視でUptimeRobotを使っていたけど、どうも正常に監視して ...

incファイルとかtplファイルとか

初めて見るサーバーのファイルを見ていると incファイルとかtplファイルとか見 ...

PHPでのファイル関係

ファイルを呼び出したり書き込んだりとかしばしば行うが、 未だに調べることが多いの ...

PHPで文字列の操作(検索、置換、切り出し)

しばしば行う文字列の操作をまとめておく。 ----- ■文字列の長さを調べる e ...

PHPでCSVファイル出力用の関数

ここのところログ系をCSVファイル出力にするケースが多かった為、使いまわせるよう ...

GoogleアナリティクスのデータをPHPで取得する方法

Googleアナリティクスの特定データをPHPで取得して、表示なりCSV化してほ ...

PHPでis_fileとfile_existsについて

ファイルの存在チェックを行う際に、file_exists関数を 使用していたが、 ...