1

我正在尝试将文件从基于 PHP 的网站上传到 Google Drive。我搜索,得到了 google-api-php-client 库。在文档中给出了一个示例,但可以在 php shell(命令行)上运行。我尝试在浏览器中运行该示例,但出现 curl 扩展错误,并修复了该问题。

现在我收到与验证代码以允许访问相关的错误。我的项目中根本不需要身份验证,但目前我可以尝试使用它。

我在文件中有以下代码www.mydomain.com/drive/index.php

    <?php
    require_once 'google-api-php-client/src/Google_Client.php';
    require_once 'google-api-php-client/src/contrib/Google_DriveService.php';

    $client = new Google_Client();
    // Get your credentials from the APIs Console
    $client->setClientId('MY-CLIENT-ID');
    $client->setClientSecret('MY-CLIENT-SECRET');
    $client->setRedirectUri('http://www.MY-DOMAIN.com/drive/auth.php');
    //AUTH.PHP should have code to authenticate code and return back another code.
    $client->setScopes(array('https://www.googleapis.com/auth/drive'));

    $service = new Google_DriveService($client);

//**********************authentication process for SHELL
//I want this authentication process to remove at all or convert to web based authentication        

    $authUrl = $client->createAuthUrl();

    //Request authorization
    print "Please visit:\n$authUrl\n\n";
    print "Please enter the auth code:\n";


    $authCode = trim(fgets(STDIN));

    // Exchange authorization code for access token
    $accessToken = $client->authenticate($authCode);
    $client->setAccessToken($accessToken);
//************************************************************
    //Insert a file
    $file = new Google_DriveFile();
    $file->setTitle('My document');
    $file->setDescription('A test document');
    $file->setMimeType('text/plain');

    $data = file_get_contents('document.txt');

    $createdFile = $service->files->insert($file, array(
          'data' => $data,
          'mimeType' => 'text/plain',
        ));

    print_r($createdFile);
    ?>

我可以在每次上传时无需验证即可上传文件吗?如果是,那怎么办?如果没有,那么如何进行身份验证?

4

3 回答 3

3

您不能将用于控制台开发的完全相同的示例用于 Web 开发。

你应该做一些改变,我会给你我的例子:

<?php
require_once 'googleapi/Google_Client.php';
require_once 'googleapi/contrib/Google_DriveService.php';

session_start();

$client = new Google_Client();
// Get your credentials from the APIs Console
$client->setApplicationName('Google+ PHP Starter Application');
$client->setClientId('ID');
$client->setClientSecret('Secret');
$client->setRedirectUri('Redirect');

//Voy a la dirección de la creación del permiso
$authUrl = $client->createAuthUrl();
print "<a href='$authUrl'>Connect Me!</a>";

//Regreso de la dirección con el código con el que puedo autenticarme
if (isset($_GET['code'])) {
  $accessToken = $client->authenticate($_GET['code']);
  file_put_contents('conf.json', $accessToken);
  $client->setAccessToken($accessToken);
  $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}


