opgave 7 C?

greenspun.com : LUSENET : WebdesignII : One Thread

Hej! min kode driller. Når jeg står i comments.tcl siden er det lige meget om jeg skriver noget i de forskellige felter eller ikke. Jeg får hver gang fejlmeddelelsen fra den første procedure jeg kører i comments_add.tcl som på nuværende tidspunkt er chk_text. Så jeg får aldrig kørt min indsættelse af data i tabellen (ns_db dml $db).

set_the_usual_form_variables 0

#Navnet skal bestå af mindst to rækker bogstaver proc chk_name { name } { set pattern {^[a-zA-Z]+[']*[a-zA-Z]+$} if {![info exists name] || ![regexp $pattern $name]} { ns_return 200 text/html "Error: Der er ikke opgivet et navn bestående af minimum et fornavn og et efternavn " return } }

proc chk_email { email } { set pattern {^([a-z]+[_]*[-]*[a-z]*@[a-z]+[-]*[a-z]*[\.][a-z\.]+)$} if {![info exists email] || ![regexp $pattern $email]} { ns_return 200 text/html "Error: Der er ikke opgivet en rigtig email" return } }

#Der skal være noget i boxen, men det er meget åbent hvad proc chk_text { text } { set pattern {^([.]+)$} if {![info exists text] || ![regexp $pattern $text]} { ns_return 200 text/html "Error: Der er ikke skrevet en kommentar" return } }

#kalder procedurerne [chk_text $text] [chk_name $name] [chk_email $email]

# Get a database handle set db [ns_db gethandle]

# The query ns_db dml $db "insert into comments (id, url, name, text, insertdate, email) values (comment_sequence.nextval, '$url', '$name', '$QQtext', sysdate, '$email');"

# Redirect to the Show-comments page ns_returnredirect "comments.tcl?url=$url"

-- Merete Lysholt (mlysholt@it-c.dk), April 07, 2002

Answers

Der er et par ting galt her! For det foerste skal kaldene til procedurerne chk_text, chk_name og chk_email ikke stå i [] da kaldene er på top-niveau. For det andet er der et semicolon for meget i SQL insert-kommandoen. For det tredie er det noedvendigt at benytte tcl-kommandoen exit istedet for return i procedurerne chk_*.

-- Martin Elsman (mael@it.edu), April 07, 2002.

Moderation questions? read the FAQ