הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה | התחברות באמצעות סוקטים.. (https://hosts.co.il/forums/showthread.php?t=68866)

Sagi 28-10-08 13:38

עזרה | התחברות באמצעות סוקטים..
 
שלום
אני מנסה להתחבר באמצעות סוקטים / curl
ניסיתי שתי הדרכים
בכל מקרה ההתחברות באתר מתבצעת בעוגיות ונראה לי שהשרת לא יכול לקבל עוגיות..
מה עושים בשביל לאפשר את זה?

יש לי גישת ROOT לשרת והכל..

omercnet 28-10-08 14:01

אתה יכול להסביר קצת יותר על מה שאתה רוצה לעשות?
אם לא בך לשתף אותנו בידיוק באתר שאתה רוצה להתחבר אליו, אז לפחות רק תתן תיאור כללי
אתה רוצה להתחבר לאתר ולעשות בו משהו? או לפתוח סוקט סתם ולדבר עם שירות כלשהוא?

Rom 28-10-08 14:03

תראה דוגמאות קוד של cURL ותראה איך עושים את זה.
יש אפשרות בעזרת cURL להתחבר עם קוקיס, ואז "לגלוש" באתר במתשמש שהתחברת איתו.

Sagi 28-10-08 14:06

אני מנסה להתחבר לאתר מרוחק באמצעות CURL

PHP קוד:

$ch curl_init();    
curl_setopt($chCURLOPT_URL"http://www.XXX.co.il/login.php");
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS"Username=xxx&Password=xxx");
curl_exec ($ch);     
curl_close ($ch); 

וזה לא הולך..
ברגע שאני רק גורם לזה לצפות בדף האתר מחזיר שהדפדפן לא מופעל אפשרות עוגיות..

מה עושים?

omercnet 28-10-08 14:09

יכול להיות שאת הCOOKIES קובעים עם JAVASCRIPT וCURL לא יודע לעבוד עם JS.

מה שהייתי מנסה לעשות זה אולי עם perl, אפילו PHP אפשר, לקחת את התוכן של הדף ולעבד אותו "ידנית", ז"א לקחת את הערכים של הCOOKIES ולהשתמש בהם לבד, מאשר לתת לJS לעשות את העבודה הזו, מאחר וCURL לא עושה JS

Sagi 28-10-08 14:24

אני חושב שאתה טועה..
ניסיתי לאתר אחר שהוא שלי שאני יודע בפירוש שהיצירת עוגיה היא ב PHP ועדין אין תגובה

daMn 28-10-08 14:29

יש אפשרות להתחבר עם קוקיס דרך curl,
שים לב למחלקה שנמצאת בתגובה הראשונה בעמוד הזה

vadimg88 28-10-08 17:36

נסה את זה , זה עובד לי מצויין:

קוד:

<?php


$host = 'domain.com'; // gateway host
$path = '/file.php'; // gateway uri
$autotaxusername = "***";
$autotaxpass = "*****";

$fh = fsockopen("$host", 80, $errno, $error, 15);
if ($fh)
{
        $params = "phone=".$phone."&message=".urlencode($message);
        $headers = array
        (        "Host: $host",
        "Connection: close",
        "Cookie: username=".$autotaxusername."; password=".$autotaxpass,
        "Content-Length: ".strlen($params),
        "Content-Type: application/x-www-form-urlencoded"
        );
        fwrite($fh, "POST $path HTTP/1.1\r\n".implode("\r\n", $headers)."\r\n\r\n");
        fwrite($fh, $params);
        $data = '';
        /*(for ($i=0; !feof($fh) && $i<20; $i++)
        {
        $data .= fgets($fp, 1024);
        }*/
        $data .= fread($fh, 5000);
        fclose($fh);

}

?>


Jerba 28-10-08 19:18

אם יש לך נסיון בסוקטים בשפות אחרות אז הנה קוד שבטוח תבין , מאוד דומה לסוקטים אמיתיים חח

PHP קוד:

<?php
//error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port 100;

/* Get the IP address for the target host. */
$address '192.168.2.1';



/* Create a TCP/IP socket. */
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
if (
$socket === false) {
    echo 
"socket_create() failed: reason: " socket_strerror(socket_last_error()) . "\n";
} else {
    echo 
"OK.\n";
}

echo 
"Attempting to connect to '$address' on port '$service_port'...";
$result socket_connect($socket$address$service_port);
if (
$result === false) {
    echo 
"socket_connect() failed.\nReason: ($result) " socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo 
"OK.\n";
}

$in 'GET / \r\n\r\n';
$out '';

echo 
"Sending HTTP HEAD request...";
socket_write($socket$instrlen($in));
echo 
"OK.\n";

echo 
"Reading response:\n\n";
while (
$out socket_read($socket1024)) 
{
    echo 
$out;
}

echo 
"Closing socket...";
socket_close($socket);
echo 
"OK.\n\n";
?>



כל הזמנים הם GMT +2. הזמן כעת הוא 04:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