Xojoでオンラインサインアップのようなものを作る


よくネットにあるオンラインサインアップのようなものをXojoで作ってみた。
テスト段階なので単純にフォームに入れられたメールアドレスにメールを送信するだけのものですがユーザーのデータを記録するDBと本登録の機構を追加すれば最低限使用できるような形になるかと思います。
実際にはhttps等を使用したほうがよろしいかと思いますがXojoであればこんな感じの物も簡単に構築できます。

デモサイトは↓

http://124.41.69.194/567/labo/testonlinesignup/testonlinesignup.cgi

メールアドレスや入力されたパスワードは記録しません。
またパスワードの部分は何も処理してませんので入力しなくても動作します。
送信されるメールにURLが記載されておりますがそのURLは存在しません。

Xojo備忘録 webアプリでcookieを使用する


cookieもxojoなら簡単だ。
cookieを登録する場合はsession.cookies.set
session.cookies.valueでサクッと読み込む事ができる。

以下サンプルです。

http://124.41.69.194/567/labo/testcookie/testcookie.cgi

テキストフィールドに入力された内容をsetボタンで登録しgetボタンで読み込みます。
クリアボタンは単純にテキストフィールドをクリアするだけでcookieを削除するわけではありません。

setボタンが押された時の処理

Session.Cookies.set(“username”,TextField1.text)
Session.Cookies.set(“email”,TextField2.text)

getボタンが押された時の処理

TextField1.text=Session.Cookies.Value(“username”)
TextField2.Text=Session.Cookies.Value(“email”)

簡単ですね。

Xojo備忘録 webアプリで位置情報を取得する


他の開発環境での話は分からないがXojoでは位置情報の取得は簡単だ。
まず、DeviceLocationコントロールを配置する。

今回のサンプルでは更新ボタンを押した際に位置情報を取得しテキストフィールドへ書き込んでいるだけだ。
このテストアプリはものの2、3分で完了するくらいのレベルである。

更新ボタンを押した際に

DeviceLocation_Geo.RequestDeviceLocation()

とすると位置情報を取得した際にイベントが発生し

TextField1.text=str(Latitude)
TextField2.text=str(Longitude)

な感じで表示しているだけ。
実に簡単。

以前iOSのswiftで位置情報へのアクセルを行ったことがあるが色々ややこしい。
Webアプリで良ければiPhoneからも上記サンプルで位置情報を取得する事ができるので簡単なアプリはwebアプリでよさそうである。

サンプル

http://124.41.69.194/567/labo/geo/geo.cgi

Xojo備忘録 webアプリでユーザーのブラウザやらなんやらを取得する


 

perlなどでは

foreach (sort keys (%ENV)){
    print “$_: $ENV{$_}<BR>\n”;
}

な形で取得できるがxojoの場合ちょっと違う。
例えばREMOTE_HOSTなどは

Session.RemoteAddress

で得ることができるが、QUERY_STRINGなどを取得する簡単な方法がわからなかったので調べてみたらリファレンスにサンプルが載っていた。
はじめapacheのQUERY_STRINGを

System.EnvironmentVariable(“QUERY_STRING”)

もしくは

System.EnvironmentVariable(“REQUEST_URI”)

にて取れるかなと思ったが外したようでサンプルによると

If session.URLParameterCount > 0 Then
          Dim parameterName, value As String
          For i As Integer = 0 To session.URLParameterCount-1
                    parameterName = session.URLParameterName(i)
                    value = session.URLParameter(parameterName)
                    TextArea1.AppendText(parameterName + ” = ” + value + EndOfLine)
          Next
End If

※この例ではTextArea1に書き出している。

URLParameterで取得可能なような。

自分がこれを使いたいと思った理由はオンラインサインアップなどでよくメールに認証用のURLが送られてくるがあれと同じことをやりたかったためである。

サンプル

http://124.41.69.194/567/labo/xojoweb/xojowebtest.cgi

http://124.41.69.194/567/labo/xojoweb/xojowebtest.cgi?a=123&b=abcdefg