• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular über Passwort Abfrage

mkasl

Neues Mitglied
Hallo Foren Freunde
Ich habe mich mal versucht, einen Formular Script etwas abzuändern.
Das Formular funktioniert alleine.
Nun habe ich am Anfang einen Passwort Script vorgesetzt. Der Eintrag klappt,die Weiterleitung nach PW Eingabe des PW > admin< klappt.
Leider wird aber der Formulareintrag nicht weitergeleitet.
Bin nicht genug foforisiert,um einen Fehler zu erkennen und hoffe,man kann mir helfen und diesen Code umschreiben.

PHP:
<?php
if(!isset($_POST['passwort']) || $_POST['passwort'] != "admin")
{
  echo "Bitte Passwort eingeben:
  <form action='' method='post'>
  <input type='password' name='passwort'>
  <input type='submit' value='Weiter'></form>\n";
  die;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>
<title>Kontaktformular -- </title>

<meta name="title" content="Kontaktformular -- ">
<meta name="description" content="">
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" ">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>

<h1>Kontakt</h1><br>

<?php

// *** Deine Mailadresse (Empfänger) ***
$mail_to="[email protected]";
// *************************************

$from_name=$_POST['fromname'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
  $err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
else
  if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
    $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";

// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>1000) {
  $mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);

if(($send=="1") && (isset($err_text))) {
  echo "<p><big><b>Fehler:</b></big><br>";
  echo "$err_text</p>";
}

if(($send!="1") || (isset($err_text)))
{
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Dein Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
<tr><td nowrap align=right>Deine E-Mail Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</form>

<?php
} else {
  $header="From: $from_name <$from_mail>\n";
  $header.="Reply-To: $from_mail\n";
  $header.="X-Mailer: PHP-FormMailer (www.gaijin.at)\n";
  $header.="Content-Type: text/plain";
  $mail_date=gmdate("D, d M Y H:i:s")." +0000";
  $send=0;
  if(@mail($mail_to,$mail_subject,$mail_text,$header))
  {
    echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
  }else{
    echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
    echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
  }
}
?>


</body>
</html>

Wer mal testen möchte, hier mein prov. Link :http://www.lapaloma-blanca.de/mitpasswort/index.php

Mod-Edit: Code-Tags hinzugefügt - Also bitte... (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
PHP:
<form action='' method='post'>
dort fehlt die Angabe, wohin das Formular geschickt werden soll!
PHP:
<form action='dateiname.php' method='post'>

EDIT: das scheint nicht dein Problem zu sein. Passwortabfrage funktioniert offenbar.. dann glaube ich, habe ich dein problem nicht ganz verstanden :D
 
Hallo Foren Freunde
Ich habe mich mal versucht, einen Formular Script etwas abzuändern.
Das Formular funktioniert alleine.
Nun habe ich am Anfang einen Passwort Script vorgesetzt. Der Eintrag klappt,die Weiterleitung nach PW Eingabe des PW > admin< klappt.
Leider wird aber der Formulareintrag nicht weitergeleitet.
Bin nicht genug faforisiert,um einen Fehler zu erkennen und hoffe,man kann mir helfen und diesen Code umschreiben.

PHP:
<?php
if(!isset($_POST['passwort']) || $_POST['passwort'] != "admin")
{
  echo "Bitte Passwort eingeben:
  <form action='' method='post'>
  <input type='password' name='passwort'>
  <input type='submit' value='Weiter'></form>\n";
  die;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>
<title>Kontaktformular -- </title>

<meta name="title" content="Kontaktformular -- ">
<meta name="description" content="">
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" ">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body>

<h1>Kontakt</h1><br>

<?php

// *** Deine Mailadresse (Empfänger) ***
$mail_to="[email protected]";
// *************************************

$from_name=$_POST['fromname'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
  $err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
else
  if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
    $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";

// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>1000) {
  $mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);

if(($send=="1") && (isset($err_text))) {
  echo "<p><big><b>Fehler:</b></big><br>";
  echo "$err_text</p>";
}

if(($send!="1") || (isset($err_text)))
{
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Dein Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
<tr><td nowrap align=right>Deine E-Mail Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</form>

<?php
} else {
  $header="From: $from_name <$from_mail>\n";
  $header.="Reply-To: $from_mail\n";
  $header.="X-Mailer: PHP-FormMailer (www.gaijin.at)\n";
  $header.="Content-Type: text/plain";
  $mail_date=gmdate("D, d M Y H:i:s")." +0000";
  $send=0;
  if(@mail($mail_to,$mail_subject,$mail_text,$header))
  {
    echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
  }else{
    echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
    echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
  }
}
?>


</body>
</html>
Wer mal testen möchte, hier mein prov. Link :http://www.lapaloma-blanca.de/mitpasswort/index.php

Mod-Edit: Code-Tags hinzugefügt - Also bitte... (XraYSoLo)
Ich bin neu hier,also habe ich mal angenommen,dass der code von >Mod-Edit: Code-Tags hinzugefügt - Also bitte< geändert wurde.Habe ihn noch einmal eingefügt aber ohne Erfolg

 
Zuletzt bearbeitet:
Formular erst nach PW Eingabe erreichen

Hallo Asipak4You
Offensichtlich scheint alles in Ordnung zu sein.Aber eben nur ohne Eigentest.
PW >admin< wird eingegeben./ akzeptiert und Weiterleitung zum Formular.Das könntest du auch testen. Nur nach dem Abschicken kommt nie eine Formular -Nachricht bei meiner Adresse [email protected] an. Ich bin leider kein Experte und auf deine oder Eure Hilfe angewiesen.
Ich kann noch so lange den Code betrachten und würde das Haar in der Suppe nicht finden.
Danke für dein Interesse am Problem eines Anfängers
Gruß und schönen Abend
 
Formular erst nach PW Eingabe erreichen

Hallo Asipak4You
Offensichtlich scheint alles in Ordnung zu sein.Aber eben nur ohne Eigentest.
PW >admin< wird eingegeben./ akzeptiert und Weiterleitung zum Formular.Das könntest du auch testen. Nur nach dem Abschicken kommt nie eine Formular -Nachricht bei meiner Adresse [email protected] an. Ich bin leider kein Experte und auf deine oder Eure Hilfe angewiesen.
Ich kann noch so lange den Code betrachten und würde das Haar in der Suppe nicht finden.
Danke für dein Interesse am Problem eines Anfängers
Gruß und schönen Abend
 
hallo, das
PHP:
die;
ist das problem. da beim absenden des kontaktformulars kein passwort übermittelt wird, wird der code in der ersten if-bedingung ausgeführt. nach dem erzeugen des Formulars wird abgebrochen.

der code ist aber so voller fehler das ich das hier im forum nicht weiter erläutern möchte.
mach das "die;" mal weg und du wirst sehen das sich etwas tut (fehlermeldung oder vllt kommt die mail sogar an (entferne auch mal das @ vor mail()).

mit dem entfernen der "Sterbenfunktion" :D, hast du dann aber immer 2 formulare, die angezeigt werden :)

EDIT: die doppelposts kann sicher ein Mod entfernen ;) code tags für dieses forum sind [code ] blabla [/code ] und [php ] dfhfgjdgh [/php ] (ohne Leerzeichen), falls du damit nicht vertraut bist
 
hallo, das
PHP:
die;
ist das problem. da beim absenden des kontaktformulars kein passwort übermittelt wird, wird der code in der ersten if-bedingung ausgeführt. nach dem erzeugen des Formulars wird abgebrochen.

der code ist aber so voller fehler das ich das hier im forum nicht weiter erläutern möchte.
mach das "die;" mal weg und du wirst sehen das sich etwas tut (fehlermeldung oder vllt kommt die mail sogar an (entferne auch mal das @ vor mail()).

mit dem entfernen der "Sterbenfunktion" :D, hast du dann aber immer 2 formulare, die angezeigt werden :)

EDIT: die doppelposts kann sicher ein Mod entfernen ;) code tags für dieses forum sind [code ] blabla [/code ] und [php ] dfhfgjdgh [/php ] (ohne Leerzeichen), falls du damit nicht vertraut bist
Danke für die Info,aber wie gesagt,ich bin totaler Anfänger.
Zuerst habe ich die; entfernt: Ergebnis : PW Eingabe ist sinnlos,weil sich unter der PW- eingabe schon das Formular befindet.
@ (nicht in der Adresse) sondern weiter unten vor mail brachte überhaupt nichts.
>Feher im Code ( nicht im Forum klären) Frage wie dann ? Aufgeben ?Siehst du keine Möglichkeit mir zum Erfolg zu verhelfen .<
 
doch, neu schreiben.

das @ vor mail() verhindert fehlermeldungen, sollten welche auftreten. ich habe nicht gesagt dass das was bringt.

also, der erste schritt wäre wohl passwortabfrage und kontaktformular in zwei verschiedene dateien aufzuteilen:

seite1.php Passwortabfrage
PHP:
<?php
session_start();
$_SESSION["login_ok"] = 'false';
if ($_POST) {
  if (isset($_POST["passwort"]) && trim(strtolower($_POST["passwort"])) == 'admin') {
    $_SESSION["login_ok"] = 'true';
    header("Location:seite2.php");
  }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Passwortabfrage -- </title>
<meta name="title" content="Kontaktformular -- ">
<meta name="description" content="">
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" ">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Passwortabfrage</h1><br>
Bitte Passwort eingeben:
<form action="seite1.php" method="post">
<input type="password" name="passwort">
<input type="submit" value="Weiter"></form>
</body>
</html>

seite2.php kontaktformular passwortgeschützt
PHP:
<?php
session_start();
if (!isset($_SESSION["login_ok"]) || (isset($_SESSION["login_ok"]) && $_SESSION["login_ok"] != 'true')) {
  header("Location:seite1.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Kontaktformular -- </title>
<meta name="title" content="Kontaktformular -- ">
<meta name="description" content="">
<meta name="keywords" content="Kontakt, Kontaktformular">
<meta name="author" ">
<meta http-equiv="content-language" content="de-at">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Kontakt</h1><br>
<?php
// *** Deine Mailadresse (Empfänger) ***
$mail_to="[email protected]";
// *************************************
$from_name=$_POST['fromname'];
$from_mail=strtolower($_POST['frommail']);
$mail_subject=$_POST['mailsubject'];
$mail_text=$_POST['mailtext'];
$send=$_POST['s'];
if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
  $err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
else
  if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
    $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_subject)=="") $err_text.="Bitte gib einen Betreff ein.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib einen Nachrichtentext ein.<br>";
// *** Zu langen Text abschneiden ***
if(strlen($mail_text)>1000) {
  $mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
}
$from_name=str_replace(chr(34),"''",$from_name);
$mail_subject=str_replace(chr(34),"''",$mail_subject);
$from_name=stripslashes($from_name);
$from_mail=stripslashes($from_mail);
$mail_subject=stripslashes($mail_subject);
$mail_text=stripslashes($mail_text);
if(($send=="1") && (isset($err_text))) {
  echo "<p><big><b>Fehler:</b></big><br>";
  echo "$err_text</p>";
}
if(($send!="1") || (isset($err_text)))
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Dein Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
<tr><td nowrap align=right>Deine E-Mail Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
<td width=100%><textarea cols="40" rows="10" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</form>
<?php
} else {
  $header="From: $from_name <$from_mail>\n";
  $header.="Reply-To: $from_mail\n";
  $header.="X-Mailer: PHP-FormMailer (www.gaijin.at)\n";
  $header.="Content-Type: text/plain";
  $mail_date=gmdate("D, d M Y H:i:s")." +0000";
  $send=0;
  if(@mail($mail_to,$mail_subject,$mail_text,$header))
  {
    echo "<p><b>Deine E-Mail wurde abgesendet.</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
  }else{
    echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
    echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
    echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
  }
}
?>
</body>
</html>

damit kannste jetzt etwas rumspielen. sollte funktionieren.
 
Fehler in Verbindung PW Abfrage mit einem beliebigen Formular

Ich danke Dir erst mal für deine Mühe. Rumspielen ist >den Nagel auf dem Kopf getroffen<. Spielerisch von Experten lernen: Das ist bei mir der Sinn der Sache.
Wenn du Lust und Zeit hast (die ich hoffentlich nicht all zu sehr beantsprucht habe) schau mal auf meinen Testlink. W2D Formular....davor habe ich den PW Code gesetzt und bekam auch eine Nachricht.
Sinn und Zweck meiner Versuche und deshalb auch die Sache mit dem PW vor dem Formular :
Ich möchte auf diese Weise eine Autoresponder-Nachricht ab und zu schicken. ...ohne die gesamte Seite im W2D zu sperren.
Einen schönenTag ( nun teste ich erst mal deinen Vorschlag)
 
Zurück
Oben