IF PRoblem ...

<head><meta http-equiv="refresh" content="0; url=http://localhost/deine_geschützte_seite.html"></head>';

dies geht nur innerhalb der html Seite die kommt aber erst noch!

<html><head><meta http-equiv="refresh" content="0; url=http://localhost/deine_geschützte_seite.html"></head></html>';
könnte funktionieren.
sieht aber nicht schön aus.
Ich würde die Seiten komplett an der entsprechenden Stelle schreiben lassen.
Mit include Dateien bleibt der Code übersichtlich.

und nimm das action aus dem input

@OI!Alex stimmt war im Kopf bei einer Loginprüfung
schreibt er den?
 
Original von TeeKayo2
Die "!empty-überprüfung" funktioniert!
Alles andere nicht!

wenn du keine ahnung hast, berechtige mich doch bitte nicht, wenn du so oder so was falsches sagst.
meine aussage war, dass die abfrage ob $pwd empty() ist nichts bring und das ist tatsache (es sei denn, du stellst es in der reihenfolge um)!

getestet habe ich meine obige aussage uebrigens auch. wenn du php jedoch so konfigurierst, dass es die errors unterdrueckt, siehst du logischerweise nichts.


btw....bis auf das mysql (hab hier lokal nur postgres) zeugs funktioniert bei mir alles mit folgendem code (das ganze basiert auf dem code von TeeKayo2):
PHP:
<?php
print_r($_POST);

$msg = '';

if ( !empty($_POST['name']) AND !empty($_POST['pwd']) AND !empty($_POST['pwd2']) AND  $_POST['pwd'] === $_POST['pwd2'] AND  !empty($_POST['email']) AND !empty($_POST['check']) ) {
    $connect = mysql_connect ("localhost","root","passwort")
                    or die ("Keine Verbindung möglich - Benutzername oder Passwort ist falsch");
    mysql_select_db ("user") or die ("Die Datenbank existiert nicht.");
    mysql_query("INSERT INTO `user` (`user`, `passwort`,`email`) VALUES ('".mysql_escape_string($_POST['name'])."', '".mysql_escape_string($_POST['pwd'])."', '".mysql_escape_string($_POST['email'])."')")
                    or die('fehler in query');
                    
    echo '<html><head><meta http-equiv="refresh" content="0; url=http://localhost/deine_geschützte_seite.html"></head></html>';
    die();
} elseif ($_POST['send']) {
    $msg = "Bitte überprüfen Sie ihre Eingaben!";
}

?>
<html>
    <head>
        <title>anmeldung</title>
        <meta name="author" content="sps">
    </head>
    <body text="#000000" bgcolor="#DddDd0" link="#FF0000" alink="#FF0000" vlink="#FF0000">
        <?php echo $msg; ?>
        <form name="logform" method="post" action="">
            Wählen Sie ihren <b>Usernamen:</b> <br><input type="text" name="name"></input><br>
            Geben Sie hier bitte <b>2x</b> ihr gewünschtes <b>Passwort</b> an:<br><input type="password" name="pwd"></input><input type="password" name="pwd2"></input><br>
            Geben Sie hier bitte ihre <b>Emailadresse</b> an:<br><input type="text" name="email"></input>
            <br>
            <br>
            <input type="checkbox" name="check"></input> Ja ich akzeptiere die <a href="www.deineagbs.de">Allgemeinen Geschäftsbedingungen</a>
            <br><br>
            <input type="submit" name="send" value="Jetzt anmelden!"></input>
        </form>
    </body>
</html>

das print_r($_POST) ist fuer die debug ausgabe....sofern du probleme hast, bitte die ganze ausgabe hier posten. zusaetzlich hilfreich waere dann auch die php.ini und phpversion.
 
hehe fast perfekt :D

<form name="logform" method="post" action="">

ersetzen durch

<form name="logform" method="post" action="<?php print($_SERVER['PHP_SELF']); ?>">
 
hehe fast perfekt :D

<form name="logform" method="post" action="">

ersetzen durch

<form name="logform" method="post" action="<?php print($_SERVER['PHP_SELF']); ?>">

Fast perfekt? Geht noch perfekter! :D

<form name="logform" method="post" action="<?=$_SERVER['PHP_SELF']) ?>">
 
