phpbar.de logo

Mailinglisten-Archive

[php] form + session

[php] form + session

Martin Butz php_(at)_phpcenter.de
Wed, 16 Jan 2002 10:23:24 +0100


Hallo Marcel,

> du musst die Formular-Variablen nach dem Ändern neu in der Session
> registrieren ...
OK. Ich dachte, dass tue ich auch; habe meinen Beispielcode
beigefuegt (hoffe, das Beispiel ist nicht zu lang); 

ich registriere meine Variable $test nachdem die Werte 
gecheckt und fuer gut befunden wurden; damit sollten 
doch auch Aenderungen in der Session wieder auftauchen? 
Tun sie aber nicht. Hat jemand eine Idee, was ich falsch 
mache?

------------>snip<-----------------------------
<?php

page_open(array("sess" => "fdr_Session"));

$form = new Form;
$form->ae(array("type" => "text",
			 "size" => "40",
			 "name" => "test",
			 "value" => "$test",
			 "max_l"=>20,
			 "min_l"=>1,
			 "length_e"=>"Bitte Text eingeben...",
			 "valid_regex"=>"^[a-zA-ZäöüÄÖÜß0-9\. -]*$",
			 "valid_e"=>"Bitte keine Sonderzeichen..."
			 ));

$form->ae(array("type" => "submit",
			 "size" => "120",
			 "name" => "submit",
			 "value" => "Daten abschicken"));

$form_ok = false;

/**
 *  form submitted
 */

if($submit) {

  // check sent values 
  $error = $form->ext_validate();
 
  $form_ok = true;

  // if invalid entry, set $form_ok = false
  // skip check for $submit
  
  while(list($k, $v) = each($error)) {
	 if($v != false and $k != "submit")
		$form_ok = false;
  }
  
  if ($form_ok) {
	 
	 // process form values here

	 $sess->register("test");
	 page_close();

	 echo "Daten werden in Session abgelegt und
verarbeitet...<p>";
         print "Wert von TEST: <b>" .$test.
"</b><p>&nbsp;</p>";

	 // DEBUG
	 var_dump($HTTP_POST_VARS);
	 
  } else {
	 
	 // load sent form values again for correction
	 $form->load_defaults();

  }
  
}


 // show form

if (!$submit or ($submit and !$form_ok)) {
  
  // extra html to display errors
  $open_html = "<br><font face='arial, sans-serif' size='-2'
color='#FF0000'><b>";
  $close_html = "</b></font><br>";
  
  $url = $sess->url($PHP_SELF);
  $form->start("", "post", $url, "_self");

  //print ("<font color=#FF0000>" .$error["test"].
"</font><br>");

  if("" != $error["test"]) {
	 $f_test = $open_html .$error["test"]. $close_html;
  } else {
	 $f_test = "";
  }
  $f_test .= $form->ge("test");

  print $f_test;

  $form->show_element("submit");
  $form->finish();

}

?>
--------->snap<-------------------------------

Gruss

Martin

-- 
************************************************************
*  sym.net  -  martin butz & christoph siefer gbr
*  zwirnerstrasse 26 - 50678 koeln - 0221/3762591
*  email: butz_(at)_sym.net - netz: http://www.sym.net


php::bar PHP Wiki   -   Listenarchive