Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

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

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

Απάντηση
Άβαταρ μέλους
iffor
Δημοσιεύσεις: 778
Εγγραφή: 14 Μάιος 2005 01:19
Τοποθεσία: Παράδεισος
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από iffor » 22 Νοέμ 2005 12:27

hello!!!!
Θα ήθελα να σας δώσω ένα παράδειγμα
Έστω ότι έχω μια φόρμα σε php για την αποστολή κάποιων πληροφοριών.
Εφόσον συμπληρωθούν τα πεδία, μέσω ενός submit αποστέλονται σε ένα script-ακι που τα διαβάζει και τα αποθηκεύει στην βάση.
Είναι δυνατον τώρα, καθώς εκτελείται το php-scrip και εφόσον έχει γίνει η εισαγωγή των πληροφοριών στη βάση, να δημιουργίσω μία φόρμα, η οποία θα στέλνει data σε άλλο script-ακι και να αποσταλθεί αυτή η καινούρια φόρμα αυτόματα (δεν θα έχω κάποιο 'κουμπι' για submit);
Δοκίμασα να δώσω στην καινούρια φόρμα στο tag <form> ένα onLoad="this.form.submit();" αλλά δεν έγινε τίποτα...
Υπάρχει κάποια ιδέα να γίνει κάτι τέτοιο είτε μέσω καθαρού κώδικα php είτε μέσω javascript;
Εχαριστώ εκ των προτέρων!
μια νέα αρχή ξεκίνησε...
ένας καινούριος δρόμος άνοιξε...
redpanda.gr

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από ThyClub » 22 Νοέμ 2005 12:31

Βάλε το onLoad στο <BODY> :wink:

Άβαταρ μέλους
iffor
Δημοσιεύσεις: 778
Εγγραφή: 14 Μάιος 2005 01:19
Τοποθεσία: Παράδεισος
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από iffor » 22 Νοέμ 2005 12:46

Δυστυχώς η δημιουργία της καινούριας φόρμας γίνεται μετά το tag body...
οπότε χτυπαέι λάθος αν καλέσω την submit.form για μια φόρμα που δεν έχει δημιουργηθεί ηδη!

edit -->
Τελικά είχες δίκιο, η βασική σου ιδέα είναι σωστότατη!
Απλός διαμόρφωσα τον κώδικα λιγάκι έτσι ώστε να βαστάει την ιδέα σου και όλα καλά τωρα, thanx!
μια νέα αρχή ξεκίνησε...
ένας καινούριος δρόμος άνοιξε...
redpanda.gr

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από skeftomilos » 23 Νοέμ 2005 12:15

Με τον τρόπο αυτό στον ουσία ζητάς από τον browser να κάνει την αίτηση, τη συμπλήρωση και την αποστολή της φόρμας. Αυτό δεν είναι και τόσο κακό, αν εξαιρέσεις μία μικρή καθυστέρηση, ένα μικρό flicker στην οθόνη του χρήστη, και την πιθανότητα να μην έχει JavaScript. Αν αισθάνεσαι διάθεση για περιπέτειες μπορείς να δοκιμάσεις να στείλεις τη δεύτερη φόρμα κατευθείαν από τον server με PHP. Με ASP το έχω δοκιμάσει με επιτυχία χρησιμοποιώντας ActiveX (MSXML2.ServerXMLHTTP). Με PHP θα σε γελάσω. Το μόνο σχετικό που βλέπω στο manual είναι η CURL (Client URL Library), αλλά δεν ξέρω κατά πόσο είναι εγκατεστημένη και διαθέσιμη στους διάφορους servers.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
iffor
Δημοσιεύσεις: 778
Εγγραφή: 14 Μάιος 2005 01:19
Τοποθεσία: Παράδεισος
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από iffor » 23 Νοέμ 2005 15:47

Σωστός!!!
Δεν το γνώριζα το συγκεκριμένο πακέτο!
απλός τώρα που το έθεσες, μπορείς να μου θέσεις την λογική που λειτουργεί?!
Είναι τόσο δυσκολα στην κατανόησή τους η θεωρία και τα παραδείγματα
στην σελίδα της php.net για την Client URL Library Functions που θα χρειαστεί λιγάκι βοήθεια :wink:
μια νέα αρχή ξεκίνησε...
ένας καινούριος δρόμος άνοιξε...
redpanda.gr

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από skeftomilos » 23 Νοέμ 2005 16:51

Χμ, μακάρι να μπορούσα να βοηθήσω περισσότερο, αλλά είμαι νέος ακόμα στην PHP και δεν της έχω πάρει τον αέρα. :) Η γενική ιδέα είναι ότι δίνουμε το url όπου θα σταλεί η φόρμα, λέμε ότι θα τη στείλουμε με τη μέθοδο POST, δίνουμε τα POST-DATA με τη μορφή μονοκόμματου string (π.χ. field1=value1&field2=value2), και περιμένουμε να έρθει η απάντηση από τον remote server (που μπορεί να είναι και ο δικός μας server). Αν ήθελες για ASP θα σου έλεγα αμέσως, αλλά για PHP ας μιλήσει κάποιος περισσότερο γνώστης. :P