$client->setAccessToken(file_get_contents('conf.json'));
if ($client->getAccessToken()) {
//Significa que tengo derecho a manipular el servicio como quiera

// Elijo el servicio que quiero usar
$service = new Google_DriveService($client);

$file = new Google_DriveFile();
/*$file->setTitle('My document');
$file->setDescription('A test document');
$file->setMimeType('text/plain');

$data = file_get_contents('document.txt');

$createdFile = $service->files->insert($file, array(
      'data' => $data,
      'mimeType' => 'text/plain',
    ));

print_r($createdFile);
print "test";*/
}
?>
于 2013-06-15T10:13:03.440 回答
2
    <?php

        $con=mysql_connect("localhost","root","");
        mysql_select_db("trainee_devang",$con);

        if(isset($_POST['submit']))
        {
            $name=$_POST['name'];
            $email=$_POST['email'];
            $address=$_POST['address'];
            $country=$_POST['country'];
            $gender=$_POST['gender'];
              $hobby = implode(',', $_POST['hobby']);

            echo $ins="insert into itech (`name`,`email`,`address`,`country`,`gender`,`hobby`)values('".$name."','".$email."','".$address."','".$country."','".$gender."','".$hobby."')";
            mysql_query($ins);
            //header('location:view.php');

        }
        ?>
        <html>
        <head></head>
        <body>

        <form name="add.php" method="post" onSubmit="return validate()">
        <table align="center" border="1">
        <tr>
        <td>Name</td>
        <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
        <td>Email</td>
        <td><input type="text" name="email" id="email"></td>
        </tr>
        <tr>
        <td>Address</td>
        <td>
           <textarea rows="5" cols="20" name="address" wrap="physical"</textarea>
        </textarea>
        </td>
        </tr>
        <tr>
        <td>
         Country:<br/></td>
        <td>
        <select name="country" id="country">
        <option value="">Select Country</option>
        <option value="India">India</option>
        <option value="U.S.A">U.S.A</option>
        <option value="Canada">Canada</option></select>:<br />
        </td>
        </tr>
        <tr>
        <td>Gender</td>
        <td>
        Male:<input type="radio" value="Male" name="gender">:<br />
        Female:<input type="radio" value="Female" name="gender">:<br />
        </td>
        </tr>
        <tr>
        <td>Hobbies</td>
        <td>
         <input type="checkbox" name="hobby[]" value="cricket">cricket<br/>
         <input type="checkbox" name="hobby[]" value="Music">Music<br/>
         <input type="checkbox" name="hobby[]" value="Movie">Movie<br/>


        </td>
        </tr>
        <tr>
        <td></td>
        <td><input type="submit" name="submit" value="submit"></td>
        </tr>

        </table>
        </form>
        </body>
        </html>

        <script language="javascript" type="text/javascript">
         function validate()
             {
             if(document.getElementById("name").value=="")
             {
                 alert("Please Enter Your Name");
                 document.getElementById("name").focus();
                 return false;
             }

             if(document.getElementById("email").value=="")
             {
                 alert("Please Enter Your Email Id");
                 document.getElementById("email").focus();
                 return false;
             }

              if(document.getElementById("address").value=="")
             {
                 alert("Please Enter Your Address ");
                 document.getElementById("address").focus();
                 return false;
             }


              return true;
             }
        </script>

    *****************************************************************************
    edit.php
    **************************************************
    <?php

    $con=mysql_connect("localhost","root","");
    mysql_select_db("trainee_devang",$con);

    $id=$_GET['id'];

     $qry="select * from itech where id=$id";
    $data=mysql_query($qry);
    $result=mysql_fetch_assoc($data);
    echo $result['hobby'];
    //echo $id;
    if(isset($_POST['update']))
    {
        $name=$_POST['name'];
        $email=$_POST['email'];
        $address=$_POST['address'];
        $gender=$_POST['gender'];
        $hobby = implode(',', $_POST['hobby']);

        echo $upd="update itech SET  name='$name',email='$email',address='$address',gender='$gender',hobby='$hobby' where id=$id";exit;
        mysql_query($upd);
        header('location:view.php');


    }
    ?>




    <html>
    <head></head>
    <body>
    <form name="edit.php" method="post">
    <table align="center" border="1">

    <tr>
    <td>Name</td>
    <td><input type="text" name="name" id="name" value="<?php echo $result['name'];?>"></td>
    </tr>
    <tr>
    <td>Email</td>
    <td><input type="text" name="email" id="email" value="<?php echo $result['name'];?>"></td>
    </tr>
    <tr>
    <td>Address</td>
    <td>
       <textarea rows="5" cols="20" name="address" id="address" >
       <?php echo $result['address'];?>
    </textarea>
    </td>
    </tr>
    <tr>
    <td>
     Country:<br/></td>
    <td>
    <select name="country">
    <option value="">Select Country</option>
    <option value="<?php echo $result["id"]; ?>" 
    <?//php if($result["id"]==$_REQUEST["cat_id"]) { echo "Selected"; } ?>>
    <?//php echo $r["category_name"]; ?></option>

    <option value="India" <?php  if($result['country']=='India') { echo "Selected"; }?>>India</option>
    <option value="U.S.A" <?php  if($result['country']=='U.S.A') { echo "Selected"; }?>>U.S.A</option>
    <option value="Canada"<?php   if($result['country']=='Canada') { echo "Selected"; }?>>Canada</option></select>:<br />
    </td>
    </tr>
    <tr>
    <td>Gender</td>
    <td>
    <?php

    if($result['gender']=='Male')
    { ?>
    Male:<input type="radio" value="Male" name="gender" CHECKED><br />
    Female:<input type="radio" value="Female" name="gender"><br />
    <?php }elseif ($result['gender'] == 'Female') {?>

    Male:<input type="radio" value="Male" name="gender" ><br />
    Female:<input type="radio" value="Female" name="gender" CHECKED><br />
    <?php }?>
    </td>
    </tr>
    <tr>
    <td>Hobbies</td>
    <td>

     <input type="checkbox" name="hobby[]" value="cricket" <?php  if($result['hobby']=='cricket') { echo "checked=checked"; }?>>cricket<br/>
     <input type="checkbox" name="hobby[]" value="Music" <?php  if($result['hobby']=='Music') {echo "checked=checked";}?>>Music<br/>
     <input type="checkbox" name="hobby[]" value="Movie" <?php  if($result['hobby']=='Movie') { echo "checked=checked";}?>>Movie<br/>


    </td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" name="update" value="update"></td>
    </tr>

    </table>
    </form>
    </body>
    </html>

    <script type="text/javascript">
    function validation()
    {
        if(document.getElementById(name).value="");
        {
            alert("Plz Enter Your Name");
            document.getElementById(name).focus();
            return false;
        }
        if(document.getElementById(email).value="");
        {
            alert("Plz enter Emailid");
            document.getElementById(emailid).focus();
            return false;
        }
        if(document.getElementById(address).value="");
        {
            alert("Plz Enter Your Address");
            document.getElementById(address).focus();
            return false;
        }
        if(document.getElementById(gender).value="");
        {
            alert("Plz Select your gender");
            document.getElementById(gender).focus();
            return false;
        }
        if(document.getElementById(hobby).value="");
        {
            alert("Plz Select your Hobby");
            document.getElementById(hobby).focus();
            return false;
        }
        return true;

    }
    </script>
    **********************************************
    view.php
    ******************************************
    <?php

    $con=mysql_connect("localhost","root","");
    mysql_select_db("trainee_devang",$con);

    ?>

    <html>
    <head></head>
    <body>
    <table align="center" border="1">
    <tr>
    <th>Name</th>
    <th>EmailId</th>
    <th>Address</th>
    <th>Country</th>

    <th>Gender</th>
    <th>Hobby</th>
    <th>Action</th>
    </tr>
    <?php
    $sel="select * from itech";
    $data=mysql_query($sel);
    while($result=mysql_fetch_assoc($data))
    {?>
    <tr>
    <td><?php echo $result['name'];?></td>
    <td><?php echo $result['email'];?></td>
    <td><?php echo $result['address'];?></td>
    <td><?php echo $result['country'];?></td>

    <td><?php echo $result['gender'];?></td>
    <td><?php echo $result['hobby'];?></td>
    <td><a href="edit.php?id=<?php echo $result['id'];?>">Edit</a>
    <a href="delete.php?id=<?php echo $result['id'];?>">Delete</a>
    </td>

    </tr>
    <?php
    }?>

    </table>
    </body>
    </html>

   **********************************************
    pagination.php
    ******************************************

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
        <title>View Records</title>
</head>
<body>

<?php
/* 
        VIEW-PAGINATED.PHP
        Displays all data from 'players' table
        This is a modified version of view.php that includes pagination
*/

        // connect to the database
        include('connect-db.php');

        // number of results to show per page
        $per_page = 3;

        // figure out the total pages in the database
        $result = mysql_query("SELECT * FROM players");
        $total_results = mysql_num_rows($result);
        $total_pages = ceil($total_results / $per_page);

        // check if the 'page' variable is set in the URL (ex: view-paginated.php?page=1)
        if (isset($_GET['page']) && is_numeric($_GET['page']))
        {
                $show_page = $_GET['page'];

                // make sure the $show_page value is valid
                if ($show_page > 0 && $show_page <= $total_pages)
                {
                        $start = ($show_page -1) * $per_page;
                        $end = $start + $per_page; 
                }
                else
                {
                        // error - show first set of results
                        $start = 0;
                        $end = $per_page; 
                }               
        }
        else
        {
                // if page isn't set, show first set of results
                $start = 0;
                $end = $per_page; 
        }

        // display pagination

        echo "<p><a href='view.php'>View All</a> | <b>View Page:</b> ";
        for ($i = 1; $i <= $total_pages; $i++)
        {
                echo "<a href='view-paginated.php?page=$i'>$i</a> ";
        }
        echo "</p>";

        // display data in table
        echo "<table border='1' cellpadding='10'>";
        echo "<tr> <th>ID</th> <th>First Name</th> <th>Last Name</th> <th></th> <th></th></tr>";

        // loop through results of database query, displaying them in the table 
        for ($i = $start; $i < $end; $i++)
        {
                // make sure that PHP doesn't try to show results that don't exist
                if ($i == $total_results) { break; }

                // echo out the contents of each row into a table
                echo "<tr>";
                echo '<td>' . mysql_result($result, $i, 'id') . '</td>';
                echo '<td>' . mysql_result($result, $i, 'firstname') . '</td>';
                echo '<td>' . mysql_result($result, $i, 'lastname') . '</td>';
                echo '<td><a href="edit.php?id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>';
                echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>';
                echo "</tr>"; 
        }
        // close table>
        echo "</table>"; 

        // pagination

?>
<p><a href="new.php">Add a new record</a></p>

</body>
</html>
于 2013-07-14T12:27:57.767 回答
1
login.php
***************************************
<?php
        session_start();

        $con=mysql_connect("localhost","root","");
        mysql_select_db("trainee_devang",$con);

        if(isset($_POST['submit']))
        {

            $email=$_REQUEST['email'];
            $pass=$_REQUEST['password'];


             $sel="select * from elite where email='$email' and password='$pass'";
            $res=  mysql_query($sel);
            $co=  mysql_num_rows($res);

            echo $co;
            header("location:view.php");



                if($co>0)
                 {

                     $row=mysql_fetch_array($res);


                    $_SESSION['email']=$row['email'];



                    header("location:view.php");
                 }
                else
                {
                    echo "Please enter correct username or password....";
                    header("location:login.php");
                }

        }
?>

<html>
    <head>
        </head>
        <body>
            <fieldset style="background-color: lightblue;height: 400px;width: 500px;margin-left: 400px;margin-top: 120px;">
            <form action="" method="post">

                <h1 align="center" style="color: red;">Login Page</h1>
                <table align="center" border="1">
                <tr>
                    <td><b>Email</b></td>
                    <td><input type="text" name="email"></td>
                    </tr>
                    <tr>
                    <td><b>PassWord</b></td>
                    <td><input type="password" name="password"></td>
                    </tr>
                    </table><br /><br />
                <b><input type="submit" name="submit" value="submit" style="margin-left: 220px;color: red;"></b>
                </form>
                </fieldset>
            </body>
    </html>