Original von Mackz
Fast perfekt? Geht noch perfekter! :D

<form name="logform" method="post" action="<?=$_SERVER['PHP_SELF']) ?>">
Davon abgesehen das bei dir ein ) zuviel ist, ist das garkeine gute Idee.
Siehe: http://wiki.hackerboard.de/index.php/XSS#PHP_SELF


bezueglich XSS:
und so schnell hat man was uebersehen....wenigstens einer dem es auffaellt :)

bezueglich "<?=" hier nen kleinen ausblick auf die moeglichen funktionen von php6
--> http://www.php.net/~derick/meeting-...t-for-and-script-language-php-and-add-php-var
...ist also eine schlechte idee
 
wenn du keine ahnung hast, berechtige mich doch bitte nicht, wenn du so oder so was falsches sagst.
meine aussage war, dass die abfrage ob $pwd empty() ist nichts bring und das ist tatsache (es sei denn, du stellst es in der reihenfolge um)!

getestet habe ich meine obige aussage uebrigens auch. wenn du php jedoch so konfigurierst, dass es die errors unterdrueckt, siehst du logischerweise nichts.

Also ich habe nicht PHP5 ,vn daher ist das mit den Errormessages nichts.
2.Funzt die Passwortabfrage -
wiederrum dein geposteter code nicht.
er gibt mir das array aus, keine Fehlermeldung?!

Dazu kommt das ich ne Lösung suche mit der ich individuelle ausgaben machen kann.
Wenn passwort1 ned gleich 2 ist, echo passwort überprüfen,bei fehlerhafter email ,echo email überprüfen.
Die einfache aussage "bitte Daten überprüfen" bei irgendeiner falscheingabe würde klappen aber das will ich garnicht.

MfG,

