| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

12-06-2011, 09:45
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
cURL - einfaches Formular ausfüllen funktioniert nicht
Ich möchte mein eigenes Formular nur zum Probieren ausfüllen lassen, doch funktioniert es nicht. (XAMPP, cURL aktiviert)
Die Datei besucher.txt bleibt leer, bei manuellem Ausfüllen klappt es ohne Probleme.
test.php mit Formular
PHP-Code:
<?php if ( empty ($_POST['vorname']) || empty ($_POST['nachname']) ) { if ( $_POST['kontrolle'] == 1 ) { echo "<p>Leere Felder zählen nicht</p>"; if ( empty ($_POST['vorname']) ) { echo "<p>Vornamen eintragen</p>"; } if ( empty ($_POST['nachname']) ) { echo "<p>Nachnamen eintragen</p>"; } } $PHP_SELF = $_SERVER['PHP_SELF']; echo '<form action="' . $PHP_SELF . '" method="post" enctype="multipart/form-data"> <input type="text" name="vorname" id="vorname" value="' . $_POST['vorname'] . '" /></label><br /> <input type="text" name="nachname" id="nachname" value="' . $_POST['nachname'] . '"/></label> <input type="hidden" name="kontrolle" value="1" /> <input type="submit" value="Absenden" />
</form>' ; } else { $handle = fopen ("besucher.txt", "a"); $daten = $_POST['vorname'] . " | " . $_POST['nachname'] . "\n"; fwrite ($handle, $daten ); fclose ($handle); echo "Daten erfolgreich eingetragen"; } ?>
Datei mit cURL Funktion
PHP-Code:
<?php function formular_automatisch ( $url, $var ) { $handle = curl_init($url); curl_setopt($handle, CURLOPT_TIMEOUT, 10); curl_setopt($handle, CURLOPT_FAILONERROR, 1); curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($handle, CURLOPT_POST, 1); curl_setopt($handle, CURLOPT_POSTFIELDS, $var ); curl_exec($handle); if ( curl_errno($handle) == 0 ) $send = true; else $send = false; curl_close($handle); return $send; }
if ( formular_automatisch("test.php", 'vorname=tester&nachname=test&kontrolle=1') ) echo "Erfolgreich"; else "Fehler"; ?>
|

12-06-2011, 13:22
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
Wenn ich http://localhost/test.php als URL angebe, dann funktioniert es, kommt cURL vielleicht nicht mit relativen Pfadangaben zurecht?
|

12-06-2011, 13:33
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von einermeiner
Wenn ich http://localhost/test.php als URL angebe, dann funktioniert es, kommt cURL vielleicht nicht mit relativen Pfadangaben zurecht?
|
Wie soll cURL von einem relativen Pfad auf die richtige URL schließen? Soll es raten?
Ich sag dir: Geh auf foobar.php. Woher weißt du jetzt, welche Seite ich meine? Welche Domain? Welches Protokoll?
|

12-06-2011, 13:38
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
Ich hatte beide Dateien lokal in demselben Ordner liegen, dachte, dass es deshalb funktioniere, aber jetzt weiß ich es ja.
|

12-06-2011, 13:42
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Welchen Sinn hat es ein Formular mit cURL abzusenden, wenn die andere PHP-Datei am selben Server liegt? Warum sprichst du die PHP-Datei nicht direkt an?
|

13-06-2011, 01:48
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
1. PHP_SELF ist böse (XSS)
2. multipart/form-data ohne input type="file" ist recht Sinn frei.
|

15-06-2011, 17:21
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
1. Gut zu wissen, jetzt weiß ich wieder, warum ich in einem anderen Beitrag nach einem PHP Sicherheitsbuch suche...
Wird aber auch in vielen Tutorials falsch gemacht, siehe php-kurs.com.
Und $_SERVER['SCRIPT_NAME'] ist "sicher"?
2. Soll ich "enctype" weglassen oder gibt es ein spezielles dafür?
|

15-06-2011, 19:48
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
1. action leer lassen oder auf "?" setzen.
2. enctype weglassen oder auf den Standardwert application/x-www-form-urlencoded setzen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

15-06-2011, 19:54
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
Beides weglassen funktioniert auch, dann nehme ich doch diese Variante.
|

15-06-2011, 19:58
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Das Attribut action darfst du leer lassen, aber nicht weglassen, denn es ist ein Pflichtattribut.
Bei enctype ist das anders, denn es ist ein Attribut mit einem Standardwert, der automatisch gesetzt wird (bzw. als gesetzt betrachtet wird), wenn dieses Attribut nicht angegeben ist.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

15-06-2011, 20:01
|
|
einermeiner
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 104
|
|
Danke!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|