예제 #1
0
파일: init.php 프로젝트: benlilaj/gears
//     used to endorse or promote products derived from this software without
//     specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This PHP file initializes a new client by assinging a client ID and returning
// the current version of the note.
require "_functions.php";
require "_database.php";
$id = validateUserCookie();
$id = db_escape($id);
// Create a new client ID.
// We use a MySQL variable to capture the value that next_client_id had before
// the update so that we are atomic. Variables are connection-specific, and we
// open a new connection for each PHP page view.
db_query_set("update user set next_client_id = next_client_id + 1 \n              where id = '{$id}' and @prev_client_id := next_client_id");
$client = firstRow(db_query_get("select @prev_client_id as prev_client_id"));
$client = $client['prev_client_id'];
// Now get the latest version of the note from the database.
$rslt = firstRow(db_query_get("select version, content from user\n                               where id = '{$id}'"));
$version = $rslt['version'];
$content = $rslt['content'];
print "{$client}\n{$version}\n{$content}";
예제 #2
0
function resetPassword($email, $token, $newpass) {
  global $SITE_SECRET;

  $token = str_replace(array('-','_'), array('.','/'), $token);
  $check = crypt($email . $SITE_SECRET, $token);

  if ($check != $token) {
    return false;
  }

  $newpass = db_escape($newpass);
  $newpass = crypt($newpass);

  db_query_set("update user set password = '******' where email = '$email'");

  $rslt = firstRow(db_query_get("select n.id from note n, user u where u.id = n.userid and u.email = '$email'"));
  setNoteID($rslt['id']);

  return true;
}
예제 #3
0
function resetPassword($email, $token, $newpass)
{
    global $SITE_SECRET;
    $token = str_replace(array('-', '_'), array('.', '/'), $token);
    $check = crypt($email . $SITE_SECRET, $token);
    if ($check != $token) {
        return false;
    }
    $newpass = db_escape($newpass);
    $newpass = crypt($newpass);
    db_query_set("update user set password = '******' where email = '{$email}'");
    $rslt = firstRow(db_query_get("select id from user where email = '{$email}'"));
    setUserCookie($rslt['id'], $email);
    return true;
}