PHP arrow operator problem

I'm half way through writing a web interface for mpd. I needed a way to interact with it so I searched around and found this. It's a php class that interfaces with mpd.
I downloaded it and it comes with an example php file for using it. The only problem is that when I use the example page it just prints out anything after the arrow operator. As far as I'm aware the arrow operator is for accessing class methods and variables but I've never actually done any OOP with PHP.
Anyway here is the example file:
<?
* mpd-class-example.php - Example interface using mpd.class.php
* Version 1.2, released 05/05/2004
* Copyright (C) 2003-2004 Benjamin Carlisle ([email protected])
* http://mpd.24oz.com/ | http://www.musicpd.org/
* This program illustrates the basic commands and usage of the MPD class.
* *** PLEASE NOTE *** My intention in including this file is not to provide you with an
* out-of-the-box MPD jukebox, but instead to provide a general understanding of how I saw
* the class as being utilized. If you'd like to see more examples, please let me know. But
* this should provide you with a good starting point for your own program development.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
?>
<HTML>
<style type="text/css"><!-- .defaultText { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; font-style: normal; font-weight: normal; color: #111111} .err { color: #DD3333 } --></style>
<BODY class="defaultText">
<?
include('mpd.class.php');
$myMpd = new mpd('localhost',2100);
if ( $myMpd->connected == FALSE ) {
echo "Error Connecting: " . $myMpd->errStr;
} else {
switch ($_REQUEST[m]) {
case "add":
if ( is_null($myMpd->PLAdd($_REQUEST[filename])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "rem":
if ( is_null($myMpd->PLRemove($_REQUEST[id])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "setvol":
if ( is_null($myMpd->SetVolume($_REQUEST[vol])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "play":
if ( is_null($myMpd->Play()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "stop":
if ( is_null($myMpd->Stop()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "pause":
if ( is_null($myMpd->Pause()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
default:
break;
?>
<DIV ALIGN=CENTER>[ <A HREF="<? echo $_SERVER[PHP_SELF] ?>">Refresh Page</A> ]</DIV>
<HR>
<B>Connected to MPD Version <? echo $myMpd->mpd_version ?> at <? echo $myMpd->host ?>:<? echo $myMpd->port ?></B><BR>
State:
<?
switch ($myMpd->state) {
case MPD_STATE_PLAYING: echo "MPD is Playing [<A HREF='".$_SERVER[PHP_SELF]."?m=pause'>Pause</A>] [<A HREF='".$_SERVER[PHP_SELF]."?m=stop'>Stop</A>]"; break;
case MPD_STATE_PAUSED: echo "MPD is Paused [<A HREF='".$_SERVER[PHP_SELF]."?m=pause'>Unpause</A>]"; break;
case MPD_STATE_STOPPED: echo "MPD is Stopped [<A HREF='".$_SERVER[PHP_SELF]."?m=play'>Play</A>]"; break;
default: echo "(Unknown State!)"; break;
?>
<BR>
Volume: <? echo $myMpd->volume ?> [ <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=0'>0</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=25'>25</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=75'>75</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=100'>100</A> ]<BR>
Uptime: <? echo secToTimeStr($myMpd->uptime) ?><BR>
Playtime: <? echo secToTimeStr($myMpd->playtime) ?><BR>
<? if ( $myMpd->state == MPD_STATE_PLAYING or $myMpd->state == MPD_STATE_PAUSED ) { ?>
Currently Playing: <? echo $myMpd->playlist[$myMpd->current_track_id]['Artist']." - ".$myMpd->playlist[$myMpd->current_track_id]['Title'] ?><BR>
Track Position: <? echo $myMpd->current_track_position."/".$myMpd->current_track_length." (".(round(($myMpd->current_track_position/$myMpd->current_track_length),2)*100)."%)" ?><BR>
Playlist Position: <? echo ($myMpd->current_track_id+1)."/".$myMpd->playlist_count." (".(round((($myMpd->current_track_id+1)/$myMpd->playlist_count),2)*100)."%)" ?><BR>
<? } ?>
<HR>
<B>Playlist - Total: <? echo $myMpd->playlist_count ?> tracks (Click to Remove)</B><BR>
<?
if ( is_null($myMpd->playlist) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
foreach ($myMpd->playlist as $id => $entry) {
echo ( $id == $myMpd->current_track_id ? "<B>" : "" ) . ($id+1) . ". <A HREF='".$_SERVER[PHP_SELF]."?m=rem&id=".$id."'>".$entry['Artist']." - ".$entry['Title']."</A>".( $id == $myMpd->current_track_id ? "</B>" : "" )."<BR>\n";
?>
<HR>
<B>Sample Search for the String 'U2' (Click to Add to Playlist)</B><BR>
<?
$sl = $myMpd->Search(MPD_SEARCH_ARTIST,'U2');
if ( is_null($sl) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
foreach ($sl as $id => $entry) {
echo ($id+1) . ": <A HREF='".$_SERVER[PHP_SELF]."?m=add&filename=".urlencode($entry['file'])."'>".$entry['Artist']." - ".$entry['Title']."</A><BR>\n";
if ( count($sl) == 0 ) echo "<I>No results returned from search.</I>";
// Example of how you would use Bulk Add features of MPD
// $myarray = array();
// $myarray[0] = "ACDC - Thunderstruck.mp3";
// $myarray[1] = "ACDC - Back In Black.mp3";
// $myarray[2] = "ACDC - Hells Bells.mp3";
// if ( is_null($myMpd->PLAddBulk($myarray)) ) echo "ERROR: ".$myMpd->errStr."\n";
?>
<HR>
<B>Artist List</B><BR>
<?
if ( is_null($ar = $myMpd->GetArtists()) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
while(list($key, $value) = each($ar) ) {
echo ($key+1) . ". " . $value . "<BR>";
$myMpd->Disconnect();
// Used to make number of seconds perty.
function secToTimeStr($secs) {
$days = ($secs%604800)/86400;
$hours = (($secs%604800)%86400)/3600;
$minutes = ((($secs%604800)%86400)%3600)/60;
$seconds = (((($secs%604800)%86400)%3600)%60);
if (round($days)) $timestring .= round($days)."d ";
if (round($hours)) $timestring .= round($hours)."h ";
if (round($minutes)) $timestring .= round($minutes)."m";
if (!round($minutes)&&!round($hours)&&!round($days)) $timestring.=" ".round($seconds)."s";
return $timestring;
?>
</BODY></HTML>
The class file:
<?php
* mpd.class.php - PHP Object Interface to the MPD Music Player Daemon
* Version 1.2, Released 05/05/2004
* Copyright (C) 2003-2004 Benjamin Carlisle ([email protected])
* http://mpd.24oz.com/ | http://www.musicpd.org/
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// Create common command definitions for MPD to use
define("MPD_CMD_STATUS", "status");
define("MPD_CMD_STATISTICS", "stats");
define("MPD_CMD_VOLUME", "volume");
define("MPD_CMD_SETVOL", "setvol");
define("MPD_CMD_PLAY", "play");
define("MPD_CMD_STOP", "stop");
define("MPD_CMD_PAUSE", "pause");
define("MPD_CMD_NEXT", "next");
define("MPD_CMD_PREV", "previous");
define("MPD_CMD_PLLIST", "playlistinfo");
define("MPD_CMD_PLADD", "add");
define("MPD_CMD_PLREMOVE", "delete");
define("MPD_CMD_PLCLEAR", "clear");
define("MPD_CMD_PLSHUFFLE", "shuffle");
define("MPD_CMD_PLLOAD", "load");
define("MPD_CMD_PLSAVE", "save");
define("MPD_CMD_KILL", "kill");
define("MPD_CMD_REFRESH", "update");
define("MPD_CMD_REPEAT", "repeat");
define("MPD_CMD_LSDIR", "lsinfo");
define("MPD_CMD_SEARCH", "search");
define("MPD_CMD_START_BULK", "command_list_begin");
define("MPD_CMD_END_BULK", "command_list_end");
define("MPD_CMD_FIND", "find");
define("MPD_CMD_RANDOM", "random");
define("MPD_CMD_SEEK", "seek");
define("MPD_CMD_PLSWAPTRACK", "swap");
define("MPD_CMD_PLMOVETRACK", "move");
define("MPD_CMD_PASSWORD", "password");
define("MPD_CMD_TABLE", "list");
// Predefined MPD Response messages
define("MPD_RESPONSE_ERR", "ACK");
define("MPD_RESPONSE_OK", "OK");
// MPD State Constants
define("MPD_STATE_PLAYING", "play");
define("MPD_STATE_STOPPED", "stop");
define("MPD_STATE_PAUSED", "pause");
// MPD Searching Constants
define("MPD_SEARCH_ARTIST", "artist");
define("MPD_SEARCH_TITLE", "title");
define("MPD_SEARCH_ALBUM", "album");
// MPD Cache Tables
define("MPD_TBL_ARTIST","artist");
define("MPD_TBL_ALBUM","album");
class mpd {
// TCP/Connection variables
var $host;
var $port;
var $password;
var $mpd_sock = NULL;
var $connected = FALSE;
// MPD Status variables
var $mpd_version = "(unknown)";
var $state;
var $current_track_position;
var $current_track_length;
var $current_track_id;
var $volume;
var $repeat;
var $random;
var $uptime;
var $playtime;
var $db_last_refreshed;
var $num_songs_played;
var $playlist_count;
var $num_artists;
var $num_albums;
var $num_songs;
var $playlist = array();
// Misc Other Vars
var $mpd_class_version = "1.2";
var $debugging = FALSE; // Set to TRUE to turn extended debugging on.
var $errStr = ""; // Used for maintaining information about the last error message
var $command_queue; // The list of commands for bulk command sending
// =================== BEGIN OBJECT METHODS ================
/* mpd() : Constructor
* Builds the MPD object, connects to the server, and refreshes all local object properties.
function mpd($srv,$port,$pwd = NULL) {
$this->host = $srv;
$this->port = $port;
$this->password = $pwd;
$resp = $this->Connect();
if ( is_null($resp) ) {
$this->errStr = "Could not connect";
return;
} else {
list ( $this->mpd_version ) = sscanf($resp, MPD_RESPONSE_OK . " MPD %s\n");
if ( ! is_null($pwd) ) {
if ( is_null($this->SendCommand(MPD_CMD_PASSWORD,$pwd)) ) {
$this->connected = FALSE;
return; // bad password or command
if ( is_null($this->RefreshInfo()) ) { // no read access -- might as well be disconnected!
$this->connected = FALSE;
$this->errStr = "Password supplied does not have read access";
return;
} else {
if ( is_null($this->RefreshInfo()) ) { // no read access -- might as well be disconnected!
$this->connected = FALSE;
$this->errStr = "Password required to access server";
return;
/* Connect()
* Connects to the MPD server.
* NOTE: This is called automatically upon object instantiation; you should not need to call this directly.
function Connect() {
if ( $this->debugging ) echo "mpd->Connect() / host: ".$this->host.", port: ".$this->port."\n";
$this->mpd_sock = fsockopen($this->host,$this->port,$errNo,$errStr,10);
if (!$this->mpd_sock) {
$this->errStr = "Socket Error: $errStr ($errNo)";
return NULL;
} else {
while(!feof($this->mpd_sock)) {
$response = fgets($this->mpd_sock,1024);
if (strncmp(MPD_RESPONSE_OK,$response,strlen(MPD_RESPONSE_OK)) == 0) {
$this->connected = TRUE;
return $response;
break;
if (strncmp(MPD_RESPONSE_ERR,$response,strlen(MPD_RESPONSE_ERR)) == 0) {
$this->errStr = "Server responded with: $response";
return NULL;
// Generic response
$this->errStr = "Connection not available";
return NULL;
/* SendCommand()
* Sends a generic command to the MPD server. Several command constants are pre-defined for
* use (see MPD_CMD_* constant definitions above).
function SendCommand($cmdStr,$arg1 = "",$arg2 = "") {
if ( $this->debugging ) echo "mpd->SendCommand() / cmd: ".$cmdStr.", args: ".$arg1." ".$arg2."\n";
if ( ! $this->connected ) {
echo "mpd->SendCommand() / Error: Not connected\n";
} else {
// Clear out the error String
$this->errStr = "";
$respStr = "";
// Check the command compatibility:
if ( ! $this->_checkCompatibility($cmdStr) ) {
return NULL;
if (strlen($arg1) > 0) $cmdStr .= " \"$arg1\"";
if (strlen($arg2) > 0) $cmdStr .= " \"$arg2\"";
fputs($this->mpd_sock,"$cmdStr\n");
while(!feof($this->mpd_sock)) {
$response = fgets($this->mpd_sock,1024);
// An OK signals the end of transmission -- we'll ignore it
if (strncmp(MPD_RESPONSE_OK,$response,strlen(MPD_RESPONSE_OK)) == 0) {
break;
// An ERR signals the end of transmission with an error! Let's grab the single-line message.
if (strncmp(MPD_RESPONSE_ERR,$response,strlen(MPD_RESPONSE_ERR)) == 0) {
list ( $junk, $errTmp ) = split(MPD_RESPONSE_ERR . " ",$response );
$this->errStr = strtok($errTmp,"\n");
if ( strlen($this->errStr) > 0 ) {
return NULL;
// Build the response string
$respStr .= $response;
if ( $this->debugging ) echo "mpd->SendCommand() / response: '".$respStr."'\n";
return $respStr;
/* QueueCommand()
* Queues a generic command for later sending to the MPD server. The CommandQueue can hold
* as many commands as needed, and are sent all at once, in the order they are queued, using
* the SendCommandQueue() method. The syntax for queueing commands is identical to SendCommand().
function QueueCommand($cmdStr,$arg1 = "",$arg2 = "") {
if ( $this->debugging ) echo "mpd->QueueCommand() / cmd: ".$cmdStr.", args: ".$arg1." ".$arg2."\n";
if ( ! $this->connected ) {
echo "mpd->QueueCommand() / Error: Not connected\n";
return NULL;
} else {
if ( strlen($this->command_queue) == 0 ) {
$this->command_queue = MPD_CMD_START_BULK . "\n";
if (strlen($arg1) > 0) $cmdStr .= " \"$arg1\"";
if (strlen($arg2) > 0) $cmdStr .= " \"$arg2\"";
$this->command_queue .= $cmdStr ."\n";
if ( $this->debugging ) echo "mpd->QueueCommand() / return\n";
return TRUE;
/* SendCommandQueue()
* Sends all commands in the Command Queue to the MPD server. See also QueueCommand().
function SendCommandQueue() {
if ( $this->debugging ) echo "mpd->SendCommandQueue()\n";
if ( ! $this->connected ) {
echo "mpd->SendCommandQueue() / Error: Not connected\n";
return NULL;
} else {
$this->command_queue .= MPD_CMD_END_BULK . "\n";
if ( is_null($respStr = $this->SendCommand($this->command_queue)) ) {
return NULL;
} else {
$this->command_queue = NULL;
if ( $this->debugging ) echo "mpd->SendCommandQueue() / response: '".$respStr."'\n";
return $respStr;
/* AdjustVolume()
* Adjusts the mixer volume on the MPD by <modifier>, which can be a positive (volume increase),
* or negative (volume decrease) value.
function AdjustVolume($modifier) {
if ( $this->debugging ) echo "mpd->AdjustVolume()\n";
if ( ! is_numeric($modifier) ) {
$this->errStr = "AdjustVolume() : argument 1 must be a numeric value";
return NULL;
$this->RefreshInfo();
$newVol = $this->volume + $modifier;
$ret = $this->SetVolume($newVol);
if ( $this->debugging ) echo "mpd->AdjustVolume() / return\n";
return $ret;
/* SetVolume()
* Sets the mixer volume to <newVol>, which should be between 1 - 100.
function SetVolume($newVol) {
if ( $this->debugging ) echo "mpd->SetVolume()\n";
if ( ! is_numeric($newVol) ) {
$this->errStr = "SetVolume() : argument 1 must be a numeric value";
return NULL;
// Forcibly prevent out of range errors
if ( $newVol < 0 ) $newVol = 0;
if ( $newVol > 100 ) $newVol = 100;
// If we're not compatible with SETVOL, we'll try adjusting using VOLUME
if ( $this->_checkCompatibility(MPD_CMD_SETVOL) ) {
if ( ! is_null($ret = $this->SendCommand(MPD_CMD_SETVOL,$newVol))) $this->volume = $newVol;
} else {
$this->RefreshInfo(); // Get the latest volume
if ( is_null($this->volume) ) {
return NULL;
} else {
$modifier = ( $newVol - $this->volume );
if ( ! is_null($ret = $this->SendCommand(MPD_CMD_VOLUME,$modifier))) $this->volume = $newVol;
if ( $this->debugging ) echo "mpd->SetVolume() / return\n";
return $ret;
/* GetDir()
* Retrieves a database directory listing of the <dir> directory and places the results into
* a multidimensional array. If no directory is specified, the directory listing is at the
* base of the MPD music path.
function GetDir($dir = "") {
if ( $this->debugging ) echo "mpd->GetDir()\n";
$resp = $this->SendCommand(MPD_CMD_LSDIR,$dir);
$dirlist = $this->_parseFileListResponse($resp);
if ( $this->debugging ) echo "mpd->GetDir() / return ".print_r($dirlist)."\n";
return $dirlist;
/* PLAdd()
* Adds each track listed in a single-dimensional <trackArray>, which contains filenames
* of tracks to add, to the end of the playlist. This is used to add many, many tracks to
* the playlist in one swoop.
function PLAddBulk($trackArray) {
if ( $this->debugging ) echo "mpd->PLAddBulk()\n";
$num_files = count($trackArray);
for ( $i = 0; $i < $num_files; $i++ ) {
$this->QueueCommand(MPD_CMD_PLADD,$trackArray[$i]);
$resp = $this->SendCommandQueue();
$this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLAddBulk() / return\n";
return $resp;
/* PLAdd()
* Adds the file <file> to the end of the playlist. <file> must be a track in the MPD database.
function PLAdd($fileName) {
if ( $this->debugging ) echo "mpd->PLAdd()\n";
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLADD,$fileName))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLAdd() / return\n";
return $resp;
/* PLMoveTrack()
* Moves track number <origPos> to position <newPos> in the playlist. This is used to reorder
* the songs in the playlist.
function PLMoveTrack($origPos, $newPos) {
if ( $this->debugging ) echo "mpd->PLMoveTrack()\n";
if ( ! is_numeric($origPos) ) {
$this->errStr = "PLMoveTrack(): argument 1 must be numeric";
return NULL;
if ( $origPos < 0 or $origPos > $this->playlist_count ) {
$this->errStr = "PLMoveTrack(): argument 1 out of range";
return NULL;
if ( $newPos < 0 ) $newPos = 0;
if ( $newPos > $this->playlist_count ) $newPos = $this->playlist_count;
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLMOVETRACK,$origPos,$newPos))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLMoveTrack() / return\n";
return $resp;
/* PLShuffle()
* Randomly reorders the songs in the playlist.
function PLShuffle() {
if ( $this->debugging ) echo "mpd->PLShuffle()\n";
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLSHUFFLE))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLShuffle() / return\n";
return $resp;
/* PLLoad()
* Retrieves the playlist from <file>.m3u and loads it into the current playlist.
function PLLoad($file) {
if ( $this->debugging ) echo "mpd->PLLoad()\n";
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLLOAD,$file))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLLoad() / return\n";
return $resp;
/* PLSave()
* Saves the playlist to <file>.m3u for later retrieval. The file is saved in the MPD playlist
* directory.
function PLSave($file) {
if ( $this->debugging ) echo "mpd->PLSave()\n";
$resp = $this->SendCommand(MPD_CMD_PLSAVE,$file);
if ( $this->debugging ) echo "mpd->PLSave() / return\n";
return $resp;
/* PLClear()
* Empties the playlist.
function PLClear() {
if ( $this->debugging ) echo "mpd->PLClear()\n";
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLCLEAR))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLClear() / return\n";
return $resp;
/* PLRemove()
* Removes track <id> from the playlist.
function PLRemove($id) {
if ( $this->debugging ) echo "mpd->PLRemove()\n";
if ( ! is_numeric($id) ) {
$this->errStr = "PLRemove() : argument 1 must be a numeric value";
return NULL;
if ( ! is_null($resp = $this->SendCommand(MPD_CMD_PLREMOVE,$id))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->PLRemove() / return\n";
return $resp;
/* SetRepeat()
* Enables 'loop' mode -- tells MPD continually loop the playlist. The <repVal> parameter
* is either 1 (on) or 0 (off).
function SetRepeat($repVal) {
if ( $this->debugging ) echo "mpd->SetRepeat()\n";
$rpt = $this->SendCommand(MPD_CMD_REPEAT,$repVal);
$this->repeat = $repVal;
if ( $this->debugging ) echo "mpd->SetRepeat() / return\n";
return $rpt;
/* SetRandom()
* Enables 'randomize' mode -- tells MPD to play songs in the playlist in random order. The
* <rndVal> parameter is either 1 (on) or 0 (off).
function SetRandom($rndVal) {
if ( $this->debugging ) echo "mpd->SetRandom()\n";
$resp = $this->SendCommand(MPD_CMD_RANDOM,$rndVal);
$this->random = $rndVal;
if ( $this->debugging ) echo "mpd->SetRandom() / return\n";
return $resp;
/* Shutdown()
* Shuts down the MPD server (aka sends the KILL command). This closes the current connection,
* and prevents future communication with the server.
function Shutdown() {
if ( $this->debugging ) echo "mpd->Shutdown()\n";
$resp = $this->SendCommand(MPD_CMD_SHUTDOWN);
$this->connected = FALSE;
unset($this->mpd_version);
unset($this->errStr);
unset($this->mpd_sock);
if ( $this->debugging ) echo "mpd->Shutdown() / return\n";
return $resp;
/* DBRefresh()
* Tells MPD to rescan the music directory for new tracks, and to refresh the Database. Tracks
* cannot be played unless they are in the MPD database.
function DBRefresh() {
if ( $this->debugging ) echo "mpd->DBRefresh()\n";
$resp = $this->SendCommand(MPD_CMD_REFRESH);
// Update local variables
$this->RefreshInfo();
if ( $this->debugging ) echo "mpd->DBRefresh() / return\n";
return $resp;
/* Play()
* Begins playing the songs in the MPD playlist.
function Play() {
if ( $this->debugging ) echo "mpd->Play()\n";
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_PLAY) )) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->Play() / return\n";
return $rpt;
/* Stop()
* Stops playing the MPD.
function Stop() {
if ( $this->debugging ) echo "mpd->Stop()\n";
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_STOP) )) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->Stop() / return\n";
return $rpt;
/* Pause()
* Toggles pausing on the MPD. Calling it once will pause the player, calling it again
* will unpause.
function Pause() {
if ( $this->debugging ) echo "mpd->Pause()\n";
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_PAUSE) )) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->Pause() / return\n";
return $rpt;
/* SeekTo()
* Skips directly to the <idx> song in the MPD playlist.
function SkipTo($idx) {
if ( $this->debugging ) echo "mpd->SkipTo()\n";
if ( ! is_numeric($idx) ) {
$this->errStr = "SkipTo() : argument 1 must be a numeric value";
return NULL;
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_PLAY,$idx))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->SkipTo() / return\n";
return $idx;
/* SeekTo()
* Skips directly to a given position within a track in the MPD playlist. The <pos> argument,
* given in seconds, is the track position to locate. The <track> argument, if supplied is
* the track number in the playlist. If <track> is not specified, the current track is assumed.
function SeekTo($pos, $track = -1) {
if ( $this->debugging ) echo "mpd->SeekTo()\n";
if ( ! is_numeric($pos) ) {
$this->errStr = "SeekTo() : argument 1 must be a numeric value";
return NULL;
if ( ! is_numeric($track) ) {
$this->errStr = "SeekTo() : argument 2 must be a numeric value";
return NULL;
if ( $track == -1 ) {
$track = $this->current_track_id;
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_SEEK,$track,$pos))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->SeekTo() / return\n";
return $pos;
/* Next()
* Skips to the next song in the MPD playlist. If not playing, returns an error.
function Next() {
if ( $this->debugging ) echo "mpd->Next()\n";
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_NEXT))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->Next() / return\n";
return $rpt;
/* Previous()
* Skips to the previous song in the MPD playlist. If not playing, returns an error.
function Previous() {
if ( $this->debugging ) echo "mpd->Previous()\n";
if ( ! is_null($rpt = $this->SendCommand(MPD_CMD_PREV))) $this->RefreshInfo();
if ( $this->debugging ) echo "mpd->Previous() / return\n";
return $rpt;
/* Search()
* Searches the MPD database. The search <type> should be one of the following:
* MPD_SEARCH_ARTIST, MPD_SEARCH_TITLE, MPD_SEARCH_ALBUM
* The search <string> is a case-insensitive locator string. Anything that contains
* <string> will be returned in the results.
function Search($type,$string) {
if ( $this->debugging ) echo "mpd->Search()\n";
if ( $type != MPD_SEARCH_ARTIST and
$type != MPD_SEARCH_ALBUM and
$type != MPD_SEARCH_TITLE ) {
$this->errStr = "mpd->Search(): invalid search type";
return NULL;
} else {
if ( is_null($resp = $this->SendCommand(MPD_CMD_SEARCH,$type,$string))) return NULL;
$searchlist = $this->_parseFileListResponse($resp);
if ( $this->debugging ) echo "mpd->Search() / return ".print_r($searchlist)."\n";
return $searchlist;
/* Find()
* Find() looks for exact matches in the MPD database. The find <type> should be one of
* the following:
* MPD_SEARCH_ARTIST, MPD_SEARCH_TITLE, MPD_SEARCH_ALBUM
* The find <string> is a case-insensitive locator string. Anything that exactly matches
* <string> will be returned in the results.
function Find($type,$string) {
if ( $this->debugging ) echo "mpd->Find()\n";
if ( $type != MPD_SEARCH_ARTIST and
$type != MPD_SEARCH_ALBUM and
$type != MPD_SEARCH_TITLE ) {
$this->errStr = "mpd->Find(): invalid find type";
return NULL;
} else {
if ( is_null($resp = $this->SendCommand(MPD_CMD_FIND,$type,$string))) return NULL;
$searchlist = $this->_parseFileListResponse($resp);
if ( $this->debugging ) echo "mpd->Find() / return ".print_r($searchlist)."\n";
return $searchlist;
/* Disconnect()
* Closes the connection to the MPD server.
function Disconnect() {
if ( $this->debugging ) echo "mpd->Disconnect()\n";
fclose($this->mpd_sock);
$this->connected = FALSE;
unset($this->mpd_version);
unset($this->errStr);
unset($this->mpd_sock);
/* GetArtists()
* Returns the list of artists in the database in an associative array.
function GetArtists() {
if ( $this->debugging ) echo "mpd->GetArtists()\n";
if ( is_null($resp = $this->SendCommand(MPD_CMD_TABLE, MPD_TBL_ARTIST))) return NULL;
$arArray = array();
$arLine = strtok($resp,"\n");
$arName = "";
$arCounter = -1;
while ( $arLine ) {
list ( $element, $value ) = split(": ",$arLine);
if ( $element == "Artist" ) {
$arCounter++;
$arName = $value;
$arArray[$arCounter] = $arName;
$arLine = strtok("\n");
if ( $this->debugging ) echo "mpd->GetArtists()\n";
return $arArray;
/* GetAlbums()
* Returns the list of albums in the database in an associative array. Optional parameter
* is an artist Name which will list all albums by a particular artist.
function GetAlbums( $ar = NULL) {
if ( $this->debugging ) echo "mpd->GetAlbums()\n";
if ( is_null($resp = $this->SendCommand(MPD_CMD_TABLE, MPD_TBL_ALBUM, $ar ))) return NULL;
$alArray = array();
$alLine = strtok($resp,"\n");
$alName = "";
$alCounter = -1;
while ( $alLine ) {
list ( $element, $value ) = split(": ",$alLine);
if ( $element == "Album" ) {
$alCounter++;
$alName = $value;
$alArray[$alCounter] = $alName;
$alLine = strtok("\n");
if ( $this->debugging ) echo "mpd->GetAlbums()\n";
return $alArray;
//***************************** INTERNAL FUNCTIONS ******************************//
/* _computeVersionValue()
* Computes a compatibility value from a version string
function _computeVersionValue($verStr) {
list ($ver_maj, $ver_min, $ver_rel ) = split("\.",$verStr);
return ( 100 * $ver_maj ) + ( 10 * $ver_min ) + ( $ver_rel );
/* _checkCompatibility()
* Check MPD command compatibility against our internal table. If there is no version
* listed in the table, allow it by default.
function _checkCompatibility($cmd) {
// Check minimum compatibility
$req_ver_low = $this->COMPATIBILITY_MIN_TBL[$cmd];
$req_ver_hi = $this->COMPATIBILITY_MAX_TBL[$cmd];
$mpd_ver = $this->_computeVersionValue($this->mpd_version);
if ( $req_ver_low ) {
$req_ver = $this->_computeVersionValue($req_ver_low);
if ( $mpd_ver < $req_ver ) {
$this->errStr = "Command '$cmd' is not compatible with this version of MPD, version ".$req_ver_low." required";
return FALSE;
// Check maxmum compatibility -- this will check for deprecations
if ( $req_ver_hi ) {
$req_ver = $this->_computeVersionValue($req_ver_hi);
if ( $mpd_ver > $req_ver ) {
$this->errStr = "Command '$cmd' has been deprecated in this version of MPD.";
return FALSE;
return TRUE;
/* _parseFileListResponse()
* Builds a multidimensional array with MPD response lists.
* NOTE: This function is used internally within the class. It should not be used.
function _parseFileListResponse($resp) {
if ( is_null($resp) ) {
return NULL;
} else {
$plistArray = array();
$plistLine = strtok($resp,"\n");
$plistFile = "";
$plCounter = -1;
while ( $plistLine ) {
list ( $element, $value ) = split(": ",$plistLine);
if ( $element == "file" ) {
$plCounter++;
$plistFile = $value;
$plistArray[$plCounter]["file"] = $plistFile;
} else {
$plistArray[$plCounter][$element] = $value;
$plistLine = strtok("\n");
return $plistArray;
/* RefreshInfo()
* Updates all class properties with the values from the MPD server.
* NOTE: This function is automatically called upon Connect() as of v1.1.
function RefreshInfo() {
// Get the Server Statistics
$statStr = $this->SendCommand(MPD_CMD_STATISTICS);
if ( !$statStr ) {
return NULL;
} else {
$stats = array();
$statLine = strtok($statStr,"\n");
while ( $statLine ) {
list ( $element, $value ) = split(": ",$statLine);
$stats[$element] = $value;
$statLine = strtok("\n");
// Get the Server Status
$statusStr = $this->SendCommand(MPD_CMD_STATUS);
if ( ! $statusStr ) {
return NULL;
} else {
$status = array();
$statusLine = strtok($statusStr,"\n");
while ( $statusLine ) {
list ( $element, $value ) = split(": ",$statusLine);
$status[$element] = $value;
$statusLine = strtok("\n");
// Get the Playlist
$plStr = $this->SendCommand(MPD_CMD_PLLIST);
$this->playlist = $this->_parseFileListResponse($plStr);
$this->playlist_count = count($this->playlist);
// Set Misc Other Variables
$this->state = $status['state'];
if ( ($this->state == MPD_STATE_PLAYING) || ($this->state == MPD_STATE_PAUSED) ) {
$this->current_track_id = $status['song'];
list ($this->current_track_position, $this->current_track_length ) = split(":",$status['time']);
} else {
$this->current_track_id = -1;
$this->current_track_position = -1;
$this->current_track_length = -1;
$this->repeat = $status['repeat'];
$this->random = $status['random'];
$this->db_last_refreshed = $stats['db_update'];
$this->volume = $status['volume'];
$this->uptime = $stats['uptime'];
$this->playtime = $stats['playtime'];
$this->num_songs_played = $stats['songs_played'];
$this->num_artists = $stats['num_artists'];
$this->num_songs = $stats['num_songs'];
$this->num_albums = $stats['num_albums'];
return TRUE;
/* ------------------ DEPRECATED METHODS -------------------*/
/* GetStatistics()
* Retrieves the 'statistics' variables from the server and tosses them into an array.
* NOTE: This function really should not be used. Instead, use $this->[variable]. The function
* will most likely be deprecated in future releases.
function GetStatistics() {
if ( $this->debugging ) echo "mpd->GetStatistics()\n";
$stats = $this->SendCommand(MPD_CMD_STATISTICS);
if ( !$stats ) {
return NULL;
} else {
$statsArray = array();
$statsLine = strtok($stats,"\n");
while ( $statsLine ) {
list ( $element, $value ) = split(": ",$statsLine);
$statsArray[$element] = $value;
$statsLine = strtok("\n");
if ( $this->debugging ) echo "mpd->GetStatistics() / return: " . print_r($statsArray) ."\n";
return $statsArray;
/* GetStatus()
* Retrieves the 'status' variables from the server and tosses them into an array.
* NOTE: This function really should not be used. Instead, use $this->[variable]. The function
* will most likely be deprecated in future releases.
function GetStatus() {
if ( $this->debugging ) echo "mpd->GetStatus()\n";
$status = $this->SendCommand(MPD_CMD_STATUS);
if ( ! $status ) {
return NULL;
} else {
$statusArray = array();
$statusLine = strtok($status,"\n");
while ( $statusLine ) {
list ( $element, $value ) = split(": ",$statusLine);
$statusArray[$element] = $value;
$statusLine = strtok("\n");
if ( $this->debugging ) echo "mpd->GetStatus() / return: " . print_r($statusArray) ."\n";
return $statusArray;
/* GetVolume()
* Retrieves the mixer volume from the server.
* NOTE: This function really should not be used. Instead, use $this->volume. The function
* will most likely be deprecated in future releases.
function GetVolume() {
if ( $this->debugging ) echo "mpd->GetVolume()\n";
$volLine = $this->SendCommand(MPD_CMD_STATUS);
if ( ! $volLine ) {
return NULL;
} else {
list ($vol) = sscanf($volLine,"volume: %d");
if ( $this->debugging ) echo "mpd->GetVolume() / return: $vol\n";
return $vol;
/* GetPlaylist()
* Retrieves the playlist from the server and tosses it into a multidimensional array.
* NOTE: This function really should not be used. Instead, use $this->playlist. The function
* will most likely be deprecated in future releases.
function GetPlaylist() {
if ( $this->debugging ) echo "mpd->GetPlaylist()\n";
$resp = $this->SendCommand(MPD_CMD_PLLIST);
$playlist = $this->_parseFileListResponse($resp);
if ( $this->debugging ) echo "mpd->GetPlaylist() / return ".print_r($playlist)."\n";
return $playlist;
/* ----------------- Command compatibility tables --------------------- */
var $COMPATIBILITY_MIN_TBL = array(
MPD_CMD_SEEK => "0.9.1" ,
MPD_CMD_PLMOVE => "0.9.1" ,
MPD_CMD_RANDOM => "0.9.1" ,
MPD_CMD_PLSWAPTRACK => "0.9.1" ,
MPD_CMD_PLMOVETRACK => "0.9.1" ,
MPD_CMD_PASSWORD => "0.10.0" ,
MPD_CMD_SETVOL => "0.10.0"
var $COMPATIBILITY_MAX_TBL = array(
MPD_CMD_VOLUME => "0.10.0"
} // ---------------------------- end of class ------------------------------
?>
and the HTML output:
<HTML>
<style type="text/css"><!-- .defaultText { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; font-style: normal; font-weight: normal; color: #111111} .err { color: #DD3333 } --></style>
<BODY class="defaultText">
connected == FALSE ) {
echo "Error Connecting: " . $myMpd->errStr;
} else {
switch ($_REQUEST[m]) {
case "add":
if ( is_null($myMpd->PLAdd($_REQUEST[filename])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "rem":
if ( is_null($myMpd->PLRemove($_REQUEST[id])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "setvol":
if ( is_null($myMpd->SetVolume($_REQUEST[vol])) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "play":
if ( is_null($myMpd->Play()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "stop":
if ( is_null($myMpd->Stop()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
case "pause":
if ( is_null($myMpd->Pause()) ) echo "<SPAN CLASS=err>ERROR: " .$myMpd->errStr."</SPAN>";
break;
default:
break;
?>
<DIV ALIGN=CENTER>[ <A HREF="<? echo $_SERVER[PHP_SELF] ?>">Refresh Page</A> ]</DIV>
<HR>
<B>Connected to MPD Version mpd_version ?> at host ?>:port ?></B><BR>
State:
state) {
case MPD_STATE_PLAYING: echo "MPD is Playing [<A HREF='".$_SERVER[PHP_SELF]."?m=pause'>Pause</A>] [<A HREF='".$_SERVER[PHP_SELF]."?m=stop'>Stop</A>]"; break;
case MPD_STATE_PAUSED: echo "MPD is Paused [<A HREF='".$_SERVER[PHP_SELF]."?m=pause'>Unpause</A>]"; break;
case MPD_STATE_STOPPED: echo "MPD is Stopped [<A HREF='".$_SERVER[PHP_SELF]."?m=play'>Play</A>]"; break;
default: echo "(Unknown State!)"; break;
?>
<BR>
Volume: volume ?> [ <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=0'>0</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=25'>25</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=75'>75</A> | <A HREF='<? echo $_SERVER[PHP_SELF] ?>?m=setvol&vol=100'>100</A> ]<BR>
Uptime: uptime) ?><BR>
Playtime: playtime) ?><BR>
state == MPD_STATE_PLAYING or $myMpd->state == MPD_STATE_PAUSED ) { ?>
Currently Playing: playlist[$myMpd->current_track_id]['Artist']." - ".$myMpd->playlist[$myMpd->current_track_id]['Title'] ?><BR>
Track Position: current_track_position."/".$myMpd->current_track_length." (".(round(($myMpd->current_track_position/$myMpd->current_track_length),2)*100)."%)" ?><BR>
Playlist Position: current_track_id+1)."/".$myMpd->playlist_count." (".(round((($myMpd->current_track_id+1)/$myMpd->playlist_count),2)*100)."%)" ?><BR>
<HR>
<B>Playlist - Total: playlist_count ?> tracks (Click to Remove)</B><BR>
playlist) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
foreach ($myMpd->playlist as $id => $entry) {
echo ( $id == $myMpd->current_track_id ? "<B>" : "" ) . ($id+1) . ". <A HREF='".$_SERVER[PHP_SELF]."?m=rem&id=".$id."'>".$entry['Artist']." - ".$entry['Title']."</A>".( $id == $myMpd->current_track_id ? "</B>" : "" )."<BR>\n";
?>
<HR>
<B>Sample Search for the String 'U2' (Click to Add to Playlist)</B><BR>
Search(MPD_SEARCH_ARTIST,'U2');
if ( is_null($sl) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
foreach ($sl as $id => $entry) {
echo ($id+1) . ": <A HREF='".$_SERVER[PHP_SELF]."?m=add&filename=".urlencode($entry['file'])."'>".$entry['Artist']." - ".$entry['Title']."</A><BR>\n";
if ( count($sl) == 0 ) echo "<I>No results returned from search.</I>";
// Example of how you would use Bulk Add features of MPD
// $myarray = array();
// $myarray[0] = "ACDC - Thunderstruck.mp3";
// $myarray[1] = "ACDC - Back In Black.mp3";
// $myarray[2] = "ACDC - Hells Bells.mp3";
// if ( is_null($myMpd->PLAddBulk($myarray)) ) echo "ERROR: ".$myMpd->errStr."\n";
?>
<HR>
<B>Artist List</B><BR>
GetArtists()) ) echo "ERROR: " .$myMpd->errStr."\n";
else {
while(list($key, $value) = each($ar) ) {
echo ($key+1) . ". " . $value . "<BR>";
$myMpd->Disconnect();
// Used to make number of seconds perty.
function secToTimeStr($secs) {
$days = ($secs%604800)/86400;
$hours = (($secs%604800)%86400)/3600;
$minutes = ((($secs%604800)%86400)%3600)/60;
$seconds = (((($secs%604800)%86400)%3600)%60);
if (round($days)) $timestring .= round($days)."d ";
if (round($hours)) $timestring .= round($hours)."h ";
if (round($minutes)) $timestring .= round($minutes)."m";
if (!round($minutes)&&!round($hours)&&!round($days)) $timestring.=" ".round($seconds)."s";
return $timestring;
?>
</BODY></HTML>
As you can see it doesn't seem to understand the pointer operator. Do I have to enable anything in the PHP config files or something?

It's set up correctly. Also, it does parse PHP, just not after the arrow.
Here is my php.ini:
; With mbstring support this will automatically be converted into the encoding
; given by corresponding encode setting. When empty mbstring.internal_encoding
; is used. For the decode settings you can distinguish between motorola and
; intel byte order. A decode setting cannot be empty.
; http://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
; http://php.net/exif.decode-unicode-motorola
;exif.decode_unicode_motorola = UCS-2BE
; http://php.net/exif.decode-unicode-intel
;exif.decode_unicode_intel = UCS-2LE
; http://php.net/exif.encode-jis
;exif.encode_jis =
; http://php.net/exif.decode-jis-motorola
;exif.decode_jis_motorola = JIS
; http://php.net/exif.decode-jis-intel
;exif.decode_jis_intel = JIS
[Tidy]
; The path to a default tidy configuration file to use when using tidy
; http://php.net/tidy.default-config
;tidy.default_config = /usr/local/lib/php/default.tcfg
; Should tidy clean and repair output automatically?
; WARNING: Do not use this option if you are generating non-html content
; such as dynamic images
; http://php.net/tidy.clean-output
tidy.clean_output = Off
[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
; http://php.net/soap.wsdl-cache-dir
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
; http://php.net/soap.wsdl-cache-ttl
soap.wsdl_cache_ttl=86400
; Sets the size of the cache limit. (Max. number of WSDL files to cache)
soap.wsdl_cache_limit = 5
[sysvshm]
; A default size of the shared memory segment
;sysvshm.init_mem = 10000
[ldap]
; Sets the maximum number of open links or -1 for unlimited.
ldap.max_links = -1
[mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open
; Directory where to load mcrypt algorithms
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.algorithms_dir=
; Directory where to load mcrypt modes
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=
[dba]
;dba.default_handler=
; Local Variables:
; tab-width: 4
; End:
Last edited by BaconPie (2010-11-04 20:11:33)

Similar Messages

  • Php web site problem - after loding the web site  blank white page

    Hi Guys
    i've set up Mac server with 10.6.2 its running 3 web sites . the problem is when i upload the web files in to my Mac server and start to browsing from my laptop via internet, web site is not loading. So i upload the sample web page just as a simple html file. its working fine , But when i upload this php web site problem agin . problem : site is loading from loading bar, But i can not see anything from browser just white page , no page source nothing ......
    any suggestions ?

    This is the Error from Server Admin
    ing: date(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the datedefault_timezoneset() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /Library/WebServer/Documents/kortxpress/libraries/joomla/utilities/date.php on line 184
    [Mon Apr 12 14:51:38 2010] [error] [client 91.127.146.71] PHP Notice: A session had already been started - ignoring session_start() in /Library/WebServer/Documents/discard/config.php on line 2
    [Mon Apr 12 14:51:38 2010] [error] [client 91.127.146.71] PHP Warning: require_once(/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php ): failed to open stream: No such file or directory in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:51:38 2010] [error] [client 91.127.146.71] PHP Fatal error: require_once(): Failed opening required '/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php' (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:51:41 2010] [error] [client 91.127.146.71] PHP Notice: A session had already been started - ignoring session_start() in /Library/WebServer/Documents/discard/config.php on line 2
    [Mon Apr 12 14:51:41 2010] [error] [client 91.127.146.71] PHP Warning: require_once(/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php ): failed to open stream: No such file or directory in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:51:41 2010] [error] [client 91.127.146.71] PHP Fatal error: require_once(): Failed opening required '/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php' (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:51:42 2010] [error] [client 91.127.146.71] PHP Notice: A session had already been started - ignoring session_start() in /Library/WebServer/Documents/discard/config.php on line 2
    [Mon Apr 12 14:51:42 2010] [error] [client 91.127.146.71] PHP Warning: require_once(/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php ): failed to open stream: No such file or directory in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:51:42 2010] [error] [client 91.127.146.71] PHP Fatal error: require_once(): Failed opening required '/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php' (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Assigning the return value of new by reference is deprecated in /Library/WebServer/Documents/kortxpress/administrator/components/com_joomfish/c lasses/JoomfishManager.class.php on line 184
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Assigning the return value of new by reference is deprecated in /Library/WebServer/Documents/kortxpress/administrator/components/com_joomfish/c lasses/JoomfishManager.class.php on line 193
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Assigning the return value of new by reference is deprecated in /Library/WebServer/Documents/kortxpress/administrator/components/com_joomfish/c lasses/JoomfishManager.class.php on line 217
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Assigning the return value of new by reference is deprecated in /Library/WebServer/Documents/kortxpress/administrator/components/com_joomfish/c lasses/JoomfishManager.class.php on line 226
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function eregi() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 188
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 189
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the datedefault_timezoneset() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /Library/WebServer/Documents/kortxpress/libraries/joomla/utilities/date.php on line 56
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the datedefault_timezoneset() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /Library/WebServer/Documents/kortxpress/libraries/joomla/utilities/date.php on line 198
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the datedefault_timezoneset() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /Library/WebServer/Documents/kortxpress/libraries/joomla/utilities/date.php on line 198
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: copy(/Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/livechat-onl ine.jpg): failed to open stream: No such file or directory in /Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/helper.php on line 47
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: copy(/Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/livechat-off line.jpg): failed to open stream: No such file or directory in /Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/helper.php on line 52
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: copy(/Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/livechat-lar ge-online.jpg): failed to open stream: No such file or directory in /Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/helper.php on line 57
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Warning: copy(/Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/livechat-lar ge-offline.jpg): failed to open stream: No such file or directory in /Library/WebServer/Documents/kortxpress/modules/mod_jlivechat/helper.php on line 62
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:53:22 2010] [error] [client 91.127.146.71] PHP Deprecated: Function split() is deprecated in /Library/WebServer/Documents/kortxpress/plugins/system/jfrouter.php on line 594
    [Mon Apr 12 14:57:23 2010] [notice] caught SIGTERM, shutting down
    [Mon Apr 12 14:57:56 2010] [warn] module php5_module is already loaded, skipping
    [Mon Apr 12 14:57:57 2010] [notice] Apache/2.2.13 (Unix) PHP/5.3.0 configured -- resuming normal operations
    [Mon Apr 12 14:58:46 2010] [error] [client 91.127.146.71] PHP Notice: A session had already been started - ignoring session_start() in /Library/WebServer/Documents/discard/config.php on line 2
    [Mon Apr 12 14:58:46 2010] [error] [client 91.127.146.71] PHP Warning: require_once(/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php ): failed to open stream: No such file or directory in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:58:46 2010] [error] [client 91.127.146.71] PHP Fatal error: require_once(): Failed opening required '/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php' (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:58:48 2010] [error] [client 91.127.146.71] PHP Notice: A session had already been started - ignoring session_start() in /Library/WebServer/Documents/discard/config.php on line 2
    [Mon Apr 12 14:58:48 2010] [error] [client 91.127.146.71] PHP Warning: require_once(/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php ): failed to open stream: No such file or directory in /Library/WebServer/Documents/discard/index.php on line 5
    [Mon Apr 12 14:58:48 2010] [error] [client 91.127.146.71] PHP Fatal error: require_once(): Failed opening required '/Library/WebServer/Documents/discardclasses/mysql/DBConnection.php' (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/discard/index.php on line 5

  • Can I simply reinstall CS4 to resolve my operation problems?

    Can I simply reinstall Adobe CS4 (design std) on my Mac OS X to resolve my operation problems, such as "Unknown error" messges while using Ai and ID. My software has been trouble free for about a yr and half and suddenly several odd problems popped up in the last few months. If you think reinstalling will help, please give me a general direction for doing so. Thanks in advance!

    Hello,
    I heard that holding CMD+Option+r at bootup connects to Apple's servers & Lion download, hasn't been confirmed yet.

  • Query Region Update Operation problem

    Hi All,
    I have one Query region in Oracle seeded page.
    In Query region one table is there.
    My Client Requirement is he wants to add one text input field in table. so that user can enter comments in text input field.
    He also wants Update button as a Table Action and when he clicks on Update, this comments should get store into Database.
    I want to know that Update operation is possible in Query region's table.because when i handle event in controller, it gives me Following Exception.
    Logout
    Error Page
    Exception Details.
    oracle.apps.fnd.framework.OAException: java.lang.ArrayIndexOutOfBoundsException: 0
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:896)
         at oracle.apps.po.common.server.PoBaseAMImpl.executeServerCommand(PoBaseAMImpl.java:115)
         at oracle.apps.po.autocreate.server.ReqLinesVOImpl.executeQueryForCollection(ReqLinesVOImpl.java:67)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:742)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:891)
         at oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:805)
         at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:799)
         at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3575)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:437)
         at xxadat.oracle.apps.po.autocreate.webui.XXADATAttr15CO.processFormRequest(XXADATAttr15CO.java:73)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:815)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:382)
         at oracle.apps.fnd.framework.webui.beans.layout.OAStackLayoutBean.processFormRequest(OAStackLayoutBean.java:370)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1027)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:993)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:848)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:382)
         at oracle.apps.fnd.framework.webui.beans.layout.OARowLayoutBean.processFormRequest(OARowLayoutBean.java:366)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1027)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:993)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:848)
         at oracle.apps.fnd.framework.webui.beans.table.OAMultipleSelectionBean.processFormRequest(OAMultipleSelectionBean.java:481)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1042)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:993)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:848)
         at oracle.apps.fnd.framework.webui.OAAdvancedTableHelper.processFormRequest(OAAdvancedTableHelper.java:1671)
    The page which i have cutomized is /oracle/apps/po/autocreate/webui/ReqSearchPG.
    It is on R12.
    Can anybody throw some points on this?
    Regards
    Hitesh

    Hi,
    I got the problem,
    It is a standard functionality of oracle that we can not update Requisitions which are approved.
    My client requirement is that after approval of Requisition, he wants to update the Requisition.
    I said that it is not possible in Forms as well as OAF.
    The system will not allow to update Requisition once it is approved.
    Regards
    Hitesh

  • Dreamweaver 8, PHP, and WebDAV problems

    I'm not sure where else to post this but maybe some of you
    folks out
    there might know the answer.
    My web server, running IIS 6, supports both Coldfusion and
    PHP. I've
    recently enabled WebDAV for two dreamweaver users who want to
    transfer
    files securely using the check-in/check-out/sync processes
    built into
    dreamweaver.
    Unfortunately, they are unable to retrieve any PHP files. I
    had the
    same problem, I tried to sync the entire web site and all the
    html and
    image files came down fine, but ALL of the php files
    generated the
    following error:
    /development/index.php - error occurred - An HTTP error
    occurred -
    cannot get index.php. Access Denied. The file may not exist,
    or there
    could be a permission problem.
    File activity incomplete. 1 file(s) or folder(s) were not
    completed.
    Files with errors: 1
    /development/index.php
    the IIS log file shows an HTTP response code of 200 - no
    error.
    The file DOES exist, and the permissions are exactly the same
    on all the
    files, because I manually set the permissions on the web root
    and had it
    apply to all subfolders and files.
    I can't figure out why it's failing to retrieve the PHP
    files...
    Rick

    Sounds like a MS IIS problem. See if this TechNote helps:
    Configuring WebDAV in IIS for use with Dreamweaver
    http://www.adobe.com/go/19095
    It has some general IIS/WebDAV tips that might help. For the
    problem
    you're seeing, make sure to disable mappings for PHP, CFM,
    ASP, etc.
    Hope this helps,
    David Alcala
    Adobe Technical Support

  • Flex + amf php server deployment problem

    Hi all,
    After almost a month of research on this problem. I was able to remove all my errors on production but still not able to retrieve data.
    Please help......
    Here is the scenerio details :
    I created a form which will take input from user and store those values in database.you can visit it here on web server :
    http://www.accurateoptics.in/
    I followed all the steps mentioned on adobe's test drive tutorial. It works fine on my local machine with WAMP installation. But the moment,
    I upload it...Bang!!!! there comes the error ::::
    Channel.Connect.Failed error NetConnection.Call.BadVersion: : url: http://www.accurateoptics.in/gateway.php
    I googled again, read a lot of articles and figured out that some changes are required in my gateway.php and amf-config.ini files for production environment.
    Did the necessary changes and uploaded again.Bang!!!!!!! new error comes:::::::
    Channel disconnected before an acknowledgement was received.
    to solve this, again googled a lot and figured out that i need to upload zend framework files so, did that and setting up the path for zend in amf-config.ini.
    uploaded again.
    Now, i am stuck at this point where no error is thrown only an alert box comes with a ok button. also, data is not retrieved from server.
    I dont know what error i am making.here is my amf-config.ini file:::::::::::::
    [zend]
    ;set the absolute location path of webroot directory, example:
    ;Windows: C:\apache\www
    ;MAC/UNIX: /user/apache/www
    webroot =http://www.accurateoptics.in
    ;set the absolute location path of zend installation directory, example:
    ;Windows: C:\apache\PHPFrameworks\ZendFramework\library
    ;MAC/UNIX: /user/apache/PHPFrameworks/ZendFramework/library
    ;zend_path =
    zend_path = ./ZendFramework/library
    [zendamf]
    amf.production = true
    amf.directories[]= http://www.accurateoptics.in/services
    here is my gatway.php file :::::::::::::;
    <?php
    ini_set("display_errors", 1);
    //$dir = dirname(__FILE__);
    $dir = '.';
    $webroot = $_SERVER['DOCUMENT_ROOT'];
    //$configfile = "$dir/amf_config.ini";
    $configfile = "amf_config.ini";
    //default zend install directory
    $zenddir = $webroot. '/ZendFramework/library';
    //Load ini file and locate zend directory
    if(file_exists($configfile)) {
    $arr=parse_ini_file($configfile,true);
    if(isset($arr['zend']['webroot'])){
    $webroot = $arr['zend']['webroot'];
    $zenddir = $webroot. '/ZendFramework/library';
    if(isset($arr['zend']['zend_path'])){
    $zenddir = $arr['zend']['zend_path'];
    // Setup include path
    //add zend directory to include path
    set_include_path(get_include_path().PATH_SEPARATOR.$zenddir);
    // Initialize Zend Framework loader
    require_once 'Zend/Loader/Autoloader.php';
    Zend_Loader_Autoloader::getInstance();
    // Load configuration
    $default_config = new Zend_Config(array("production" => false), true);
    $default_config->merge(new Zend_Config_Ini($configfile, 'zendamf'));
    $default_config->setReadOnly();
    $amf = $default_config->amf;
    // Store configuration in the registry
    Zend_Registry::set("amf-config", $amf);
    // Initialize AMF Server
    $server = new Zend_Amf_Server();
    $server->setProduction($amf->production);
    if(isset($amf->directories)) {
    $dirs = $amf->directories->toArray();
    foreach($dirs as $dir) {
    // get the first character of the path.
    // If it does not start with slash then it implies that the path is relative to webroot. Else it will be treated as absolute path
    $length = strlen($dir);
    $firstChar = $dir;
    if($length >= 1)
    $firstChar = $dir[0];
    if($firstChar != "/"){
    // if the directory is ./ path then we add the webroot only.
    if($dir == "./"){
    $server->addDirectory($webroot);
    }else{
    $tempPath = $webroot . "/" . $dir;
    $server->addDirectory($tempPath);
    }else{
    $server->addDirectory($dir);
    // Initialize introspector for non-production
    if(!$amf->production) {
    $server->setClass('Zend_Amf_Adobe_Introspector', '', array("config" => $default_config, "server" => $server));
    $server->setClass('Zend_Amf_Adobe_DbInspector', '', array("config" => $default_config, "server" => $server));
    // Handle request
    echo $server->handle();
    ?>
    Looking for some help!! Thanks in advance..............

    Please elaborate.
    I tried visitng http://www.accurateoptics.in/endpoint.php
    but "page not found " returned
    However, i also tried visitng "http://www.accurateoptics.in/gateway.php"
    it shows me this echo result on page " Zend Amf Endpoint ".
    so, if i m reaching to this place that means my gateway.php and amf-config.ini is fine.
    the problem is somewhere else in any of these three files.

  • JAI + JAI Image IO - ImageWrite operation problem: color reversed

    I installed jai 1.1.3 and jai imageio 1.1 on jdk 1.6 and did a test with the following code.
         public static void main(String args[]) {
              Byte[] bandValues = new Byte[3];
              bandValues[0] = (byte)255;
              bandValues[1] = (byte)0;
              bandValues[2] = (byte)0;
              ParameterBlock params = new ParameterBlock();
              params.add((float)300).add((float)200);
              params.add(bandValues);
              PlanarImage bim = JAI.create("constant", params);
              JAI.create("imagewrite", bim, "d:/dev/baseImage.png", "PNG");
              JAI.create("filestore", bim, "d:/dev/baseImage2.png", "PNG");
              PlanarImage pi = JAI.create("imageread", "d:/dev/baseImage.png");
              PlanarImage pi2 = JAI.create("imageread", "d:/dev/baseImage2.png");
              JFrame frame = new JFrame();
              frame.setTitle("Output Image");
              Container contentPane = frame.getContentPane();
              contentPane.setLayout(new GridLayout(1,3));
              contentPane.add(new JScrollPane(new DisplayJAI(bim)));
              contentPane.add(new JScrollPane(new DisplayJAI(pi)));
              contentPane.add(new JScrollPane(new DisplayJAI(pi2)));
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setSize(960, 400);
              frame.setVisible(true);
         }I found that the color in the output file created by "imagewrite" was reversed - bim is red but pi is blue.
    The one created by "filestore" was correct: pi2 was red.
    Did I use the "imagewrite" operation incorrectly? How should I use the imagewrite operation?

    I think you are using it correctly and you've encountered a bug. The same thing occurs on my machine. PlanarImage is using an interlaced raster which stores pixels as BGRBGRBGR ect... But the only way I can see this causing a problem is if the imagewrite operation was going directly to the DataBuffer for the pixels. If it retrieved it through the raster the colors should not be switched.
    Interestingly enough if I do this
    JAI.create("imagewrite", bim.getAsBufferedImage(), "d:/dev/baseImage.png", "PNG");then it works correctly. This suggests even more that the fault is with imagewrite operation interpreting the PlanarImage wrongly.

  • Oracle-PHP PL/SQL Problem

    Dear,
    I have this situation:
    Inside PHP I call this statement:
    $usr_stmt = oci_parse($conn, "begin PKG_USERBEHEER_TEST.user_insert(PKG_USERBEHEER_TEST.user_create_type(:usr_id,:usr_naam,:usr_vnaam,:usr_email,:usr_pass,SYSDATE,NULL),:p_exusr_id); end;");
    binding the variables
    oci_bind_by_name($usr_stmt, ':usr_id', $USR_ID);
    oci_bind_by_name($usr_stmt, ':usr_naam', $USR_NAAM);
    oci_bind_by_name($usr_stmt, ':usr_vnaam', $USR_VNAAM);
    oci_bind_by_name($usr_stmt, ':usr_pass', $USR_PASS);
    oci_bind_by_name($usr_stmt, ':usr_email', $USR_EMAIL);
    oci_bind_by_name($usr_stmt, ':p_exusr_id', $EXEC);
    INSIDE MY PACKAGE:
    FUNCTION user_create_type(usr_id users.usr_id%TYPE, usr_naam users.usr_naam%TYPE, usr_vnaam users.usr_vnaam%TYPE, usr_email users.usr_email%TYPE, usr_pass users.usr_pass%TYPE, usr_start_datum users.usr_pass%TYPE, usr_eind_datum users.usr_eind_datum%TYPE) return user_rec is
    v_rec user_rec;
    Begin
    v_rec.usr_id := usr_id;
    v_rec.usr_naam := usr_naam ;
    v_rec.usr_vnaam:=usr_vnaam;
    v_rec.usr_email:=usr_email;
    v_rec.usr_pass :=usr_pass;
    v_rec.usr_start_datum := usr_start_datum;
    v_rec.usr_eind_datum := usr_eind_datum;
    return v_rec;
    end user_create_type;
    PROCEDURE user_insert(r IN OUT user_rec, p_exusr_id IN users.usr_id%TYPE) IS
    BEGIN
    --check if allowed
    IF(NOT checkallowedactions(p_exusr_id, 117)) THEN
    raise_application_error(-20999, 'User is not allowed executing this action');
    END IF;
    --end check if allowed
    SELECT seq_users.nextval
    INTO r.usr_id
    FROM dual;
    SELECT sysdate
    INTO r.usr_start_datum
    FROM dual;
    INSERT
    INTO users(usr_id, usr_naam, usr_vnaam, usr_email, usr_pass, usr_start_datum)
    VALUES(r.usr_id, r.usr_naam, r.usr_vnaam, r.usr_email, cryptit.encrypt(r.usr_pass), r.usr_start_datum);
    END user_insert;
    When I excecute my statement I get this error:
    Warning: oci_execute() [function.oci-execute]: ORA-06550: line 1, column 39: PLS-00363: expression 'PKG_USERBEHEER_TEST.USER_CREATE_TYPE' cannot be used as an assignment target ORA-06550: line 1, column 7: PL/SQL: Statement ignored in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\add_user.php on line 22
    But I need the out parameter, because I need my generated ID (Sequence) for futher use in my script.
    I'm not able to edit the pl/sql script because an other application is using it.
    Somebody can help me?
    Thx
    Davy

    The call to PKG_USERBEHEER_TEST.user_insert needs to pass a single PL/SQL variable as the first argument so that user_insert can return an update record. The OUT declaration of 'r' in user_insert is throwing the error. To that point, the problem is not due to PHP. You would get the same error in SQL*Plus.
    But, because you can't bind a record in PHP, you need to create a new PL/SQL function that calls PKG_USERBEHEER_TEST.user_create_type putting the returned record into a PL/SQL variable, and then calls user_insert. PHP would call the wrapper PL/SQL function.
    -- cj

  • Php mySQL filtering problem...really desperate

    Hi
    I have a live site that is currently causing me some issues
    It is a fashion site that sends the product information that is pulled in from sevaral table to the checkout.. the issue i am having is the incorrect stock id is being sent to the checkout so when it returns from the gateway it is updating the wrong stock levels.
    What is happening currently is the stockID from the first size is being sent.
    what i have is the following tables
    table 1 - beauSS13_products
    ProductID
    CatID
    table 2 - beauSS13_Cat
    catID
    table3 - beauSS13_Stock
    StockID
    ID (this was named like this incorrectly) but this joins with ProductID
    SizeID
    Stock
    beauSS13_SizeList
    SizeID
    Size
    the SQL is
    $var1_rsProduct = "-1";
    if (isset($_GET['ProductID'])) {
      $var1_rsProduct = $_GET['ProductID'];
    mysql_select_db($database_beau, $beau);
    $query_rsProduct = sprintf("SELECT * FROM beauSS13_Cat, beauSS13_products, beauSS13_Stock, beauSS13_SizeList WHERE beauSS13_products.CatID = beauSS13_Cat.catID AND beauSS13_products.ProductID = beauSS13_Stock.ID AND beauSS13_Stock.SizeID = beauSS13_SizeList.SizeID AND beauSS13_products.ProductID = %s AND beauSS13_Stock.Stock != 0 ", GetSQLValueString($var1_rsProduct, "int"));
    i think beauSS13_products.ProductID = beauSS13_Stock.ID shouldnt be there ( but am not sure what it should have )
    I need to identify the Unique Stock ID from table3 - beauSS13_Stock
    basically cant get my head round the logic...
    if i remove beauSS13_products.ProductID = beauSS13_Stock.ID
    then in the
    select list
    <select name="SelectSize" id="SelectSize">
            <option value="Select Size">Select Size</option>
            <?php
    do { 
    ?>
            <option value="<?php echo $row_rsProduct['Size']?>"><?php echo $row_rsProduct['Size']?></option>
            <?php
    } while ($row_rsProduct = mysql_fetch_assoc($rsProduct));
      $rows = mysql_num_rows($rsProduct);
      if($rows > 0) {
          mysql_data_seek($rsProduct, 0);
                $row_rsProduct = mysql_fetch_assoc($rsProduct);
    ?>
          </select>
    it outputs all sizes from the ProductID and not just from the selected item
    i have just tried
          <select name="SelectSize" id="SelectSize">
            <option value="Select Size">Select Size</option>
            <?php
    do { 
    ?>
            <option value="<?php echo $row_rsProduct['Size']?>"><?php echo $row_rsProduct['Size']?><?php echo $row_rsProduct['StockID']; ?></option>
            <?php
    } while ($row_rsProduct = mysql_fetch_assoc($rsProduct));
      $rows = mysql_num_rows($rsProduct);
      if($rows > 0) {
          mysql_data_seek($rsProduct, 0);
                $row_rsProduct = mysql_fetch_assoc($rsProduct);
    ?>
          </select>
    and adding <?php echo $row_rsProduct['StockID']; ?>
    i can see the correct StockID is showing in the size menu but i just need to get that to send to cart
    this is the code that sends the details to the cart
    $XC_editAction1 = $_SERVER["PHP_SELF"];
    if (isset($_SERVER["QUERY_STRING"])) $XC_editAction1 = $XC_editAction1 . "?" . $_SERVER["QUERY_STRING"];
    if (isset($_POST["XC_addToCart"]) && $_POST["XC_addToCart"] == "form1") {
      $NewRS=mysql_query($query_rsProduct, $beau) or die(mysql_error());
      $XC_rsName="rsProduct"; // identification
      $XC_uniqueCol="ProductID";
      $XC_redirectTo = "";
      $XC_redirectPage = "../cart.php";
      $XC_BindingTypes=array("RS","RS","FORM","FORM","RS","RS","RS","NONE");
      $XC_BindingValues=array("StockID","ProductID","SelectSize","Quantity","Product","Price"," Stock","");
      $XC_BindingLimits=array("","","","","","","","");
      $XC_BindingSources=array("","","","","","","","");
      $XC_BindingOpers=array("","","","","","","","");
      require_once('XCInc/AddToXCartViaForm.inc');

    >>Why do you think that?
    because it was looking for the specific record, but having added <?php echo $row_rsProduct['StockID']; ?> to the select list it needs to be there
    >>You are joining 4 tables so you need 3 join conditions. If that's the correct relationship ( and only you will know that) then the SQL is correct.
    yes that is the way the joins are meant to be
    >>The problem is most likely how you are assigning values to the cart. When the user selects a color, how is the associated stock id bound to the array?
    its sizes they select but same thing, in the above code that the thing i need to pass that value to the cart. the way i have it at the moment is in the code above
    i have icluded the full code below to show you how its working
    // *** X Shopping Cart ***
    $useSessions = false;
    $XCName = "beauloves";
    $XCTimeout = 1;
    $XC_ColNames=array("StockID","ProductID","Size","Quantity","Name","Price","Stock","Total") ;
    $XC_ComputedCols=array("","","","","","","","Price");
    require_once('XCInc/XCart.inc');
    $var1_rsProduct = "-1";
    if (isset($_GET['ProductID'])) {
      $var1_rsProduct = $_GET['ProductID'];
    mysql_select_db($database_beau, $beau);
    $query_rsProduct = sprintf("SELECT * FROM beauSS13_Cat, beauSS13_products, beauSS13_Stock, beauSS13_SizeList WHERE beauSS13_products.CatID = beauSS13_Cat.catID AND beauSS13_products.ProductID = beauSS13_Stock.ID AND beauSS13_Stock.SizeID = beauSS13_SizeList.SizeID AND beauSS13_products.ProductID = %s AND beauSS13_Stock.Stock != 0 ", GetSQLValueString($var1_rsProduct, "int"));
    $rsProduct = mysql_query($query_rsProduct, $beau) or die(mysql_error());
    $row_rsProduct = mysql_fetch_assoc($rsProduct);
    $totalRows_rsProduct = mysql_num_rows($rsProduct);
    mysql_select_db($database_beau, $beau);
    $query_rsCategory = sprintf("SELECT * FROM beauSS13_products WHERE
    beauSS13_products.CatID = (SELECT CatID from beauSS13_products WHERE beauSS13_products.ProductID = %s)", GetSQLValueString($var1_rsProduct, "int"));
    $rsCategory = mysql_query($query_rsCategory, $beau) or die(mysql_error());
    $row_rsCategory = mysql_fetch_assoc($rsCategory);
    $totalRows_rsCategory = mysql_num_rows($rsCategory);
    //  *** Add item to Shopping Cart via form ***
    $XC_editAction1 = $_SERVER["PHP_SELF"];
    if (isset($_SERVER["QUERY_STRING"])) $XC_editAction1 = $XC_editAction1 . "?" . $_SERVER["QUERY_STRING"];
    if (isset($_POST["XC_addToCart"]) && $_POST["XC_addToCart"] == "form1") {
      $NewRS=mysql_query($query_rsProduct, $beau) or die(mysql_error());
      $XC_rsName="rsProduct"; // identification
      $XC_uniqueCol="ProductID";
      $XC_redirectTo = "";
      $XC_redirectPage = "../cart.php";
      $XC_BindingTypes=array("RS","RS","FORM","FORM","RS","RS","RS","NONE");
      $XC_BindingValues=array("StockID","ProductID","SelectSize","Quantity","Product","Price"," Stock","");
      $XC_BindingLimits=array("","","","","","","","");
      $XC_BindingSources=array("","","","","","","","");
      $XC_BindingOpers=array("","","","","","","","");
      require_once('XCInc/AddToXCartViaForm.inc');
    function DoFormatCurrency($num,$dec,$sdec,$sgrp,$sym,$cnt) {
      setlocale(LC_MONETARY, $cnt);
      if ($sdec == "C") {
        $locale_info = localeconv();
        $sdec = $locale_info["mon_decimal_point"];
        $sgrp = $sgrp!="" ? $locale_info["mon_thousands_sep"] : "";
        $sym = $cnt!="" ? $locale_info["currency_symbol"] : $sym;
      $thenum = $sym.number_format($num,$dec,$sdec,$sgrp);
      return $thenum;
    then below is the form that sends the information to the cart
    <form id="form1" name="form1" method="post" action="<?php echo $XC_editAction1; ?>">
    <select name="SelectSize" id="SelectSize">
            <option value="Select Size">Select Size</option>
            <?php
    do { 
    ?>
            <option value="<?php echo $row_rsProduct['Size']?>"><?php echo $row_rsProduct['Size']?></option>
            <?php
    } while ($row_rsProduct = mysql_fetch_assoc($rsProduct));
      $rows = mysql_num_rows($rsProduct);
      if($rows > 0) {
          mysql_data_seek($rsProduct, 0);
                $row_rsProduct = mysql_fetch_assoc($rsProduct);
    ?>
          </select>
          <select name="Quantity">
            <option value="Select Quantity">Select Quantity</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
          </select>
    <input type="image" src="../images/SS13AddToCart.jpg" border="0" name="submit"/>
    <input type="hidden" name="XC_recordId" value="<?php echo $row_rsProduct['ProductID']; ?>" />
          <input type="hidden" name="XC_addToCart" value="form1" />
          </form>

  • PHP CGI scripts problem

    I am using iPlanet webserver on a Win 2000 machine. Amongst the other things
    I am doing with it, I have some PHP scripts which I want to run on it.
    I have followed the manual on CGI, but I cannot get it to work.
    After using the Admin setup, the 'obj.conf' file contains:
    NameTrans fn="pfx2dir" from="/abc" dir="c:/Netscape/Server4/xyz" name="cgi"
    Service fn="send-cgi" type="magnus-internal/cgi"
    <Object name="cgi">
    ObjectType fn="force-type" type="magnus-internal/cgi"
    Service fn="send-cgi"
    </Object>
    The 'mime.types' file contains:
    type=magnus-internal/cgi exts=cgi,exe,bat,php
    type=application/x-php exts=php
    Windows is set up to recognise '.php' extensions and run the PHP
    interpreter.
    The error message which I get is:
    [03/Oct/2001:16:38:51] failure ( 900): for host 132.132.132.132 trying to
    GET /zyz/test.php, send-cgi reports: could not send new process (The
    operation completed successfully.
    [03/Oct/2001:16:38:51] failure ( 900): cgi_send:cgi_start_exec
    c:\Netscape\Server4\abc\test.php failed
    Any ideas why this does not work?
    Steven

    Hi Steven ,
    Follow exactly
    http://benoit.noss.free.fr/php/install-php4.html
    to install and configure PHP in IWS under WIndowsNT.
    If it still does'nt works notify me.
    Regards
    T.Raghulan
    [email protected]

  • PHP and oracle problem

    Hi,
    I'm trying to create a chart with php ad oracle. I'm using this code
    <?
         function Num_of_Rows($column, $status, $table){                         
              $conn = oci_pconnect("$username", "$passwd", "$host");     
              $sql_query = "SELECT COUNT($column) AS NUMBER_OF_ROWS FROM $table WHERE Status = '$status'";
              $stmt= oci_parse($conn, $sql_query);
              oci_define_by_name($stmt, 'NUMBER_OF_ROWS', $number_of_rows);
              oci_execute($stmt);
              oci_fetch($stmt);
              return $number_of_rows;     
         $result1 = Num_of_Rows("Admin_Number", "Active", "AS_ADMINS");
         $result2= Num_of_Rows("Admin_Number", "Locked", "AS_ADMINS");
         echo $result1;
         echo $result2;
    ?>
    This code works but only once! When I delete the row $result1 = Num_of_Rows("Admin_Number", "Active", "AS_ADMINS"); the second call of the function works and when I delete      $result2= Num_of_Rows("Admin_Number", "Locked", "AS_ADMINS"); the furst call of the function works!
    It seems that I can use the function only once and I can't call it again. It seems that the problem is someone else. Do you have an idea?

    I don't know what you mean by "works".
    Have you tried changing the echo commands so the output is not adjacent?
    echo $result1 . "<br>\n";
    echo $result2 . "<br>\n";It seems odd to allow an arbitrary tablename but assume that there is always a column called STATUS.
    I'd recommend using bind variables where possible.

  • Down Arrow Key Problem

    Ok, so i was just messing around on my computer like always.  I held down the up arrow key to scroll up to a page, and when doing so the bottom arrow key came off.  This is where the fun begins .... I have tried numerous attempts to put the arrow key back on, but like most computers, it doesn't just "snap" back on as some people suggested.  And, if you haven't noticed, you can't go to google and type in "How to fix my down arrow key", so naturally i came here hoping to find some answers. 
    My computer is an HP dv7t Core i3-380 2.53 GHz Integrated Webcam and Fingerpring Reader.  Any and all assistance would be appreciated.  Pictures, tutorials, information ANYTHING to get this key back on.  Even suggestion will do; I can still use the key, but even that is messing up on me now.  What should i do?? Online help, take it to someone, or what?

    Does the problem happen if you reboot the system into Safe Mode by holding the Shift key at startup?
    Additionally, does the problem happen if you create a new user account in the Users & Groups system preferences and log into that?

  • Operation problem

    Dear All,
    I can not open Indesign CC 2014 and Windows 8 system always stopped the operation, Please help me to solve this problem? Thanks!

    Might be a number of different things, and Windows isn't very helpful at telling us what they are.
    ID is sensitive to badly made or damaged fonts. It might also be a font manger auto-activation plugin if you use a font manager.or it could be something else entirely.
    Things you can try:
    Trash the prefs. See Replace Your Preferences
    Reboot and log in on a different user account.
    Make sure the default printer is local (not network) and turned on. You can use a virtual printer, like MS Fax, if necessary. After one successful launch you should be able to change back.
    Remove any non-adobe plugins (old versions are not forward compatible).
    That little message under the dialog in the splash screen might give a clue, too.

  • 9.0 JSP EL Compliance (ternary operator problem)

    I've run into a problem porting an application from Tomcat 5.5 to WL 9 that I haven't been able to find any references to in any of the standard haunts. The problem is in reference to the handling of the arguments to the ternary operator that is part of the JSP 2.0 EL spec. Here is a dumbed down example of the problem that I am running into:
              ---------- START SAMPLE JSP -----------
              <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
              <%
              pageContext.setAttribute("fookmi", "fookmi");
              pageContext.setAttribute("fooku", "fooku");
              %>
              <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
              <html>
              <head>
              <title>My JSP 'forEachTest.jsp' starting page</title>
              </head>
              <body>
                   <c:out value="${fooku}"/>
                   <c:out value="${fookmi}"/>
                   <c:out value="${(true) ? 'fooku' : 'fookmi'}"/>
                   <c:out value="${(true) ? fooku : fookmi}"/>
              </body>
              </html>
              ---------- END SAMPLE JSP -----------
              Paying close attention to the last 2 c:out tags. (Note: I use c:out in the example but the results are the same regardless of the tag context, i've got examples in forEach and others)
              The server will not be able to compile the given jsp page and will error with the following:
              ----------------- BEGIN ERROR --------------
              forEachTest.jsp:19:15: No match was found for method setValue() in type org.apache.taglibs.standard.tag.rt.core.OutTag.
                   <c:out value="${(true) ? fooku : fookmi}"/>
              ^--------------------------^
              ----------------- END ERROR ---------------
              So if we take a look at the java source being rendered by the compiler you will see the following (extraneous info clipped).
              -------------- START FIRST COUT -----------
              if (__tag0== null )__tag0 = new org.apache.taglibs.standard.tag.rt.core.OutTag ();
              __tag0.setPageContext(pageContext);
              __tag0.setParent( null );
              __tag0.setValue(( java.lang.Object ) javelin.jsp.el.ExpressionEvaluatorImpl.evaluate("${fooku}",java.lang.Object.class,pageContext,_jspx_fnmap));
              activeTag=_tag0;
              __result__tag0 = __tag0.doStartTag();
              -------------- END FIRST COUT -----------
              -------------- START SECOND COUT -----------
              if (__tag1== null )__tag1 = new org.apache.taglibs.standard.tag.rt.core.OutTag ();
              __tag1.setPageContext(pageContext);
              __tag1.setParent( null );
              __tag1.setValue(( java.lang.Object ) javelin.jsp.el.ExpressionEvaluatorImpl.evaluate("${fookmi}",java.lang.Object.class,pageContext,_jspx_fnmap));
              activeTag=_tag1;
              __result__tag1 = __tag1.doStartTag();
              -------------- END SECOND COUT -----------
              -------------- START THIRD COUT -----------
              if (__tag2== null )__tag2 = new org.apache.taglibs.standard.tag.rt.core.OutTag ();
              __tag2.setPageContext(pageContext);
              __tag2.setParent( null );
              __tag2.setValue(( java.lang.Object ) javelin.jsp.el.ExpressionEvaluatorImpl.evaluate("${(true) ? \'fooku\' : \'fookmi\'}",java.lang.Object.class,pageContext,_jspx_fnmap));
              activeTag=_tag2;
              __result__tag2 = __tag2.doStartTag();
              -------------- END THIRD COUT -----------
              -------------- START FOURTH COUT -----------
              if (__tag3== null )__tag3 = new org.apache.taglibs.standard.tag.rt.core.OutTag ();
              __tag3.setPageContext(pageContext);
              __tag3.setParent( null );
              __tag3.setValue();
              activeTag=_tag3;
              __result__tag3 = __tag3.doStartTag();
              -------------- END FOURTH COUT -----------
              Notice that in the last c:out the __tag3.setValue() call does not provide any parameters and thus the compilation error we saw reported.
              My question is, am I doing something wrong here or is this possibly a bug in the WL 9 2.0 EL support?
              Final Note: This construct works fine in Tomcat 5.5.

    TÃtulo: Quer mudar sua vida??Leia com atenção!
              Autor: LUIZ
              Data: 19/11/2005
              Cidade: Boa Vista
              Estado: RR
              PaÃs: Brasil
              COMO ACABAR COM A DIFICULDADE FINANCEIRA
              ACABE COM A DIFICULDADE FINANCEIRA
              GANHE MUITO DINHEIRO COM APENAS 6 REAIS
              HONESTIDADE, INTELIGENCIA E EFICÁCIA
              POR FAVOR, LEIA COM BASTANTE ATENÇÃO, VALE A PENA!
              COMO TRANSFORMAR 6 (SEIS) REAIS EM NO MINIMO 6.000(SEIS MIL REAIS) !! : VOCÊ É CAPAZ, APENAS FAÇA FUNCIONAR.!
              Eu achei uma mensagem sobre esse assunto e não dei muita atenção por ser um texto muito longo e parecer ser presente de papai Noel, más resolvi arriscar e deu certo. Vou tentar resumir para que vc tbm não ache esse texto cansativo e se quiser mais informções mande-me um e-mail – [email protected].
              Funciona assim:
              PASSO 1: Separe 6 meias folhas de papel e escreva em cada uma, o seguinte bilhete: " POR FAVOR, PONHA-ME EM SUA LISTA DE REMETENTES" colocando seu nome e endereço logo abaixo. Agora adquira 6 notas de R$ 1,00 e envolva cada uma em um dos bilhetes que você acabou de escrever. Em seguida, envolva cada um deles novamente com um papel escuro, para evitar que alguém veja a nota e viole o envelope, roubando o dinheiro. Então coloque cada um dentro de um envelope e lacre. A lista abaixo contém 6 nomes com endereços e você tem 6 envelopes lacrados. Você deve REMETER PELO CORREIO, um envelope para cada um dos nomes da lista. Faça isto, anotando corretamente o nome e o endereço nos envelopes, depositando em seguida no correio. A lista se encontra no final desse texto : PASSO 2: Elimine o primeiro nome da lista (#1). Reordene a lista de 1 a 5, ou seja (2 torna-se 1), (3 torna-se 2), etc.. Coloque o SEU nome e endereço como o 6º(sexto) da lista. :
              PASSO 3: Após feitas as alterações acima, coloque este artigo em pelo menos 200 fóruns e newsgroups.Você pode modificar o texto deste artigo, mas por favor, mantenha a integridade da mensagem. Isto é importante. LEMBRE-SE, quanto mais mensagens nos fóruns, newsgroups e livros de visitas você colocar, mais dinheiro você ganhará!
              O retorno será melhor se você colocar um bom tÃtulo ( ou esse mesmo), que fique visÃvel para todos.
              Agora, coloque o artigo modificado (ou esse mesmo).Existem milhares de fóruns e newsgroups. Você só precisa de 200. Então mãos à obra, LEMBRE-SE Toda vez que alguém agir como você, salvando esta mensagem, seguindo e executando corretamente todas as instruções, 6 pessoas estão sendo beneficiadas com R$ 1,00 cada e seu nome subirá na lista. Assim as listas multiplicam-se rapidamente e seu nome vai subindo até atingir a primeira posição. Desta forma quando seu nome alcançar a #1 posição, você já terá recebido milhares de reais em DINHEIRO VIVO! Lembre-se que você só investiu R$6.00. Envie agora os envelopes, suba o nome dos participantes da lista e adicione seu próprio nome na sexta posição da lista, poste-a nos fóruns e você está no negócio!
              COMO POSTAR NOS NEWSGROUPS --------
              Etapa 1) Copie e salve este artigo em seu editor de texto. (selecione o texto, clique em Editar e Copiar, abra seu editor de texto e clique em Editar e Colar, depois clique em Arquivo e Salvar como .txt) Etapa 2) Faça as devidas alterações neste artigo, incluindo seu nome na sexta posição da lista. Etapa 3) Salve novamente o arquivo. Clique em Editar e Selecionar tudo. Clique novamente em Editar e Copiar. Etapa 4) Abra seu navegador, Netscape, Internet Explorer ou algum outro qualquer e procure vários newsgroups (fóruns on-line, cadernos de mensagens, locais de conversa, discussões) e poste uma mensagem nova em cada MURAL ou ÁREA, ou algo similar. Etapa 5) Para postar entre nesses newsgroups. No campo destinado para digitar o texto ou mensagem a ser enviada para o newsgroups, clique com o botão direito do mouse. Em seguida clique em Colar. Como Assunto ou tÃtulo, digite um nome que chame a atenção, como o meu, ou invente algo parecido. Clique em enviar e pronto, você acabou de enviar sua primeira mensagem! Parabéns...Etapa 6) Selecione outro newsgroups e repita o passo 5. Faça isso no mÃnimo para 200 newsgroups. **QUANTO MAIS MENSAGENS VOCÊ ENVIAR AOS NEWSGROUPS MAIS CHANCES VOCÊ TERÁ DE GANHAR MAIS DINHEIRO ** Pronto! Você logo começará a receber dinheiro pelo correio. Se você deseja ficar anônimo, você pode inventar um nome para usar na lista, contanto que o endereço esteja certo para que você receba o dinheiro. **CONFIRA SEU ENDEREÇO!!!.
              ------- PORQUE RENDE TANTO DINHEIRO --------
              Agora vamos ver POR QUE rende tanto dinheiro: Fazendo uma análise bastante pessimista, vamos supor que de cada 200 mensagens, apenas 5 dêem retorno. Assim das minhas 200 mensagens, receberei apenas R$5,00 referentes ao meu nome na #6 posição. Agora, cada uma das 5 pessoas que me enviaram R$1.00 postaram mais 200 mensagens cada uma. Se apenas 5 de cada 200 retornarem, receberei R$ 25,00 referentes ao meu nome na #5 posição. Agora, cada uma das 25 pessoas que me enviaram R$1.00 postaram mais 200 mensagens cada uma. Se apenas 5 de cada 200 retornarem, receberei R$ 125,00 referentes ao meu nome na #4 posição. LEMBRE-SE ! Estamos considerando um exemplo extremamente fraco. Agora, cada uma das 125 pessoas que me enviaram R$1.00 postaram mais 200 mensagens cada uma. Se apenas 5 de cada 200 retornarem, receberei R$ 625,00 referentes ao meu nome na #3 posição. Agora, cada uma das 625 pessoas que me enviaram R$1.00 postaram mais 200 mensagens cada uma. Se apenas 5 de cada 200 retornarem, receberei então R$ 3.125,00 referentes ao meu nome na #2 posição. Agora, cada uma das pessoas que me enviaram R$1.00 postaram mais 200 mensagens cada uma. Se apenas 5 de cada 200 retornarem, receberei nesta última fase R$ 15.625,00 referentes ao meu nome na #1 posição. INCRÍVEL! Com um investimento original de apenas R$6,00, cria-se uma oportunidade gigantesca. Estima-se que entre 20.000 e 50.000 novas pessoas se juntem à Internet todos os dias e vão para os chats e fóruns. "O que são seis reais para tentar uma chance milionária que pode dar certo?" As chances são grandes quando milhões de pessoas honestas como você estão se juntando a esse grupo?? Lembre-se, a HONESTIDADE faz parte deste jogo. MANDE UM DÓLAR AO INVÉS DE UM REAL PARA OS ESTRANGEIROS .
              IMPORTANTE: O envio das cartas contendo o bilhete e R$1,00, é que torna honesto e prospero o sistema, assim o sistema sobrevive, pois tudo que é desonesto, mais cedo ou mais tarde, fracassa certamente.
              NÓS SOMOS RICOS, NÓS SOMOS PROSPEROS, NÓS ESTAMOS CHEIOS DE SAÚDE E HARMONIA.
              **** SE VC DESEJA PARTICIPAR DESSA CORRENTE DE SOLIDARIEDADE E AO MESMO TEMPO FICAR RICO, MANDE (1 REAL) PARA CARA UM DOS NOMES ABAIXO******
              ENDEREÇOS DAS PESSOAS QUE VC DEVE ENVIAR R$1,00 JUNTO COM O BILHETE:
              1)Luiz Carlos Rodrigues - Av. Dr. Nilo Peçanha,252 - Marapé.
              CEP: 11070-050 SANTOS - SP
              2)Renato Pontes Eller - Rua Ranulfo Alves,709 Vila Isa.
              Cep: 35044-220 Governador Valadares - MG
              3)Dalton Sampaio - Rua Senador Máximo, 75 - Centro.
              Cep: 57250-000 Campo Alegre – AL
              4)Samuel Rodrigues P. Junior – Av. Ernani do Amaral Peixoto, 195 Apt 701 - Centro.
              Cep: 24020-071 Niterói - RJ
              5)PatrÃcia A de Barros Silva – Rua Maria Teresa Assunção 479 A –Penha
              CEP:03609.000 –São Paulo-SP
              6) Luiz Faustino – Rua Ágata, 238 – Jóckey Club
              CEP: 69313-108 – Boa Vista - RR
              NÃO PERCA TEMPO COMECE JÁ A ENVIAR SUAS CARTAS E POSTAR!!!QUANTO ANTES MELHOR, MAIS RAPIDO COMECARA A RECEBER AS SUAS CARTAS!!!!

  • PHP - GD Library problem - imagettftext() notworking

    Hi everyone, I'm not sure which is the best forum for this question...
    I'm using the bundled PHP on Snow Leopard but have run into a problem with a function from the GD library.
    The function imagettftext() is not recognised. There are lots of hits on google when looking for this problem and the solutions are very varied so I wondered if anyone knows what the exact problem is re the PHP bundle on Snow Leopard?

    The bundled PHP was not compiled with FreeType, which imagettftext() requires.

Maybe you are looking for

  • Flash Forms not displaying

    I have just about given up on flash forms. I have read just about every thread in this Forum, but cannot find the answer. Have worked with flash forms in the past, but after recently upgraded to a new box with Vista Business and Codl Fusion 8 Dev Edi

  • How to split the Multi Provider

    HI All, Please give me the steps How to split the Multi provider and also let me know how to find the multi provider is parellal or series? Thanks Vasu.

  • At PC boot NiPal Service Mgr fails and exits

    When the PC boots the operating system complains that NiPal Service Mgr needs to shut down. This occured after I had run a LwCVI program that locked up the computer so I cycled the power to get it back. I corrected this once by reinstalling LwCVI. Is

  • Any way to simulate a user drawing a straight line in Captivate 6?

    I'm trying to create a software simulation. While most of the user interaction with the software involves just clicking buttons and entering values in various fields, there is one place where the user has to draw a straight line from one point to ano

  • For Old Toad - Your Scrolling Text

    Hi Old Toad, I went to your example site and copied the code for your scrolling banner. I inserted the code as an html widget and all I did was change the text color and the text itself. I tried it out by publishing to a folder and for some reason it