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

Formular um Seiten-Benutzer zu erstellen.

bodo92

Aktives Mitglied
Hallo,

habe heute nacht ein schönes login script gebastelt. funktionert super.
jetz möchte ich noch benutzer anlegen ich such seit 2 stunden den fehler kann mir jmd. helfen?

PHP:
<?php  

session_start();

if ( !array_key_exists('userid', $_SESSION) ) { 

    header('Location: ./login.php'); 
    exit(); 
}

if ( array_key_exists('submit', $_POST) ) {

    require_once('./db_connect.php'); 

    $username = trim(strip_tags(stripslashes($_POST['username']))); 
    $password = trim(strip_tags(stripslashes($_POST['password']))); 
    $name = trim(strip_tags(stripslashes($_POST['name']))); 
    $vorname = trim(strip_tags(stripslashes($_POST['vorname']))); 
    $email = trim(strip_tags(stripslashes($_POST['email']))); 
    $funktion = trim(strip_tags(stripslashes($_POST['funktion']))); 

    $sql = "INSERT INTO benutzer 
            ( 
              username, password, name, vorname, email, funktion 
            ) VALUES ( 
              '". mysql_escape_string($username) ."', 
              MD5('".$password."'),
              '". mysql_escape_string($name) ."',
              '". mysql_escape_string($vorname) ."',
              '". mysql_escape_string($email) ."',
              '". mysql_escape_string($funktion) ."'
            )"; 

    $res = mysql_query($sql) or mysql_error(); 

$empfaenger = $email;
$betreff = 'Mitglieder Account';
 $nachricht = 'Ihr neuer Benutzer Account auf "www.###.de"

Für Sie wurde erfolgreich ein Benutzer Account erstellt.


Benutzername: '. $username .'
Passwort: '. $password .' *

* Ihr Persönliches Passwort, verhindern Sie eine bekanntgabe an Dritte.



Sie finden links unter der Navigation einen Button zum einloggen.
 http://###.de/
';
 $header = 'From: automailer@###.de' . "\r\n" .
           'Reply-To: webmaster@###.de' . "\r\n" .
          'X-Mailer: PHP/' . phpversion();

mail($empfaenger, $betreff, $nachricht, $header);

exit(); 
}  

?> 

    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> 
        <table class="geastebuch_eingabe">
        <tr>
        <td>
            <b>Benutzername:</b><br>
            <input type="text" name="username"> 
        </td>
        </tr>
        <tr>
        <td>
            <b>Passwort:</b><br>
            <input type="password" name="password">
        </td>
        </tr>
        <tr>
        <td>
            <b>Name:</b><br>
            <input type="text" name="name">
        </td>
        </tr>
        <tr>
        <td>
            <b>Vorname:</b><br>
            <input type="text" name="vorname">
        </td>
        </tr>
        <tr>
        <td>
            <b>Funktion</b><br>
            <select name="funktion">
                <option value="Administrator">Administrator</option>
                <option value="Mitglied">Mitglied</option>
            </select>
        </td>
        </tr>
        <tr>
        <td>

            <b>E-Mail:</b><br>
            <input type="text" name="email">
        </td>
        </tr>
        <tr>
        <td>
            <input type="submit" name="login" value="Benutzer hinzufügen">
        </td>
        </tr>
        </table>
 </form>
das php arbeitet eigentlich garnicht. ich komm nicht in die if ( array_key_exists('submit', $_POST) )

aber verstehe ich nicht ich schik doch den submit ab.

MfG bodo
 
Zuletzt bearbeitet:
Dein Submit schaut so aus:

HTML:
<input type="submit" name="login" value="Benutzer hinzufügen">

also ist im $_POST Array, dass Feld 'login' gesetzt und nicht 'submit'
Kannst du ueberpruefen in dem du oben mal

PHP:
var_dump($_POST);
machst.


Ausserdem:

PHP:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

muesste da nicht noch ein echo vor $_SERVER['PHP_SELF'] ??
 
Dein Submit schaut so aus:

HTML:
<input type="submit" name="login" value="Benutzer hinzufügen">
also ist im $_POST Array, dass Feld 'login' gesetzt und nicht 'submit'

Dankeschön das war der fehler.

Die Variable $_SERVER['PHP_SELF'] jedoch führe ich nicht mit echo aus klappt trotzdem.
 
Eine Frage hätte ich noch.

Ist es eigentlich Sicher genug nur abzufragen ob keine $_SESSION vorhanden ist.
Oder sollte ich den Session Inhalt irgentwie vergleichen?
 
Wo wird vor dem Eintrag in die Datenbank überprüft, ob der Benutzer nicht schon existiert, oder die E-Mail bereits einem anderen Account zugewiesen wurde?

Ich würde für die Eingabefelder lieber htmlspecialchars() verwenden.
 
Das ist kein Script das Öffentlichen Zugriff hat. Und es wird nicht viele Benutzer geben ist für eine Vereinsseite. Aber trotzdem, Danke. Bin auch noch ziemlicher Neuling kenn nicht alle funktionen von php.
 
Warum ist das Formular in einer Tabelle?

Die Variable $_SERVER['PHP_SELF'] jedoch führe ich nicht mit echo aus klappt trotzdem.

PHP_SELF ist böse! Potentielles Cross Site Scripting (XSS)! | Technik, Gothic und Anderes


Bin auch noch ziemlicher Neuling kenn nicht alle funktionen von php.

Dann solltest du sowas Sicherheitsrelevantes vielleicht nicht komplett selbst schreiben. Es gibts dafür zum Beispiel Quakenet/#php Tutorial - de - Einleitung
 
Zurück
Oben