*********************************************************
logout.php
**********************************************************


<?php
session_start();
session_destroy();
header("Location: login.php");
exit;
?> 
******************************
add.php
**********************************
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("trainee_devang",$con);

if(isset($_POST['submit']))
{
    $firstname=$_POST['firstname'];
    $lastname=$_POST['lastname'];
    $email=$_POST['email'];
    $password=$_POST['password'];
    move_uploaded_file($_FILES['image']['tmp_name'] ,"upload/".$_FILES['image']['name']);
    $img = $_FILES['image']['name'];

    $dob=$_POST['dob'];
    $address=$_POST['address'];

    echo $ins="insert into elite (`firstname`,`lastname`,`email`,`password`,`image`,`dob`,`address`)
    values('".$firstname."','".$lastname."','".$email."','".$password."','".$img."','".$dob."','".$address."')";
    mysql_query($ins);
header('location:view.php');


}
?>
<html>
<head>
</head>
<body>
<table align="center" border="1">
<form name="add.php" method="post"  enctype="multipart/form-data" onsubmit="return validation()">
<tr>
<td>FirstName</td>
<td><input type="text" id="firstname" name="firstname"></td>
</tr>
<tr>
<td>LastName</td>
<td><input type="text" id="lastname" name="lastname"></td>
</tr>

<tr>
<td>Email</td>
<td><input type="text" id="email" name="email"></td>
</tr>

<tr>
<td>Password</td>
<td><input type="password" id="password" name="password"></td>
</tr>

<tr>
 <td>Image</td>
 <td><input type="file" id="image" name="image"> </td>

 </tr>
<tr>
<td>Dob</td>
<td> <input type="text" name='dob' id="datepicker" /></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" id="address" name="address"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" id="submit"></td>
</tr>

</form>
</table>
</body>
</html>

<script type="text/javascript">
function validation()
{
    if(document.getElementById("firstname").value=="")
    {
        alert("Please Enter FirstName");
        document.getElementById("firstname").focus();
        return false;
    }
    if(document.getElementById("lastname").value=="")
    {
        alert("Please Enter lastname");
        document.getElementById("lastname").focus();
        return false;
    }
     var email = document.getElementById('email');
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(email.value)) 
    {
    alert('Please provide a valid email address');
    email.focus;
    return false;
    }
    if(document.getElementById("password").value=="")
    {
        alert("Please Enter password");
        document.getElementById("password").focus();
        return false;
    }
    if(document.getElementById("image").value=="")
    {
        alert("Please upload image");
        document.getElementById("image").focus();
        return false;
    }
    if(document.getElementById("dob").value=="")
    {
        alert("Please enter date");
        document.getElementById("dob").focus();
        return false;
    }


    if(document.getElementById("address").value=="")
    {
        alert("Please Enter address");
        document.getElementById("address").focus();
        return false;
    }

    return true;
}


</script>

<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });
  </script>
</head>
<body>




</body>
</html>
***************************************
view.php
************************************
<?php

session_start();
$con=mysql_connect("localhost","root","");
mysql_select_db("trainee_devang",$con);

echo $_SESSION['email'];
if(!isset($_SESSION['email']))
                {
                   header("location:login.php");
                }

?>
<html>
<head></head>
<body></body>
<table align="center" border="1">
<tr>
<th>FirstName</th>
<th>LastName</th>
<th>Email</th>
<th>Password</th>
<th>Image</th>
<th>D.O.B</th>
<th>Address</th>
<th>Action</th>
</tr>
<?php 
$vs="select * from elite";
$data=mysql_query($vs);
while($result=mysql_fetch_assoc($data))
{?>
<tr>
<td><?php echo $result['firstname'];?></td>
<td><?php echo $result['lastname'];?></td>
<td><?php echo $result['email'];?></td>
<td><?php echo $result['password'];?></td>
<td><img src="<?php echo "upload/".$result['image']; ?>" alt="" width="50px" height="50px"></td>
<td><?php echo $result['dob'];?></td>
<td><?php echo $result['address'];?></td>
<td><a href="edit.php? id=<?php echo $result['id'];?>">Edit</td>
<td><a href="delete.php? id=<?php echo $result['id'];?>">Delete</td>
<td><a href="logout.php?">Logout</td>

</tr>
<?php

}

?>
</table>
</html>
********************************************************
edit.php
*********************************************************
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("trainee_devang",$con);

$id=$_GET['id'];

echo $sel="select * from elite where id=$id";
$data=mysql_query($sel);
$res=mysql_fetch_assoc($data);

if(isset($_POST['update']))
{
    $firstname=$_POST['firstname'];
    $lastname=$_POST['lastname'];
    $email=$_POST['email'];
    $password=$_POST['password'];
    move_uploaded_file($_FILES['image']['tmp_name'] ,"upload/".$_FILES['image']['name']);
    $img = $_FILES['image']['name'];

    $dob=$_POST['dob'];
    $address=$_POST['address'];

     $upd="update elite SET  firstname='$firstname',lastname='$lastname',email='$email',password='$password',image='$img',dob='$dob',address='$address' where id=$id";
    mysql_query($upd);
    header('location:view.php');


}
?>
<html>
<head>
</head>
<body>
<table align="center" border="1">
<form name="edit.php" method="post"  enctype="multipart/form-data" onsubmit="return validation()">
<tr>
<td>FirstName</td>
<td><input type="text" id="firstname" name="firstname" value="<?php echo $res['firstname'];?>"></td>
</tr>
<tr>
<td>LastName</td>
<td><input type="text" id="lastname" name="lastname"value="<?php echo $res['lastname'];?>"></td>
</tr>

<tr>
<td>Email</td>
<td><input type="text" id="email" name="email"value="<?php echo $res['email'];?>"></td>
</tr>

<tr>
<td>Password</td>
<td><input type="password" id="password" name="password"value="<?php echo $res['password'];?>"></td>
</tr>

<tr>
 <td>Image</td>
 <td><input type="file" id="image" name="image"value="<?php echo $res['image'];?>"> </td>

 </tr>
<tr>
<td>Dob</td>
<td><input type="text" id="datepicker" name="dob"value="<?php echo $res['dob'];?>"></td>
</tr>
<tr>
<td>Address</td>
<td><input type="text" id="address" name="address"value="<?php echo $res['address'];?>"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="update" value="update"></td>
</tr>

</form>
</table>
</body>
</html>

<script type="text/javascript">
function validation()
{
    if(document.getElementById("firstname").value=="")
    {
        alert("Please Enter FirstName");
        document.getElementById("firstname").focus();
        return false;
    }
    if(document.getElementById("lastname").value=="")
    {
        alert("Please Enter lastname");
        document.getElementById("lastname").focus();
        return false;
    }
    if(document.getElementById("email").value=="")
    {
        alert("Please Enter emailid");
        document.getElementById("email").focus();
        return false;
    }
    if(document.getElementById("password").value=="")
    {
        alert("Please Enter password");
        document.getElementById("password").focus();
        return false;
    }
    if(document.getElementById("image").value=="")
    {
        alert("Please upload image");
        document.getElementById("image").focus();
        return false;
    }
    if(document.getElementById("dob").value=="")
    {
        alert("Please enter date");
        document.getElementById("dob").focus();
        return false;
    }


    if(document.getElementById("address").value=="")
    {
        alert("Please Enter address");
        document.getElementById("address").focus();
        return false;
    }
    return true;
}
</script>

<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });
  </script>
</head>
<body>
****************************************************
delete.php
*************************************************
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("trainee_devang",$con);

$id=$_GET['id'];

$del="delete from elite where id=$id";
mysql_query($del);
header('location:view.php');

?>
于 2013-07-23T16:37:56.073 回答