Για την αποστολή με GET τα πράγματα είναι μάλλον πιο απλά, νομίζω ένα απλό fopen αρκεί.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από Rapid-eraser » 24 Νοέμ 2005 09:00

Eva paradigma xrisis eivai to eksis

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

<?
$ch = curl_init&#40;&#41;;   
curl_setopt&#40;$ch, CURLOPT_URL,'http&#58;//mysite.com/myform.php'&#41;; 
curl_setopt&#40;$ch, CURLOPT_POST, 1&#41;;
curl_setopt&#40;$ch, CURLOPT_POSTFIELDS, "foo1=bar1&foo2=bar2"&#41;;
curl_exec &#40;$ch&#41;;    
curl_close &#40;$ch&#41;;
?> 
foo1 n metabliti sou kai bar1 to value
Trabikse tis apo to keimevo se metablites
kai pistebw 8a eisai ok :)

Av se evdiaferei va tsimpiseis kai to output apo to POST
pou ekaves tote to proxoras kai allo stov kodika

To parapavo mporouse va grafei kai xoris CURL

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

<?
$Result = array&#40;&#41;;
$ReqHeader =
"POST $URI HTTP/1.1\n".
"Host&#58; $Host\n".
"Content-Type&#58; application/x-www-form-urlencoded\n".
"Content-Length&#58; $ContentLength\n\n".
"$ReqBody\n";

$socket = fsockopen&#40;$Host, 80, &$errno, &$errstr&#41;;
if &#40;!$socket&#41;&#123;
$Result&#91;"errno"&#93; = $errno;
$Result&#91;"errstr"&#93; = $errstr;
&#125;else&#123;

fputs&#40;$socket, $ReqHeader&#41;;
while &#40;!feof&#40;$socket&#41;&#41;&#123;
 $Result&#91;&#93; = fgets&#40;$socket, 128&#41;;
                       &#125;

&#125;
?>
Opos 8a deis o kodikas tou CURL eivai pio ka8aros giati
proetimazei olo to protokolo gia eseva ... distixos me post
prepei va katseis kai va to grapseis olo movos sou simplirovovtas
tis metablites pou xriazovte ksexorizovtas to HOST apo to URI
kai to sizei tou periexomevo apo ta headers aka.
Epidi tnv eixa etoimi tnv routina exo evsomatosei va epistrefei
ta error strings kai to output tou POST meta to submit.


Apo tnv alli meria CURL dev eivai pavtote dia8esima ... do your pick :)
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
iffor
Δημοσιεύσεις: 778
Εγγραφή: 14 Μάιος 2005 01:19
Τοποθεσία: Παράδεισος
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από iffor » 24 Νοέμ 2005 14:21

Ευχαριστώ για τις πληροφορίες και τα παραδείγματα!
Χρειάζονται στην αρχή ώστε να αρχίσει κάποιος σιγά σιγά να καταλαβαίνει και το δύσκολο manual της PhP! :P
μια νέα αρχή ξεκίνησε...
ένας καινούριος δρόμος άνοιξε...
redpanda.gr

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από skeftomilos » 24 Νοέμ 2005 18:04

Ωραία παραδειγματα! :D Αυτό που βλέπω όμως να λείπει από το παράδειγμα CURL είναι τα επιστρεφόμενα data. Πώς θα μάθουμε αν πήγαν όλα καλά ή όχι; :think:
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από Rapid-eraser » 24 Νοέμ 2005 20:22

H curl_exec ($ch); epistrefei to output tou call me eva
mikro configuration tou kodika.
Av to baleis se mia metabliti tote exeis ta epistrefomeva data

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

<?
$ch = curl_init&#40;&#41;;   
curl_setopt&#40;$ch, CURLOPT_URL,'http&#58;//mysite.com/myform.php'&#41;;
curl_setopt&#40;$ch, CURLOPT_POST, 1&#41;;
curl_setopt&#40;$ch, CURLOPT_FOLLOWLOCATION, 1&#41;;
curl_setopt&#40;$ch, CURLOPT_RETURNTRANSFER, 1&#41;;
curl_setopt&#40;$ch, CURLOPT_POSTFIELDS, "foo1=bar1&foo2=bar2"&#41;;
$returned_data = curl_exec &#40;$ch&#41;;   
curl_close &#40;$ch&#41;;
?>
Paralipsi mou.

To CURLOPT_FOLLOWLOCATION eivai aparetito av mas evdiaferei
to call mas va akolou8isei redirect pou 8a tixei stnv etisi mas ... px eva 404 error not found avti va kavei drop to link, H av iparxei
eva moved , http redirect etc.

Evergopiovtas to CURLOPT_RETURNTRANSFER tote n curl_exec 8a mas epistrepsei to output
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Αποστολή φόρμα αυτόματα (χωρις χρήση "κουμπιου" submit)

Δημοσίευση από skeftomilos » 25 Νοέμ 2005 02:29

Χρήσιμο, thanks! :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

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

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

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