Curl http request grab data

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
trelamenos333
Δημοσιεύσεις: 26
Εγγραφή: 24 Σεπ 2011 03:03

Curl http request grab data

Δημοσίευση από trelamenos333 » 18 Νοέμ 2015 12:49

Καλησπέρα παιδία,

Ξεκίνησα να χρησιμοποιώ curl για να http request για ενα application. Αυτό που δεν μπορώ να καταλάβω είναι το εξής:
1) Στην σελίδα που δηλώνουμε στο url πως μπορώ να διαχειριτώ αυτά που έχω κάνει Post. Πως μπορώ δηλαδή κάπου να καλέσω το
item1 => 'value',
item2 => 'value2'
είτε για εγγραφή σε μια βάση είτε για εκτέλεση κάποιας λειτουργίας.
2) Αν στο server side script υπάρχει η δυνατότητα για κάποιο redirection αντί να παραμείνω στην σελίδα που ήταν το curl

Κώδικας: Επιλογή όλων

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://testcURL.com',
    CURLOPT_USERAGENT => 'Codular Sample cURL Request',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        item1 => 'value',
        item2 => 'value2'
    )
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);
Ευχαριστώ πολύ εκ των προτέρων

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Curl http request grab data

Δημοσίευση από burnmind » 18 Νοέμ 2015 13:07

Για να πάρεις δεδομένα που στάλθηκαν μέσω ενός POST request, χρησιμοποίησε την $_POST. Παρεμπιπτόντως, ρίξε μια ματιά στο guzzle που θα κάνει τη ζωή σου πολύ πιο εύκολη όταν στέλνεις HTTP requests. Για να κάνεις redirect, δες την header.

trelamenos333
Δημοσιεύσεις: 26
Εγγραφή: 24 Σεπ 2011 03:03

Curl http request grab data

Δημοσίευση από trelamenos333 » 18 Νοέμ 2015 13:14

Αυτήν χρησιμοποιώ, ωστόσο ούτε εγγραφή στην βάση κάνει αλλά ακόμα και σε session Που πέρασα μια τιμή για να την καλέσω αλλού είναι κενό.
Αυτός είναι ο test κώδικας στο server side script

Κώδικας: Επιλογή όλων

<?php  session_start&#40;&#41;;
if&#40;isset&#40;$_POST&#91;'item1'&#93;,$_POST&#91;'item2'&#93;&#41;&#41;&#123;
    $db = new mysqli&#40;'connection info'&#41;;
    $item1 = $db->real_escape_string&#40;$_POST&#91;'item1'&#93;&#41;;
    $item2 = $db->real_escape_string&#40;$_POST&#91;'item2'&#93;&#41;;
    $query = "insert into users set username='$item1 ,$item2'";
    $db->query&#40;$query&#41;
&#125;
?>

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Curl http request grab data

Δημοσίευση από burnmind » 18 Νοέμ 2015 13:41

Δοκίμασε ένα εκ των 2, αν και μάλλον δεν είναι αυτό το πρόβλημα:

Κώδικας: Επιλογή όλων

CURLOPT_POSTFIELDS => array&#40; 
        'item1' => 'value', 
        'item2' => 'value2' 
    &#41; 

Κώδικας: Επιλογή όλων

CURLOPT_POSTFIELDS => 'item1=value&item2=value2'
Στο παράδειγμα που έδωσες, τα item1 και item2 είναι constants (επειδή τα δήλωσες χωρίς quotes), κάτι υποπτεύομαι πως δεν ήθελες. Αν δεν το έχεις κάνει ήδη, τότε ενεργοποίησε τα notices στο error reporting του php.ini στο μηχάνημα που δουλεύεις, ώστε η PHP να σε ενημερώνει για τέτοια πράγματα (θα σου έγραφε πως έχεις ένα undefined constant).

Ο κώδικάς σου λοιπόν πετάει κατά πάσα πιθανότητα notice, αλλά η PHP και πάλι θα δημιουργούσε από μόνη της τον πίνακα όπως πρέπει, γι' αυτό και λέω πως αυτό μάλλον δεν ήταν το πρόβλημα.

Καιρός για να κάνεις ένα απλό debug! Δες τι τιμή έχει η $resp μετά το request, στείλε τα δεδομένα στο script μέσω μιας κανονικής φόρμας και δες ότι υπάρχουν (var_dump) πριν ασχοληθείς με το τι θα τα κάνεις, κλπ. Γενικά, test-αρε τον κώδικά σου βήμα βήμα ώστε να ανακαλύψεις σε ποιο σημείο έχεις το πρόβλημα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες