Ergebnis 1 bis 11 von 11

Thema: Ubergabe von Variablen an ein externes Script

  1. #1
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    Hallo zusammen.

    Ich verwende bei mir auf em Server Confixx um alles zu administrieren. Beim Confixx Webmail muss man zum einloggen sein Postfachnamen und das Passwort eingeben um einzuloggen.
    Da aber nicht jeder seinen Postfachnamen im Kopf hat sondern wohl eher die dazugehörige Emailadresse habe ich ein Script geschrieben welches anhand der Emailadresse den dazugehörigen Postfachnamen aus einer DB ausliesst. Funktioniert alles so weit. Nun möchte ich die Variablen Passwort und den Kontonamen an das Login Script von Confixx übergeben.
    Wie stell ich das an? An dem Loginscript von Confixx möchte ich nichts ändern. Per Header Location hab ichs probiert aber da werden die Variablen gelöscht.

    Habe an ein verstecktes Formular gedacht das per Js automatisch submitted. Das ist aber auch nicht gut weil sonst ja jeder im Code die Variablen auslesen kann.

    Hat vielleicht jemand eine gute Idee?


    Ach ja hier mal noch etwas Code:

    PHP-Code:
    <?php
    session_start
    (); //Session wird gestartet
    session_unregister('email_db'); //sessionvariablen werden gelöscht.
    session_unregister('kontoname_db'); //sessionvariablen werden gelöscht.
    session_unregister('passwort'); //sessionvariablen werden gelöscht.
    $field_ok=true//$field_ok ist zu beginn true.
    $login_ok=false// $login_ok ist zu beginn false.
    $error_mail=''//$error ist zu beginn leer. Wenn $field_ok=false wird $error gefüllt.
    $error_pw=''//$error ist zu beginn leer. Wenn $field_ok=false wird $error gefüllt.
    if ($HTTP_POST_VARS) { //Wenn formular gesendet wird abgefragt.        
        
    if (strlen($email)==0) { //ist feld email leer.
            
    $field_ok=false//$field_ok wird false.
            
    $error_mail"Bitte geben Sie eine Email Adresse ein!"//$error wird gefüllt.
            
    }
            else { 
    //wenn $email nicht leer wird zusätzlich emailadresse geprüfft.
                
    if (!eregi("^"."[a-z0-9]+([_\\.-][a-z0-9]+)*"."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$"$email)) {
                    
    $field_ok=false//ist keine gültige email eingetragen wird $field_ok=false.
                    
    $error_mail"Bitte geben Sie eine gültige Email Adresse ein!"//$error wird gefüllt.
                    
    }
            }
        if (
    strlen($passwort)==0) { //ist feld passwort leer.
            
    $field_ok=false//$field_ok wird false.
            
    $error_pw"Bitte geben Sie eine Passwort ein!"//$error wird gefüllt.
            
    }
        if (
    $field_ok) { //ist alles ok so ist auch $field_ok=true, und die datenbankverbindung wird hergestellt.
            
    include('var.inc.php'); //datenbankvariablen werden includiert.
            
    $conn = @mysql_connect($dbserver,$dbuser,$dbpass); //datenbankverbindung herstellen.
            
    if (!$conn) { //conn wird geprüft.
                
    $login_ok=false//wenn connt nicht vorhanden $login_ok=false.
                
    $error_pw"Die Datenbankverbindung ist leider fehlgeschlagen!"//$error wird gefüllt.
                
    }
                else {
                    
    $login_ok=true//wenn alles io wird $login_ok auf true gesetzt.
                    
    mysql_select_db($dbname,$conn); //datenbank auswählen.
                    
    $query "SELECT email,kontoname FROM webmail WHERE email = '".$email."'"//zeile selektieren über email.
                    
    $result mysql_query($query); //die abfrage wird in $result gespeichert.
                    
    if($login_ok) { //wenn $login_ok=true, wird zeile geholt,ausgelesen und session gestartet.
                        
    $zeileholen mysql_fetch_array($result); //array wird mit $result gefüllt.
                        
    mysql_close($conn); //datenbankverbindung wird geschlossen.
                        
    $email_db $zeileholen['email']; //variable email wird aus dem array geholt und stehen zur verfügung.
                        
    $kontoname_db $zeileholen['kontoname'];//variable kontoname wird aus dem array geholt und stehen zur verfügung.
                            
    if ($email==$email_db) { //eingegebene und aus datenbank bezogene email wird verglichen.
                                
    session_register('email_db'); //sessionvariablen werden registriert.
                                
    session_register('kontoname_db'); //sessionvariablen werden registriert.
                                
    session_register('passwort'); //sessionvariablen werden registriert.
                                
    header ("Location:[url]http://meine-domain.ch/cgi-bin/webmail/login.cgi[/url]"); //weiterleitung erfolgt.
                                
    }
                                else {
                                    
    $error_pw"Ungültige Email Adresse!!!"//$error wird gefüllt.
                                    
    }
                        }
                    }
            }
        }
    ?>
    Gruss: Spin
    Geändert von Spin (13.06.2003 um 11:32 Uhr)

  2. #2
    TP-Specialist Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Da wirst du keine Möglichkeit haben, da Confixx den User ja auch irgendwie über Cookies oder eine Session identifiziert. Und die wird ja von Confixx erstellt. Ein weiteres Problem wird wahrscheinlich sein, dass die beiden Seiten (Confixx und dein Script) auf unterschiedlichen Domains liegen und somit eine übernahme der Sessiondaten sogut wie unmöglich ist.

    Falls das nicht der Fall ist, könnte man, wenn Confixx die PHP-Sessions nutzt den Login-Vorgang nachbauen und mit Session-ID per Header weiterleiten. Auf alle Fälle ists halt problematisch, da der User sich identifizieren muss (via Cookie oder SID von Confixx)

    Gruss
    Jan

  3. #3
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    Hallo

    Theoretisch müsste ich einfach die Variablen in das Script login.cgi hineinposten. Ich kenne die Namen der Variablen in login.cgi. Dann müssten Sie doch dort zu Verfügung stehen. Schön wäre es wenn ich per Header oder so die Variablen mitgeben könnte.

    Am Confixx möchte ich eigentlich nicht rumschrauben. Die Session nützt mir nichts weil ich kann ja in Confixx keine Session starten.

    Ich suche eine möglichkeit die Variablen direkt in das Script hinein zu posten.

    Gruss: Spin

  4. #4
    TP-Specialist Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Und nochmal: Wie willst du mit PHP (das sich ja auf der Server-Seite) befindet einen Post ausführen, der den User (Client) am Server anmeldet? Da ist ganz einfach keine Verbindung zwischen Server und Client im Anmeldevorgang. DAS ist das Problem. Du könntest via Curl dein PHP Script im Confixx anmelden, aber zum Client kommst du nicht durch...

    Das die Daten im Confixx nicht ankommen, wenn du Sie via $_GET übergibst, wird an den Superglobals liegen. Oder wie übergibst du die per Header-Funktion?

    Aber nochmal zum Verständniss: Deine Leute fragen Ihr Konto per E-Mail-Adresse ab. Und dann willst du sie mit Passwort bei Confixx anmelden. Das sollte doch über ein stinknormales Formular mit Post-Methode funktionieren... Als Action-Attribut einfach das Confixx-Script angeben...

  5. #5
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    You could always build up the post header yourself using the header()
    function e.g...

    Hab da mal was gefunden was eigentlich funktionieren sollte.
    Aber ich schnalls nicht ganz was damit gemeint ist.

    PHP-Code:
    <?php // function to read server name function servername($txt) {  if
    (substr(strtoupper($txt),0,4)=="WWW.")  $txt="HTTP://".$txt;  if
    (
    substr(strtoupper($txt),0,7)!="HTTP://";)   return 0;
     
    eregi("^([url]http://[/url]([^/ ]+))",$txt,$arr);  return $arr[2]; } $remote_url =
    "http://www.domain.com/script.php"// built up post data $request =
    "?name=Paul&greatness=high"// Build the header  $header = "post
    $remote_url HTTP/1.0rn";  $header .= "Content-type:
    application/x-www-form-urlencodedrn";  $header .= "Content-length" .
    strlen($request) . "
    rnrn"; // Open the connection  $fp =
    fsockopen(servername($remote_url), 80);  if ($fp) {   // Send HTTP request
    fputs($fp, $header . $request);   // Get the response   $response="";  while
    (!feof($fp))   $response .= fgets($fp, 128);   fclose($fp);    print
    $response; } else {  die ("
    Cannot connect!"); } ?>
    Gruss: Spin

  6. #6
    TP-Specialist Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    klar... einfacher gehts per Curl... ABER das Script sendet den Post-Request und nicht der Client! Dein Script ist dann möglicherweise eingeloggt...(rein theoretisch gedacht) aber dein Client noch lange nicht!

    Was ist mit dem normalen Formular?

  7. #7
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    Ein formular habe ich schon.
    Ich möchte direkt in eine mir nicht zugängliches Script posten ohne das die sensiblen Daten in der Adresszeile erscheinen.
    Die zu übergebenden Variablen sind mir bekannt.

    Gruss: Spin

  8. #8
    TP-Specialist Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    boah... so langsam weiss ich nicht weiter...
    Hast du das denn verstanden, was ich bisher geschrieben habe? (du reagierst da in keinem einzigen Post von dir drauf...)
    Du weisst, dass man ein Formular auch vie POST (also nicht in der Adresszeile) abschicken kann?

  9. #9
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    Sorry bin ein bisschen langsam heute! Ist ein bisschen heiss hier in Zürich!

    Das ist der Codeschnipsel um den es geht. Der Post in meinem Formular wird eben php_self ausgeführt.

    PHP-Code:
                            if ($email==$email_db) { //eingegebene und aus datenbank bezogene email wird verglichen.
                                
    session_register('email_db'); //sessionvariablen werden registriert.
                                
    session_register('kontoname_db'); //sessionvariablen werden registriert.
                                
    session_register('passwort'); //sessionvariablen werden registriert.
                                
    header("Location:[url]http://217.172.167.100/cgi-bin/webmail/login.cgi[/url]);
                                }
                                else {
                                    $error_pw= "
    Ungültige Email Adresse!!!"; //$error wird gefüllt. 
    In der Datei Login.cgi müssen nacher die beiden Variablen $kontoname_db und $passwort zur verfügung stehen.
    Und die Variablen würde ich gerne über die header funktion übergeben.

    http://mail.nettown.ch

    mailadresse: test@test.ch
    passwort: test

    Gruss: Spin

  10. #10
    TP-Specialist Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Sorry, aber ich muss aufgeben... Wenn es bei euch so heiss ist, dann hör lieber auf und komm' in der Nacht wieder und lies dir meine Beiträge auch mal durch. Dort hab ich es (sogar öffters) erklärt... dass es SO nicht funktioniert!!

  11. #11
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Ubergabe von Variablen an ein externes Script

    Ich habs es klappt!

    Habs mit einem versteckten Formularfeld gelöst und im body mit on load!

    Danke viel mal für deine Geduld! Sorry ich war ein bisschen mühsam!

    Gruss: Spin

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51