1.5k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Ich habe beim Login folgendes Problem:

Wenn sich ein User das 1. mal einloggt soll ein Fragebogen erscheinen, den er ausfüllen muss, um zur index zu gelangen. wenn er sich das nächste mal einloggt, soll dieser Fragebogen nicht mehr erscheinen, da ja schon ein eintrag in der Datenbank vorhanden ist. Ich habe dies mit einem status (bool) gelöst, aber irgendwie kommt bei mir immer der anfangsfragebogen....kann mir da jemand helfen?

4 Antworten

0 Punkte
Beantwortet von deluxestyle Mitglied (901 Punkte)
hm... dafür solltest du ein bisschen mehr Infos geben

Um was handelt es sich eigentlich?
Ein php Script
0 Punkte
Beantwortet von
Also es ist so: Ich bin an einem Online-Fitnesscoach dran und beim 1. Login muss er den fragebogen ausfüllen, sonst gehts nicht zur Startseite (ist ja im Interesse des Users) wenn er den ausgefüllt hat, kommt er auf die richtige Startseite, also kommt der Fragebogen nur beim ersten login, bearbeiten kann er diesen natürlich immer wieder. Aber bei mir wird jetzt immer die startseite angezeigt...
<?php
session_start();
include 'config.php';

// Wenn Formular ausgefüllt
if($_GET['go'] == "login" && isset($_POST['nick']))
{
$nick = strtolower($_POST['nick']);
$form_pass = md5($_POST['pass']);

$sql = "SELECT regid,pass,activated,status FROM user WHERE nick = '$nick' LIMIT 1";
$sql_data = mysql_fetch_object(mysql_query($sql));
if($sql_data->pass == $form_pass)
{
if($sql_data->activated == 1)
{
$_SESSION['user_res'] = $sql_data->regid."_".$form_pass;
}

// Wenn Session gesetzt, dann Session prüfen und ggf. weiterleiten
if(isset($_SESSION['user_res']))
{
$ses = $_SESSION['user_res'];
$user_data = explode("_",$ses);
$uID = $user_data[0];
$pass = $user_data[1];

$sql = "SELECT pass FROM user WHERE regid = '$uID' LIMIT 1";
$sql_data = mysql_fetch_object(mysql_query($sql));
if($sql_data->pass == $pass)
{
// Session auffrischen
$_SESSION['user_res'] = $uID."_".$form_pass;
$sql2="SELECT status FROM user WHERE $uID=regid";
$result = mysql_fetch_object(mysql_query($sql2));
if($result == 1)
{
header("Location: index.php");
}
elseif($result == 0)
{
header("Location: fragebogen.php");
}
}
}
}
}




mysql_close($connection);
?>
<form action='?go=login' method='POST'>
<table>
<tr><td>Username:</td><td><input type='text' name='nick'></td></tr>
<tr><td>Passwort:</td><td><input type='password' name='pass'></td></tr>
<tr><td><input type='submit' value='Login'></td><td><a href='register.php'>Neu registrieren</a></td></tr>
</table></form></div>
0 Punkte
Beantwortet von deluxestyle Mitglied (901 Punkte)
php.net sagt, dass mit mysql_fetch_object ein Objekt zurück kommt, und nicht der Wert es Objektes...

Und da du ein Objekt bekommst, hat das den boolschen Wert true (1)
wenn ich das richtig verstehe...
0 Punkte
Beantwortet von
danke....nach 6 stunden passt es endlich :)
...