Ich kriegs einfach nicht hin.

TribunM

Erfahrenes Mitglied
Guten Abend,

ich kann ja Vieles aber wenn ich eines mal gar nicht kann, dann ist es php :mad:.
Ich probiere seid Stunden rum und habe es wenigstens mal annähernd geschafft nen Anmeldescript hinzubekommen, das oh wunder auch weitestgehend funktioniert :eek:.
Ok ich gebe lieber zu, dass es mehr die Arbeit von Dreamweaver war, als von mir :rolleyes:. Unten das verwendete script:
PHP:
<?php require_once('Connections/db37926_news.php'); 

// *** Validate request to login to this site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
  $GLOBALS['PrevUrl'] = $accesscheck;
  session_register('PrevUrl');
}


if (isset($_POST['email'])) {
  $loginUsername=$_POST['email'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "home.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_db37926_news, $db37926_news);
  
  $LoginRS__query=sprintf("SELECT email, password FROM phplist_en_user WHERE email='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
   
  $LoginRS = mysql_query($LoginRS__query, $db37926_news) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $GLOBALS['MM_Username'] = $loginUsername;
    $GLOBALS['MM_UserGroup'] = $loginStrGroup;	      

    //register the session variables
    session_register("MM_Username");
    session_register("MM_UserGroup");


    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    echo "Das Passwort oder die E-Mail ist nicht korrekt!";
  }
}
?>

<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform">


<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
Bitte E-Mail und Passwort angeben<br>
<!-- E-mail -->
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold">
<b>E-mail: </b> </td>
<td width="296"><input type="text" name="email" size="40" value="" ></td>
</tr>

<!-- E-mail confirmation-->
<tr valign="top" height="20">
<td width="290" align="right" class="Normalbold">
<p><b>Passwort: </b> </p>
<p><br />
</p></td>
<td><input type="password" name="password" size="40" value="" > <span class="style26">*</span></td>
</tr>
</table>

<input type=submit name="subscribe" value="Anmelden" onClick="return checkform();">

</div>
</form>
</body>
</html>

Na ja er gibt jetzt ne Fehlernachricht aus wenn was falsch ist, was auch so gut ist, aber ich hätte die gerne z.b. unter die Zeile "Bitte E-Mail und Passwort angeben". Hab aber Null Ahnung wie ich das hinkriege. Denn die ganze Codezeile runterzukopieren ist sicher nicht richtig.

Und als letztes versuche ich so eine Funktion wie Passwort zumailen hinzubekommen, wenn man das vergessen hat, aber da bin ich mal total gescheitert. Ich habe so einen Newsletter phplist, wenn den einer kennt und den habe ich auch zum laufen bekommen. Dachte das ich die Anmeldeseiten umbasteln kann aber das ist so verstrickt da muss ich ganz passen. Also daher so ein eigener Versuch. Vielleicht kann mir einer von euch aushelfen.

Danke TribunM
 
Ja super das ich da nicht selber drauf gekommen bin, nur was ist ein Flag :rolleyes:
Wie gesagt ich habe echt nicht die Ahnung davon und ich denke damit kann ich keine eMail bei einem vergessenen Passwort schicken oder?
 
Ein Flag bezeichnet bei der Programmierung eine Hilfs- oder Merkvariable, mit der bestimmte Zustände (etwa: es trat ein Fehler auf) für spätere Abgleiche gespeichert werden.
 
Du scheinst anscheinend Ahnung von PHP zu haben. Ich bin mal ehrlich ich kann mit den Erklärungen dennoch nix anfangen. Ich weiß zwar jetzt ungefär was Flags sind, aber nicht wie man Sie einsetzt, insbesondere in meinem Script. Ich glaube dann lasse ich es mit dem Script, wenn mir nicht wer sagen kann, was ich direkt tun kann.
 
Ein einfachse Beispiel:
Code:
if( <Bedingung für Fehlermeldung> ) {
	$fehler = true;
}

…

if( !empty($fehler) ) {
	echo 'Es ist ein Fehler aufgetreten!';
}
 
Hallo!

Schreibe die Fehlermeldung in eine Variable:
PHP:
$error = "Ein Fehler ist aufgetreten!";
Dann kannst Du an beliebiger Stelle prüfen ob die Variable existiert und sie ausgeben:
PHP:
<?php
if(isset($error)) {
     echo $error;
}
?>
Gruss Dr Dau
 
cool das habe sogar ich jetzt verstanden. Das klappt ja genau so wie gewünscht :)
Jetzt fehlt "nur" noch so ne Passwort vergessen Funktion und ich bin glücklich :rolleyes:
 
Mach folgendes
nihm den Teil
PHP:
if (isset($_SESSION['PrevUrl']) && false) { 
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];     
    } 
    header("Location: " . $MM_redirectLoginSuccess ); 
  } 
  else { 
    echo "Das Passwort oder die E-Mail ist nicht korrekt!"; 
  }

und ändere es so ab
PHP:
if (isset($_SESSION['PrevUrl']) && false) { 
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];     
    } 
    header("Location: " . $MM_redirectLoginSuccess ); 
  } 
  else { 
    $Fehler="Das Passwort oder die E-Mail ist nicht korrekt!"; 
  }

Nun zum 2 Teil ändere den

PHP:
<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform"> 


<table width="600" border="0" align="center" cellpadding="2" cellspacing="2"> 
Bitte E-Mail und Passwort angeben<br> 
<!-- E-mail --> 
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold"> 
<b>E-mail: </b> </td> 
<td width="296"><input type="text" name="email" size="40" value="" ></td> 
</tr>

Folgend ab durch

PHP:
<form method=POST action="<?php echo $loginFormAction; ?>" name="subscribeform"> 


<table width="600" border="0" align="center" cellpadding="2" cellspacing="2"> 
Bitte E-Mail und Passwort angeben<br>
<? echo $fehler ; ?> <br> 
<!-- E-mail --> 
<tr valign="top" height="20"><td width="290" align="right" class="Normalbold"> 
<b>E-mail: </b> </td> 
<td width="296"><input type="text" name="email" size="40" value="" ></td> 
</tr>

Und mail senden kanste mit
mail(mail adresse,betreff,inhalt,"From: Absendername <Absender_mailadresse>\n Content-Type: text/plain");
 
Zuletzt bearbeitet:
Ja das klappt gut. Nur mit dem mailen verstehe ich nicht ganz, weil er soll ja das Passwort schicken, welches zu der Mail passt.

Aber ich glaube ich lass das. Da muss man schon php richtig können um das zu machen, zumal zwar anmelden usw. geht, aber ich kann ja trotzdem auf die Seiten in den unteren Ebenen, auch wenn ich mich nicht anmelde. Hätte nicht gedacht, dass es so schwer ist, son script zu machen, welches nur die Mail und den user überprüft, aber nunja falsch gedacht :rolleyes:

Hat nicht jemand son Tutorial wie man mit einfachen MItteln einen geschützten Bereich hinbekommt, der mit Session (glaube ich) funktioniert, die eben nur bei korrekter Passwort und eMail Überprüfung generiert werden. Ansonsten soll er eben nur wie schon beschrieben einen Fehler machen, was schon super funktioniert ^^. Und das mit den Sessions sollte für alle unterliegenden Seiten gelten. Sind so 20.

Mit dem vergessenen Passwort zuschicken versuche ich mir dann auch noch etwas einfallen zu lassen.

Na ja vielleicht hat wer ja Lust einen totalen Anfänger bei seinen ersten PHP Schritten zu begleiten.
 
Zuletzt bearbeitet:
Zurück