phpbar.de logo

Mailinglisten-Archive

Re: HTML-mySQL
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HTML-mySQL



puh.. naja fangen wir mal an.
 
um ein typisches Formular abzufragen solltest Du dich doch wohl noch etwas
weiter belesen ;-) Im Ernst Du moechtest doch per CGI Deine Daten aus einem Formular
in eine DB "schubssen" dazu nimmt man ein CGI (PHP ist ungefaehr das gleiche, wenn als CGI
compiliert) oder ASP, aber da Du LINUX benutzt und kein PHP hasst ist entweder Perl oder
TCL fuer Dich prima geeignet.
 
es geht  so:
 
===========================================================
<html><head><title>dummes forumlar</title></head>
<body>
<form action="formular.cgi" method="post">
Nachname eingeben: <input type="text" name="nachname" values="">
<input type="submit" value="Nachname senden">
</form>
</body>
</html>
===========================================================
so das ist jetzt die htmlpage. jetzt noch das script dazu:
 
 
===========================================================
#!/usr/home/mysqltclsh/mysqltclsh
##########################################################################
## cgi.tcl
##########################################################################
 
#
# Unterprogramme für CGI-Skripte in tcl
#
 
proc CGI_Parameter {{args {}}} {
    # PARAMETER: Liste der CGI-Parameter
    # IST_LISTE: Array mit Parametern als Elementen:
    #            0 - Parameter ist keine Liste
    #            1 - Parameter ist eine Liste
    global PARAMETER IST_LISTE env
    if [info exists env(REQUEST_METHOD)] {
        if {$env(REQUEST_METHOD)!="POST"} {
            # GET...
            set query $env(QUERY_STRING)
        } else {
            # POST...
            set query [read stdin $env(CONTENT_LENGTH)]
        }   
    }
 
    proc wandle {str} {
        # Ersetzungen durch den Client rückgängig machen:
        # Leerzeichen wurden durch + ersetzt:
        regsub -all {\+} $str " " str
        # In str Hexzahlen rückwandeln
        # Zeilenumbrüche wurden durch %0D%0A ersetzt:
        regsub -all {%0[dD]%0[aA]} $str "\n" str
        # Sonderfall & wegen Sonderbedeutung in regsub:
        regsub -all "%26" $str \\& str
        # sonstige Hexzahlen rückwandeln:
        while {[regexp {%([0-9a-fA-F][0-9a-fA-F])} $str dummy hexzahl]} {
            regsub "%$hexzahl" $str [format "%c" "0x$hexzahl"] str
        }
        return $str
    }
 
    # Extrahieren der einzelnen Variablen:
    while {[regexp {([^&]+)=([^&]*)} $query alles vname vwert]} {
        set vname [wandle $vname]
        set vwert [wandle $vwert]
        global $vname
        if [info exists $vname] {
            if $IST_LISTE($vname) {
                lappend $vname $vwert
            } else {
                set IST_LISTE($vname) 1
                set $vname [list $vname $vwert]
            }
        } else {
            set $vname $vwert
            set IST_LISTE($vname) 0
            lappend PARAMETER $vname
        }
        # extrahiertes Paar entfernen:
        regsub {([^&]+)=([^&]*)} $query "" query
    }
    # Übergebene Variablen erzeugen, falls nicht enthalten:
    foreach el $args {
        if {![info exists $el]} {
            global $el
            set IST_LISTE($el) 0
            set $el ""
        }
    }
}
 
proc HTTP_Header {{args {}}} {
    # Schreibt "Content-Type: text/html" und "" and stdout.
    # optionale Parameter werden als HTTP-Header ausgegeben.
    puts "Content-Type: text/html\n\n"
    foreach el $args {
 puts $el
    }
    puts ""
}
 
CGI_Parameter nachname
 
HTML_Header
puts "<html><head>Nachname Ergebnis</title></head>"
puts "<body>"
puts "Der Nachname ist $nachname"
puts "</body></html>"
===========================================================
 
nicht vergessen mit chmod 755 das script als ausfuehrbar zu setzen (vorher natuerlich
noch mysqltcl STATIC(!) compilieren
 
oder wenn Du das gelich in die DB bringen willst:
 
(die selben proceduren wie oben jedoch
===========================================================
set handle [mysql -u benutzer -ppasswort -h host datenbank]
set sql "insert into namen values('$nachname')"
mysqlexec $handle $sql
HTML_Header
puts "<html><head>Nachname Ergebnis</title></head>"
puts "<body>"
puts "Der Nachname ist $nachname"
puts "</body></html>"
===========================================================
 
die DB hat nur eine spalte naemlich "nachname" und heisst "namen"
 
 
Mariano
 
(ps das war TCL)
-----Ursprüngliche Nachricht-----
Von: Frank Tscheschlog <Frank.Tscheschlog_(at)_kaeseblatt.de>
An: mysql-de_(at)_lists.4t2.com <mysql-de_(at)_lists.4t2.com>
Datum: Dienstag, 30. November 1999 13:43
Betreff: HTML-mySQL

Hallo Leute!
 
Ich habe eine vielleicht ganz dumme Frage...
Seit 3 Tagen (à 9 Stunden!) lese ich alles was
ich über SQL finden konnte. (Bücher, WWW)
 
Die Abfrage (SELECT, FROM etc...) ist ja schön
und gut und verständlich. Jedoch schreibt niemand
wie ich eine profane HTML-Abfrage mit einem normalen
Formular starte !
 
Und als welches Format exportiere ich Datenbank, damit
der Aufruf erfolgen kann?
 
 
Auf meinem Server läuft Linux & mySQL (kein PHP)
 
 
Dankend
   euer,
        Frank Tscheschlog


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive