jetzt habe ich aber ein anderes problem. ein nutzer muss sich registrieren um ein angebot in der datenbank zu hinterlegen. nachdem er sich angemeldet hat werden seine persönlichen daten die er bei der registrierung angegeben hat automatisch in die entsprechenden felder eingetragen die zu seinem angebot gehören (name, mail, tel, handy, ...).
seit wir die registrierungsseite verändert haben funktioniert das bei der erst-registrierung erst, wenn der nutzer sich vorher einmal aus und wieder eingelogt hat :-(
woran könnte das liegen?
hier ist mal der code einer eingabeseite:
<?php require_once('Connections/Registrierung.php'); ?>
<?php require_once('Connections/Eingabe.php'); ?>
<?php require_once('Connections/Registrierung.php'); ?>
<?php
//initialize the session
if (!isset($_SESSION)) {
session_start();
}
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "1home.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO Eingabe (abfahrtsort, zielort, datum, zeit, hinfahrtladeflaeche, hilfeeinausladen, rueckfahrt, rueckfahrtladeflaeche, preis, nutzername, mail, handy, tel) VALUES (%s, %s, '%04d-%02d-%02d', '%02d:%02d', %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['abfahrtsort'], "text"),
GetSQLValueString($_POST['zielort'], "text"),
GetSQLValueString($_POST['jahr'], "int"),
GetSQLValueString($_POST['monat'], "int"),
GetSQLValueString($_POST['tag'], "int"),
GetSQLValueString($_POST['stunde'], "int"),
GetSQLValueString($_POST['minute'], "int"),
GetSQLValueString($_POST['hinfahrtladeflaeche'], "text"),
GetSQLValueString($_POST['hilfeeinausladen'], "text"),
GetSQLValueString($_POST['rueckfahrt'], "text"),
GetSQLValueString($_POST['rueckfahrtladeflaeche'], "text"),
GetSQLValueString($_POST['preis'], "text"),
GetSQLValueString($_POST['nutzername'], "text"),
GetSQLValueString($_POST['mail'], "text"),
GetSQLValueString($_POST['handy'], "text"),
GetSQLValueString($_POST['tel'], "text"));
mysql_select_db($database_Eingabe, $Eingabe);
$Result1 = mysql_query($insertSQL, $Eingabe) or die(mysql_error());
$insertGoTo = "sDankesicher.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_R2 = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_R2 = $_SESSION['MM_Username'];
}
mysql_select_db($database_Registrierung, $Registrierung);
$query_R2 = sprintf("SELECT * FROM login WHERE nutzername = %s", GetSQLValueString($colname_R2, "text"));
$R2 = mysql_query($query_R2, $Registrierung) or die(mysql_error());
$row_R2 = mysql_fetch_assoc($R2);
$totalRows_R2 = mysql_num_rows($R2);
?>
eingelesen werden die registrierungsdaten dann automatisch hier:
...
<td height="29" align="right"><span class="Schriftangaben"><span class="Stil24">*</span>mail</span></td>
<td> </td>
<td colspan="4"><span id="sprytextfield2">
<input name="mail" type="text" id="mail" value="<?php echo $row_R2['mail']; ?>" size="30" maxlength="50" />
<span class="textfieldInvalidFormatMsg">zb: peter@gmx.de</span></span></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="29" align="right"><span class="Schriftangaben"><span class="Stil24">*</span>handy</span></td>
<td> </td>
<td colspan="4"><span id="sprytextfield3">
<input name="handy" type="text" id="handy" value="<?php echo $row_R2['handy']; ?>" size="18" maxlength="30" />
</span></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="29" align="right"><span class="Schriftangaben">tel</span></td>
<td> </td>
<td colspan="4"><input name="tel" type="text" id="tel" value="<?php echo $row_R2['tel']; ?>" size="18" maxlength="30" /></td>
<td> </td>
<td> </td>
</tr>
...
und hier nochmal der coder registrierungsseite:
<?php require_once('Connections/Registrierung.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "einfache registrierung")) {
$error = '';
mysql_select_db($database_Registrierung, $Registrierung);
$result = mysql_query("SELECT nutzername FROM login WHERE nutzername = '" . mysql_real_escape_string($_POST['nutzername']) . "'");
if (mysql_num_rows($result) > 0) {
$error = 'Dieser Loginname ist bereits vergeben. Bitte versuchen Sie es mit einem anderen Namen.';
} else {
$result = mysql_query("SELECT mail FROM login WHERE mail = '" . mysql_real_escape_string($_POST['mail']) . "'");
if (mysql_num_rows($result) > 0) {
$error = 'Diese Emailadresse ist bereits vergeben. Bitte versuchen Sie es mit einer anderen E-Mail.';
}
echo mysql_error();
}
echo mysql_error();
if ($error == "") {
$insertSQL = sprintf("INSERT INTO login (vornachname, nutzername, passwort, mail, handy) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['vornachname'], "text"),
GetSQLValueString($_POST['nutzername'], "text"),
GetSQLValueString($_POST['passwort'], "text"),
GetSQLValueString($_POST['mail'], "text"),
GetSQLValueString($_POST['handy'], "text"));
$Result1 = mysql_query($insertSQL, $Registrierung) or die(mysql_error());
$insertGoTo = "8cSieSindEingeloggt.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['nutzername']) && $_POST["MM_insert"] != "einfache registrierung") {
$loginUsername=$_POST['nutzername'];
$password=$_POST['passwort'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "8cSieSindEingeloggt.php";
$MM_redirectLoginFailed = "8bMeinkontologinfehlgeschlagen.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_Registrierung, $Registrierung);
$LoginRS__query=sprintf("SELECT nutzername, passwort FROM login WHERE nutzername=%s AND passwort=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $Registrierung) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>