TK
 
} elseif ($_POST['send']) {
$msg = 'Bitte überprüfen Sie ihre Eingaben!';
if(empty($_POST['name'])){ $msg += 'Bitte geben sie einen Namen ein!'}
if(empty(........................
}


achja strings ohne variablen am besten mit ' ' ausgeben als mit " " da ' schneller ist.
 
Dazu kommt das ich ne Lösung suche mit der ich individuelle ausgaben machen kann.
Wenn passwort1 ned gleich 2 ist, echo passwort überprüfen,bei fehlerhafter email ,echo email überprüfen.
Die einfache aussage "bitte Daten überprüfen" bei irgendeiner falscheingabe würde klappen aber das will ich garnicht.

hast du dir das schon mal vom Ablauf überlegt?
Was wenn 2 Felder nicht ausgefüllt wurden, keine korrekte emailsyntax usw.......?
Ich denke da solltest du dir erst mal einen Plan machen und deine Kenntnisse
vertiefen.
Entweder fragst du nur das falsche ab und denkst daran das andere zu "behalten"
oder du musst die korrekt eingegebenen Werte wieder ins Formular zurückschreiben.
Ich empfehle dir ein Konzept zu machen und deine Kenntnisse zu vertiefen.
Für solche Aufgaben sollte man sich einen Ablaufplan machen und den DAU als
User annehmen, sonst bastelst du noch sehr lange.

Andernfalls ist die Methode den User bei 5 Feldern alles nochmal ausfüllen zulassen
durchaus in Ordnung das sollte selbst DAU beim erstenmal schaffen :D

Gruss
 
Ich denke da solltest du dir erst mal einen Plan machen und deine Kenntnisse vertiefen

Okay...

Meine Kenntnisse vertiefe ich mit learning by doing!
Nur im Moment ist schwer mit doing cause ,keiner kann mir wirklich weiterhelfen.

Mein "Plan" sieht so aus das er überall dort wo etwas flach eingeben wurde er nen Pfeil neben anzeigt mit dazugehörigem Text,von daher is egal ob alle Felder vergessen wurden ,bekommt XY es halt auch so angezeigt!

Vll. klappts ja mit dem zuletzt geposteteten Code wenn nicht,sollte ich es anders versuchen weil 5 Tage son blödes Problem :rolleyes:

Thx & MfG,

Tk
 
Das sollte dich deinem Ziel näher bringen.
Zwar geht es eleganter doch du willst ja auch noch selber lernen!
<?php

if (!isset($_POST['send'])){

//wenn noch gar nichts gesendet wurde
echo "<html>
<head>
<title>anmeldung</title>
<meta name='author' content='sps'>
</head>
<body text='#000000' bgcolor='#DddDd0' link='#FF0000' alink='#FF0000' vlink='#FF0000'>
<form name='logform' method='post' action='anmeldung.php'>
Wählen Sie ihren <b>Usernamen:</b> <br><input type='text' name='name'></input><br>
Geben Sie hier bitte <b>2x</b> ihr gewünschtes <b>Passwort</b> an:<br><input type='password' name='pwd'></input><input type='password' name='pwd2'></input><br>
Geben Sie hier bitte ihre <b>Emailadresse</b> an:<br><input type='text' name='email'></input>
<br>
<br>
<input type='checkbox' name='check'></input> Ja ich akzeptiere die <a href='www.deineagbs.de'>Allgemeinen Geschäftsbedingungen</a>
<br><br>
<input type='submit' name='send' action='anmeldung.php' value='Jetzt anmelden!'></input>
</form>
</body>
</html>";
}
else {
if ($pwd == $pwd2 AND (!empty($name)) AND (!empty($pwd)) AND (!empty($email)) AND (!empty($check))) {
$connect = mysql_connect ("localhost","root","passwort") or die ("Keine Verbindung möglich - Benutzername oder Passwort ist falsch ... vll auch der table?!");
mysql_select_db ("user")or die ("Die Datenbank existiert nicht.");
mysql_query("INSERT INTO `user` (`user`, `passwort`,`email`) VALUES ('$name', '$pwd', '$email')");

// hier wird deine_geschützte_seite.html eingebunden
echo "<html><head><meta http-equiv='refresh' content='0; url=http://localhost/deine_geschützte_seite.html'></head></html>";
}
else {

//wenn nicht alles ausgefüllt wurde
echo "
<html>
<head>
<title>anmeldung</title>
<meta name='author' content='sps'>
</head>
<body text='#000000' bgcolor='#DddDd0' link='#FF0000' alink='#FF0000' vlink='#FF0000'>
<form name='logform' method='post' action='anmeldung.php'>

Bitte alles ausfüllen<br> ";
if (empty($name))
// kein Name wurde eingegeben
{
echo "<b>Usernamen fehlt!:</b> <br><input type='text' name='name'></input><br> ";
}
else
// Name wurde eingegeben und wird ins Feld geschrieben
{
echo "<b>Usernamen:</b> <br><input type='text' name='name' value='".$name."'></input><br> ";
}

echo "Geben Sie hier bitte <b>2x</b> ihr gewünschtes <b>Passwort</b> an:<br><input type='password' name='pwd'></input><input type='password' name='pwd2'></input><br>
Geben Sie hier bitte ihre <b>Emailadresse</b> an:<br><input type='text' name='email'></input>
<br>
<br>
<input type='checkbox' name='check'></input> Ja ich akzeptiere die <a href='www.deineagbs.de'>Allgemeinen Geschäftsbedingungen</a>
<br><br>
<input type='submit' name='send' value='Jetzt anmelden!'></input>
</form>
</body>
</html>";
}
}
?>

habe nur den Namen gemacht du willst ja was lernen!
Lies die Kommentare!

Gruss

Bei mir gehts bis auf die Datenbank, die hatte ich auskommentiert!
 
Code:
<html>
<head>
<title>anmeldung</title>
<meta name='author' content='sps'>
</head>
<body text='#000000' bgcolor='#DddDd0' link='#FF0000' alink='#FF0000' vlink='#FF0000'>

das ist unsinn das zweimal zu schreiben! reicht doch einmal wenn man es über den if schreibt... habs jetzt nur überflogen und ist zwar net das ideal aber zum anschauen und selbst erweitern/verbessern ist es alle mal i.o.

und ich hoffe das du (TeeKayo2) endlich selbst zurecht kommst :)
 
Thx an end4win, sieht alles n bisschen übertrieben aus, würds anders/übersichtlicher schreiben,des mit dem bearbeiten is auch kein ding, eigentlich wollte ich ja auch nur wissen wie zum teufel ich den if brocken richtig hinbastel,das soviele leute nur halbwissen darüber posten konnt ja niemand ahnen ^^

MfG,

TKo?

Ps:Shit jetzt ahn ich was hier abgeht,ich überarbeite grad dein code end4 und seh da dein Kommentar: Hier wird deine geschüzte seite eingebunden"
:D :D
Das hab ich doch dahin geschrieben ^^
genauso wie "www.deineagb.de ,weil ich das Anmeldescript für nen Kollegen und seine Page schreibe ;)
omg OO
jetzt reichts :D jetzt seh ich grade noch "wenn kein name eingeben wurde" :D
Sorry danke,aber da haste dir umsonst zuviel arbeit gemacht ...
wie erwähnt mein code ;)


