Formularwerte nach Refresh behalten

MJRENNER

Mitglied
Hallo Leute,
da ich die letzen tage wieder sehr aktiv bin und gutam basteln bin und hier meine fragen immer sehr schnell und sehr gut beantwortet wurden dacht ich ich scheu mich nicht und frag direkt wieder! :-)

die sufu hier im forum habe ich befolgt aber leider nur einen eintrag gefunden der etwas auf mein problem zutrifft (zum. der titel). Habe es versucht aber hat nicht funktioniert.

Ich habe auf meiner Seite zwei "Forms" .. das eine ist für das absenden der kompletten daten zusändig und das andere für das Avatar. ich lade zuerst das avatar hoch und übergebe den bild namen dann in die haupt-form in ein verstecktes feld.

klappt alles wuenderbar muss noch paar schönheitsfehler ausbessern aber vom prinzip klappt es. mein problem ist das wenn ich die hauptdaten eingebe und danach das avatar hochlade wird die seite refresht und eine hauptdaten sind wech ..
gibt es eine möglichkeit das ich die werte behalte?

Hier mal der code damit es vllt etwas verständlicher ist ..

HTML:
  <table width="620" border="1">
  <tr>
      <td width="256"><form id="form1" name="form1" method="post" action="register_work.php">

  <p>
    Name:
    <input name="name" type="text" id="name" value="" />
    <br />  
    Nick:
    <input name="nick" type="text" id="nick"  />  
    <br />  
    E-Mail
    <input name="email" type="text" id="email"  />  
    <br />  
    PW:
    <input name="pw" type="text" id="pw"  />
    <br />
    <input name="avatar" type="hidden" id="avatar" value="<?php echo $_FILES['userfile']['name']; ?>" />
  </p>

    
    <input type="submit" name="Submit" value="Senden" />
  </p>
</form></td>
    <td width="348"> <form enctype="multipart/form-data" action="<? echo $SERVER['PHP_SELF']; ?>" method="post">
  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
  Avatar hochladen:
  <input name="userfile" type="file" />
  <input name="Send" type="submit" value="Send" />
</form>
<? 
if($_REQUEST['Send']) { 

$uploadDir = 'xxxxxxxxx/member/avatare/';
$uploadFile = $uploadDir . $_FILES['userfile']['name'];
echo "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
{ ?>Avatar Vorschau: <br /><img src="http://cms.mjrenner.de/member/avatare/<?php echo $_FILES['userfile']['name']; ?>" width="150" height="150" alt="">
<?php
}
else
{
echo "Es wurde ein Fehler gemeldet!\nHier sind die Fehler informationen:\n";
print_r($_FILES);
}
echo "</pre>";
}
?></td>
  </tr>
    <tr>
      <td colspan="2">absenden</td>
    </tr>
  </table>
 
Zuletzt bearbeitet:
Hi,

nimm die Eingabedaten doch mittels $_POST / $_GET entgegen und speicher diese jeweils in einer Session Variable ($_SESSION[]). In den Formularelementen kannst du dann als value die Session Variable entsprechend ausgeben.

Hoffe das war verständlich?
 
Hallo!

Oder noch einfacher --> alles in ein Formular stecken.
"multipart/form-data" erlaubt nämlich auch Textfelder. ;)

Im übrigen heisst es nicht $SERVER['PHP_SELF'] sondern $_SERVER['PHP_SELF'].

Gruss Dr Dau
 
@MJRENNER: Bitte beachte unsere Netiquette (Punkt 15) bzgl. der erwünschten deutschen Rechtschreibung, denn durchgängig kleingeschriebene Beiträge sind in unserem Forum nicht erwünscht.

Vielen Dank!

mfg Maik
 
Alles in ein Formular zu stecken löst allerdings das Problem des Infoverlusts im Falle eines Refrehs nicht.
Meiner Meinung nach hat der User dann halt Pech, wenn er grundlos F5 drückt. ;)

Aber wenn Du es unbedingt "deppensicher" machen willst, dann löse es halt über die angesprochene Session.
Dabei solltest Du aber auch prüfen ob der Browser Cookies akzeptiert..... wenn nicht, dann muss die Session per URL übergeben werden.
 
Oha ..
das sind ja ne menge Vorschläge! *g

Also seh ich das richtig kann ich für das Uploadfeld und die Textfelder das selber "Form" nehmen wir bei dem "Durchsuchen-Feld" ..
das ist ja cool .. dann werd ich das mal versuchen. Bedanke mich mal und komm wieder wenn ich es getestet habe!

PS: Sorry wegen der Kleinschreibung! ;)
 
Also seh ich das richtig kann ich für das Uploadfeld und die Textfelder das selber "Form" nehmen wir bei dem "Durchsuchen-Feld" ..
Ja.
Und dann greifst Du wie gewohnt auf die gesendeten Daten zu.
Also auf den Text mit $_POST und auf die Datei mit $_FILES.

[edit]
Noch zwei kleine Anmerkungen:
Für das Passwortfeld würde ich type="password" nehmen (damit z.B. in einem Internet-Cafe der Nachbar nicht das Passwort im Klartext auf dem Bildschirm sieht).
Das Passwortfeld würde ich zwei mal anlegen (um zu überprüfen ob der User sich beim Passwort verschrieben hat).
[/edit]
 
