Q:

Posting an Event to Page Wall with PHP - The Proper Page?

I'm getting tantalizingly close to completing this script.  The goal is to Post an event to one of my fan page walls.  The script is effectively grabbing the correct PAGE Access Token, and is effectively posting the event, but it's on my personal wall, not the page wall I'm trying to get it to.  
What am I missing?  It seems to be all there, but clearly something is inside out or backwards.
Any and all help is appreciated!  Here's the code:
<?php
    $app_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    $app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    $my_url = "http://xxxxxxxxxxxxxxxxxxxxxx.com/testfiles/fbeventform.php";

//Going to get the PAGE access code
//First to get USER Access Code
   session_start();
   $code = $_REQUEST["code"];

   if(empty($code)) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
     $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
       . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state'] . "&scope=create_event&scope=manage_pages";

     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }

   if($_REQUEST['state'] == $_SESSION['state']) {
     $token_url = "https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
       . "&client_secret=" . $app_secret . "&code=" . $code;

     $access_token = @file_get_contents($token_url);
     $params = null;
     parse_str($access_token, $params);

     $graph_url = "https://graph.facebook.com/me?access_token=" 
       . $params['access_token'];

     $user = json_decode(file_get_contents($graph_url));
     echo("Hello " . $user->name);
   }
   else {
     echo("The state does not match. You may be a victim of CSRF.");
   }

    echo '<hr />' . $access_token;

//Now, getting the PAGE Access token, using the user access token

    $page_token_url = "https://graph.facebook.com/" .  $page_id . "?fields=access_token&" . $access_token;
  $response = file_get_contents($page_token_url);

// Parse the return value and get the Page access token
  $resp_obj = json_decode($response,true);

  $page_access_token = $resp_obj['access_token'];

    echo '<hr />' . $page_access_token;

//Post the event--here's the form function

if( !empty($_POST) && (empty($_POST['name']) || empty($_POST['start_time']) || empty($_POST['end_time'])) ) {
    $msg = "Please check your inputs!";
} elseif(!empty($_POST)) {
    $url = "https://graph.facebook.com/" . $page_id . "/events?" . $access_token;
    $params = array();
    // Prepare Event fields
    foreach($_POST as $key=>$value)
        if(strlen($value))
            $params[$key] = $value;

    // Check if we have an image
    if( isset($_FILES) && !empty($_FILES['picture']['name']) ) {
        $uploaddir = './upload/';
        $uploadfile = $uploaddir . basename($_FILES['picture']['name']);
        if (move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile)) {
            $params['picture'] = "@" . realpath($uploadfile);
        }
    }  

    // Start the Graph API call
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    $result = curl_exec($ch);
    $decoded = json_decode($result, true);
    curl_close($ch);
    if(is_array($decoded) && isset($decoded['id'])) {
        // Event created successfully, now we can
        // a) save event id to DB AND/OR
        // b) show success message AND/OR
        // c) optionally, delete image from our server (if any)
        $msg = "Event created successfully: {$decoded['id']}";
    }
}
?>
    <form enctype="multipart/form-data" action="" method="post">
        <p><label for="name">Event Name</label><input type="text" name="name" value="a" /></p>
        <p><label for="description">Event Description</label><textarea name="description"></textarea></p>
        <p><label for="location">Location</label><input type="text" name="location" value="" /></p>
        <p><label for="">Start Time</label><input type="text" name="start_time" value="<?php echo date('Y-m-d H:i:s'); ?>" /></p>
        <p><label for="end_time">End Time</label><input type="text" name="end_time" value="<?php echo date('Y-m-d H:i:s', mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"))); ?>" /></p>
        <p><label for="picture">Event Picture</label><input type="file" name="picture" /></p>
        <p>
            <label for="privacy_type">Privacy</label>
            <input type="radio" name="privacy_type" value="OPEN" checked='checked'/>Open&nbsp;&nbsp;&nbsp;
            <input type="radio" name="privacy_type" value="CLOSED" />Closed&nbsp;&nbsp;&nbsp;
            <input type="radio" name="privacy_type" value="SECRET" />Secret&nbsp;&nbsp;&nbsp;
        </p>
        <p><input type="submit" value="Create Event" /></p>
    </form>
    </body>
    </html>

A:

On your $url = "https://graph.facebook.com/" . $page_id . "/events?" . $access_token; you're missing the query string name for the access token 
Try this
$url = "https://graph.facebook.com/" . $page_id . "/events?access_token=" . $access_token;