@Oi!Alex
und ich hoffe das du (TeeKayo2) endlich selbst zurecht kommst

mit deiner hilfe klar doch :rolleyes: :D
 
ein wenig mit denken muss man nun mal und da kann man nicht erwarten das einem alles vorgekaut wird...

Code:
jetzt seh ich grade noch "wenn kein name eingeben wurde" großes Grinsen
Sorry danke,aber da haste dir umsonst zuviel arbeit gemacht ...
wie erwähnt mein code Augenzwinkern

nichts verstanden oder? :D
 
ein wenig mit denken muss man nun mal und da kann man nicht erwarten das einem alles vorgekaut wird...

Ich verstehe dich schonwieder nicht.
Ich will garnichts vorgekaut haben sondern habe lediglich 1 Frage gestellt.

Präzisier bitte deine Aussagen oder erwarte nicht das man dich versteht.

Tko?
 
Thx an end4win, sieht alles n bisschen übertrieben aus, würds anders/übersichtlicher schreiben

Schrieb ich doch, dass er sch... ist :D! Nur nicht so deutlich.

Wenn du schon beim optimieren bist lies dir nochmal den Tip von soox bezüglich
$pwd==$pwd2 durch!

das soviele leute nur halbwissen darüber posten konnt ja niemand ahnen

Da solltest du vorsichtiger sein, die Lösung für dein Problem schrieb schon soox,
als er über ein elseif $msg einen neuen Wert gab, dass du es nicht für deine
Zwecke erweitert hast war nicht sein Fehler.

BTW: Ob ein Code nicht funktioniert oder nur nicht das gewünschte Ergebnis
bringt ist ein Unterschied. Du solltest genauer beschreiben was du als Fehler
ansiehst. Für die meisten ist es eben eine Meldung vom Server, dass im Script
an der und der Stelle etwas nicht passt und er daher keine Lust hat weiter
zu machen.

Gruss
 
Original von Mackz
Fast perfekt? Geht noch perfekter! :D

<form name="logform" method="post" action="<?=$_SERVER['PHP_SELF']) ?>">
Davon abgesehen das bei dir ein ) zuviel ist, ist das garkeine gute Idee.
Siehe: http://wiki.hackerboard.de/index.php/XSS#PHP_SELF

hmm hab den Eintrag in der Wiki gelesen, wie soll man es dann sonst machen? bei jeder seite wieder den namen des Scriptes angeben ist schon umständlicher...

@TeeKayo2

für das was du machen willst solltest du entweder mit zwei dateien arbeiten oder eben mit if und else. Beides funktioniert wenn 1. keine sonderbaren HTML fehler gemacht werden ( method und action im <input>) 2. die Logik des Scriptes stimmt, wenn du merkst etwas funktioniert nicht lässt du dir dort verwendeten variablen einmal per echo ausgeben und du siehtst ob sie überhaubt einen Wert haben.
 
Original von Tasmas
hmm hab den Eintrag in der Wiki gelesen, wie soll man es dann sonst machen? bei jeder seite wieder den namen des Scriptes angeben ist schon umständlicher...
Wenn dir das zuviel Arbeit ist, kannst du ja folgendes machen.

Code:
<?php
$name=htmlentities($_SERVER['PHP_SELF'],ENT_QUOTES);
?>

<form name="longform" method="post" action="<?php echo $name ?>">

oder

Code:
$name=preg_replace("%[^0-9 a-z /.-]%i","",$_SERVER['PHP_SELF']);

...
 
Zurück
Oben