Zuletzt bearbeitet:
Ja.
Und dann greifst Du wie gewohnt auf die gesendeten Daten zu.
Also auf den Text mit $_POST und auf die Datei mit $_FILES.

[edit]
Noch zwei kleine Anmerkungen:
Für das Passwortfeld würde ich type="password" nehmen (damit z.B. in einem Internet-Cafe der Nachbar nicht das Passwort im Klartext auf dem Bildschirm sieht).
Das Passwortfeld würde ich zwei mal anlegen (um zu überprüfen ob der User sich beim Passwort verschrieben hat).
[/edit]

jo das mit dem passwort weiß ich schon *g wie geasgt ich mach alles noch im rohbau und auch das mit dem pw und so .. ist ja nur zu testzwecken! ;) aber danke fürs aufpassen

bin grad dran und habe ein form genommen und den upload befehl in die register_work.php gepackt aber iwi will es nicht .. bin noch am probieren ;)

edit : //

hier mal den code den ich momentan verwende ..
PHP:
<form enctype="multipart/form-data" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">

  <p>
    Name:
    <input name="name" type="text" id="name" value="" />
    <br />  
    Nick:
    <input name="nick" type="text" id="nick"  />  
    <br />  
    E-Mail
    <input name="email" type="text" id="email"  />  
    <br />  
    PW:
    <input name="pw" type="text" id="pw"  />
    <br />
    <input name="avatar" type="hidden" id="avatar" value="<?php echo $_FILES['userfile']['name']; ?>" />
  </p>

    
  </p>

  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
  Avatar hochladen:
  <input name="userfile" type="file" />
  <input name="Send" type="submit" value="Send" />
</form>
<? 
if($_REQUEST['Send']) { 

$uploadDir = 'xxxxr/avatare/';
$uploadFile = $uploadDir . $_FILES['userfile']['name'];

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile))
{
echo 'Grafiken hochgeladen und .. ';
}
else
{
echo "Es wurde ein Fehler gemeldet!\nHier sind die Fehler informationen:\n";
print_r($_FILES);
exit;
}


// Richtiges Format für Datum festlegen
setlocale(LC_TIME, 'de_DE');	
 
// Definition der Benutzer 
$benutzer[0]["name"] = $_POST['name']; 
$benutzer[0]["nick"] = $_POST['nick']; 
$benutzer[0]["email"] = $_POST['email']; 
$benutzer[0]["pw"] = $_POST['pw']; 
$benutzer[0]["geburtstag"] = 'keine angaben'; 
$benutzer[0]["geschlecht"] = 'keine angaben';  
$benutzer[0]["beruf"] = 'keine angaben';  
$benutzer[0]["hobbys"] = 'keine angaben'; 
$benutzer[0]["webseite"] = 'keine angaben';  
$benutzer[0]["status"] = "user";  
$benutzer[0]["avatar"] = $_FILES['userfile']['name'];
$benutzer[0]["wohnort"] = 'keine angaben'; 
$benutzer[0]["icq"] = 'keine angaben'; 
$benutzer[0]["msn"] = 'keine angaben';  
$benutzer[0]["xfire"] = 'keine angaben'; 
$benutzer[0]["signatur"] = 'keine angaben';  
$benutzer[0]["regdatum"] = strftime("%e. %B %Y"); 
$benutzer[0]["lastlogin"] = 'keine angaben'; 

// Aufbau der Datenbankverbindung 
include ("../connect.php");

// Daten eintragen 
while (list ($key, $value) = each ($benutzer)) 
{ 
  // SQL-Anweisung erstellen 
  $sql = "INSERT INTO ".
    	 "member (name, nick, email, pw, geburtstag, geschlecht, beruf, hobbys, webseite, status, avatar, wohnort, icq, msn, xfire, signatur, regdatum, lastlogin) ".
  		 "VALUES ('".  $value["name"]."', '".
                       $value["nick"]."', '".
                       $value["email"]."', '".
				  md5 ($value["pw"])."', '".
					   $value["geburtstag"]."', '".
					   $value["geschlecht"]."', '".
					   $value["beruf"]."', '".
					   $value["hobbys"]."', '".
					   $value["webseite"]."', '".
					   $value["status"]."', '".
					   $value["avatar"]."', '".
					   $value["wohnort"]."', '".
					   $value["icq"]."', '".
					   $value["msn"]."', '".
					   $value["xfire"]."', '".
					   $value["signatur"]."', '".
					   $value["regdatum"]."', '".
                       $value["lastlogin"]."')"; 
					   $query = mysql_query($sql);
					   
// Wenn alles richtig übergeben "Benutzer angelegt" wenn nicht -> Fehler !
if ($query)
  { 
    echo "Benutzer erfolgreich angelegt.<br>\n"; 
  } 
  else 
  { 
   echo "Fehler beim Anlegen der Benutzer.<br>\n"; 
  } 
} 
}
?>

zu testen auf: http://cms.mjrenner.de/member/file.php

er trägt mir den namen des avatars sauber in die DB ein es wird nur nicht hochgeladen.. ich glaub es ist schon spät ich seh mir das morgen nochmal an :-)
 
Zuletzt bearbeitet:
Zurück