Ergebnis 1 bis 3 von 3

Thema: PHP-Script, das die Userdaten bei der Registrieriung in eine Datenbank speichert

  1. #1
    Azubi(ne) Avatar von [C]arp[h]unter
    Registriert seit
    10.03.2011
    Ort
    Franken :)
    Beiträge
    97
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard PHP-Script, das die Userdaten bei der Registrieriung in eine Datenbank speichert

    Sers!!!

    Ich habe einige Probleme mit meinem PHP-Script.

    Ich möchte aus einem Formular die Daten auslesen lassen und in eine Datenbank speichern.

    Ich habe schon mit PHPmyAdmin eine Tabelle['CFE-Datenbank'] mit Spalten['vorname', 'nachname', 'e-mail', 'strasse', 'hausnummer', 'plz', 'ort'] angelegt.

    Nur das PHP-Script funktioniert nicht?!?!?!

    [Wundert euch nicht, ich stell die HP schon online, wenn sie fertig ist. PHPmyAdmin ist nur zum Probieren im Moment da]

    Hier mein HTML:

    <!------------------------Start---------------------------------------------->

    <html>

    <head>

    <style type="text/css">

    .background {
    background-color: #000000;
    color: #00bbaa;
    width: 100%;
    height: 100%;
    font-family: Comic Sans MS;
    padding-right: 100px;
    }

    a {
    color: #00000f;
    text-decoration: none;

    }

    a:hover {
    color: #00bbaa;
    }



    .rahmen {
    border-style: solid;
    border-color: #00bbaa;
    padding: 0px;
    margin: 0px;
    }

    a.back {

    color: #ffffff;
    margin: 10px;
    text-align: right;
    }

    a.back:hover {

    color: #00bbaa;
    text-align: left;
    }

    a.back:visited {

    color: #ff0000;
    margin: 20px;
    }

    a.back:visited:hover {
    color: #00bbaa;
    margin: 20px;
    }

    input {
    border: 2px solid #ffffff;
    background-color: 555556;
    color: #00bbaa;
    font-family: Comic Sans MS;
    }

    </style>
    <title>

    Carpfishingforever.de &#124; Registrierung

    </title>

    </head>

    <body bgcolor= "gray">
    <div class= "rahmen">
    <div class="background">
    <center>

    <b>
    <br>
    <font size='6'>

    Registrierung

    </font>

    </b>


    <br>
    <br>
    <br>
    <br>
    <center>

    <form action= "regist.php" method= "post">

    Vorname: &nbsp;&nbsp;&nbsp;&nbsp;<input type= "text" name= "vorname">
    <br>
    <br>
    Nachname: &nbsp;&nbsp;&nbsp;&nbsp;<input type= "text" name= "nachname">
    <br>
    <br>
    E-Mail: &nbsp;&nbsp;&nbsp;&nbsp;<input type= "text" name= "e-mail" size= "25">
    <br>
    <br>
    Stra&szlig;e:&nbsp;&nbsp;&nbsp;&nbsp;<input type= "text" name= "strasse">&nbsp;&nbsp;&nbsp;<input type= "int" name= "hausnummer" size= "4" maxlength= "5">
    <br>
    <br>
    PLZ:&nbsp;&nbsp;&nbsp;&nbsp;<input type= "int" name= "plz" maxlength="5" size= "4">
    <br>
    <br>
    Ort: &nbsp;&nbsp;&nbsp;&nbsp;<input type= "text" name= "ort">
    <br>
    <br>

    <input type= "submit" value= "Anmelden"><input type= "reset" value= "Abbruch">

    </center>
    <br>
    <br>
    <br>
    <br>
    <p align= "right">
    <a href= "index.html" class= "back" alt= "Sers"> Zur&uuml;ck </a>
    </p>
    </div>

    </div>

    </body>

    </html>

    <!-----------------------------Ende--------------------------------------------->

    Und mein PHP:^^
    <!---------------------------Start---------------------------------------------->

    <?php

    $vorname= $_GET['vorname'];
    $nachname= $_GET['nachname'];
    $e-mail= $_GET['e-mail'];
    $strasse= $_GET['strasse'];
    $hausnummer= $_GET['hausnummer'];
    $plz= $_GET['plz'];
    $ort= $_GET['ort'];

    if((isset($_GET['vorname'], $_GET['nachname'], $_GET['e-mail'], $_GET['strasse'], $_GET['hausnummer'], $_GET['plz'], $_GET['ort'],));
    AND
    if($vorname AND $nachname AND $e-mail AND $strasse AND $hausnummer AND $plz AND $ort > 0)
    {
    if(mysql_query('INSERT INTO
    CFE-Datenbank
    (vorname, nachname, e-mail, strasse, hausnummer, plz, ort)
    VALUES
    ("'.htmlspecialchars($vorname, ENT_QUOTES).'",
    "'.htmlspecialchars($nachname, ENT_QUOTES).'",
    "'.htmlspecialchars($strasse, ENT_QUOTES).'",
    "'.htmlspecialchars($hausnummer, ENT_QUOTES).'",
    "'.htmlspecialchars($plz, ENT_QUOTES).'",
    "'.htmlspecialchars($ort, ENT_QUOTES).'");
    ')){

    echo 'Vielen Dank, sie sind jetzt registriert.
    <br>
    Ihnen wird in Kürze ein Passwort zugesandt.
    <br>
    <br>
    <br>
    <a href= "index.html"> Zur&uuml;ck </a>';

    else {
    echo 'Technische Probleme. Im Moment könne sie sich nicht registrieren! <a href="index.html">Zur&uuml;ck</a> '.mysql_error();
    }

    ?>

    <!----------------------------------Ende------------------------------------->


    Ich hoffe, ihr könnt mir helfen^^

    Mfg und Thx schon mal

    [C]arp[h]unter

    P.S.: Ich weiß noch nicht, wie ich das Passwort dem jeweiligen User zusende.
    Es wäre nicht so schlimm immer das gleiche Passwort zu verwenden, da man dies nur für den Zugang zu einer Bildergallerie benötigt [Die mit HTACCESS geschützt ist => Ich brauch des ganze Zeug nur für 'n HTACCESS-Pass^^]
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von [C]arp[h]unter (10.03.2011 um 10:09 Uhr)

  2. #2
    Großmeister(in) Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: PHP-Script, das die Userdaten bei der Registrieriung in eine Datenbank speichert

    Das erste Problem: Du sendest das Formular mittels POST und fragst die Daten im PHP-Script mit GET ab... Deine Überprüfung auf leere Angaben sieht auch irgendwie strange aus.
    Don't follow me, I run into walls.

  3. #3
    Azubi(ne)
    Themenstarter
    Avatar von [C]arp[h]unter
    Registriert seit
    10.03.2011
    Ort
    Franken :)
    Beiträge
    97
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP-Script, das die Userdaten bei der Registrieriung in eine Datenbank speichert

    Also:

    Ich hab mich jetz mal hingesetzt und ein wenig geschrieben:

    Sieht doch schon viel besser aus, oder?:


    <?php
    error_reporting(E_ALL);

    //Erst mal die von PHP-Escapten Variablen zurück"verwandeln"

    //stripslashes auch in Arrays ausfuehren...
    function array_stripslashes(&$var){
    if(is_string($var)) {
    $var=stripslashes($var);
    } elseif(is_array($var)) {
    foreach($var AS $key => $wert) {
    array_stripslashes($var[$key]);
    }
    }
    }

    //Alle von PHP gesetzten Backslashes entfernen
    if((function_exists('get_magic_quotes_gpc') AND get_magic_quotes_gpc()) OR
    (ini_get('magic_quotes_sybase') AND (strtolower(ini_get('magic_quotes_sybase'))!="off" ))){

    array_stripslashes($_GET);
    array_stripslashes($_POST);
    }

    //Bereits hier definieren wir die Funktion, die Passwoerter generiert.
    # Ein Passwort der Laenge (int) $length erzeugen
    ## Rueckgabewerte: string|false
    ## Version 10.01.04.20
    function create_pwd ($length){
    //Die Zeichen aus der Variable $charset koennen im Passwort vorkommen.
    $charset=array('a','b','c','d','e','f','g','h','i' ,'j','k','l','m','n','o','p','q','r','s','t','u',' v','w','x','y','z',
    'A','B','C','D','E','F','G','H','I','J','K','L','M ','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z',
    '1','2','3','4','5','6','7','8','9','0','!','$','% ','(',')','{','}','[',']','=','?','+','*','#','-','_','.',',',';',':','/');
    $count=count($charset);
    $pwd='';
    $limit=$count-1;
    for($i=0;$i<$length;$i++){
    $key=mt_rand(0,$limit);
    $pwd.=$charset[$key];
    }
    return $pwd;
    }


    echo '<html>

    <head>

    <style type="text/css">

    .background {
    background-color: #000000;
    color: #00bbaa;
    width: 100%;
    height: 100%;
    font-family: Comic Sans MS;
    }

    a {
    color: #00000f;
    text-decoration: none;

    }

    a:hover {
    color: #00bbaa;
    }



    .rahmen {
    border-style: solid;
    border-color: #00bbaa;
    padding: 0px;
    margin: 0px;
    }

    a.back {

    color: #ffffff;
    margin: 10px;
    text-align: right;
    }

    a.back:hover {

    color: #00bbaa;
    text-align: left;
    }

    a.back:visited {

    color: #ff0000;
    margin: 20px;
    }

    a.back:visited:hover {
    color: #00bbaa;
    margin: 20px;
    }

    </style>
    <title>

    Carpfishingforever.de &#124; Registrierung

    </title>

    </head>

    <body bgcolor= "gray">
    <div class= "rahmen">
    <div class="background">
    <center>

    <b>
    <br>
    <font size="6">

    Registrierung

    </font>

    </b><br><br>';

    if(!isset($_POST['vorname'], $_POST['nachname']) OR strlen(trim($_POST['vorname']))<3 OR strlen(trim($_POST['nachname']))<3){
    echo 'Sie haben den Namen vergessen!';
    } elseif(!isset($_POST['e-mail']) OR strlen(trim($_POST['e-mail']))<5){
    echo 'Bitte tragen Sie die E-Mail Adresse ein!';
    } elseif(!isset($_POST['strasse']) OR strlen(trim($_POST['strasse']))<2) {
    echo 'Bitte geben Sie Ihre Stra&szlig;e an!';
    } elseif(!isset($_POST['hausnummer']) OR !is_numeric($_POST['hausnummer']) OR $_POST['hausnummer']<1) {
    echo 'Bitte geben Sie Ihre Hausnummer an!';
    } elseif(!isset($_POST['plz']) OR !is_numeric($_POST['plz']) OR $_POST['plz']<1) {
    echo 'Bitte geben Sie Ihre Postleitzahl an!';
    } elseif(!isset($_POST['ort']) OR strlen(trim($_POST['ort']))<2) {
    echo 'Bitte geben Sie Ihren Wohnort an!';
    } elseif(!isset($_POST['agbs']) {
    echo 'Bitte akteptieren Sie die AGBs!';
    } else {
    //Ab hier passt alles, aber noch htmlentities anwenden!
    // htmlspecialchars wandelt nur Anfuehrungszeichen um,
    // htmlentities aber wirklich alles, also auch ä,ü,ö,ß und so weiter...
    $vorname = htmlentities($_POST['vorname'], ENT_QUOTES);
    $nachname = htmlentities($_POST['nachname'], ENT_QUOTES);
    $email = htmlentities($_POST['e-mail'], ENT_QUOTES);
    $strasse = htmlentities($_POST['strasse'], ENT_QUOTES);
    $hausnummer= (int) $_POST['hausnummer']; //(int) Konvertiert in Integer
    $plz = (int) $_POST['plz']; //(int) Konvertiert in Integer
    $ort = htmlentities($_POST['ort'], ENT_QUOTES);


    //Erstmal zur Datenbank verbinden... (Das Passwort und so musst du eintragen )
    define('MYSQL_ADDR', '127.0.0.1');
    define('MYSQL_USER', 'root');
    define('MYSQL_PASS', 'passwort');
    define('MYSQL_DATABASE', 'datenbank');

    if(!mysql_connect(MYSQL_ADDR, MYSQL_USER, MYSQL_PASS)){
    echo 'Konnte nicht mit der Datenbank verbinden. '.mysql_error();
    } elseif(!mysql_select_db(MYSQL_DATABASE)){
    echo 'Konnte die Datenbank nicht ausw&auml;hlen. '.mysql_error();
    } else {
    //Jetzt sind wir mit der Datenbank verbunden und koennen dort eintragen...

    //Jetzt generieren wir ein Passwort. Die Funktion wurde bereits ganz oben definiert.
    $passwort = create_pwd(10);

    //Um den mysql_query-Befehl nicht so unübersichtlich zu gestalten speichern wir den Befehl erst mal zwischen...
    //Auch das Passwort wird hier schon eingetragen...
    $sql='INSERT INTO
    CFE-Datenbank
    (vorname, nachname, strasse, hausnummer, e-mail, plz, ort, passwort, datum)
    VALUES
    ("'.$vorname.'",
    "'.$nachname.'",
    "'.$strasse.'",
    "'.$hausnummer.'",
    "'.$email.'",
    "'.$plz.'",
    "'.$ort.'",
    "'.$passwort.'",
    "'.time().'")';
    //Ich habe noch das Datum eingefuegt, weil das immer interessant sein kann...
    //Jetzt fuehren wir den Befehl aus...
    if(mysql_query($sql)){
    //Erst wenn wir eingetragen haben schicken wir die Mail mit dem Passwort...
    $empfaenger = $email;
    $betreff = 'Carpfishingforever - Ihr Passwort';
    //Bei der Nachricht nicht einrücken, da das sonst in der Mail auch so ist!
    $nachricht = 'Guten Tag '.$vorname.' '.$nachname.',
    hiermit erhalten Sie Ihr Passwort f&uuml;r Carpfishingforever.de. Es lautet '.$passwort.'
    bitte merken Sie es sich oder schreiben es irgendwo auf.
    MfG Carpfishingforever.de';
    $header = 'From: Fiedler.Oliver@web.de' . "\r\n" .
    'Reply-To: Fiedler.Oliver@web.de' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    if(!mail($empfaenger, $betreff, $nachricht, $header)){
    echo 'Ihr Passwort konnte leider nicht versendet werden. Bitte kontaktieren Sie den Webmaster.<br><br>';
    }
    echo 'Vielen Dank, sie sind jetzt registriert.
    <br>
    Ihnen wird in Kürze ein Passwort zugesandt.';
    } else {
    echo 'Registrieren aufgrund technischer Probleme zur Zeit nicht m&ouml;glich. '.mysql_error();
    }
    }
    }




    echo '</center>
    <br>
    <br>
    <br>
    <br>
    <p align= "right">
    <a href= "regist.html" class= "back" alt= "Sers"> Zur&uuml;ck </a>
    </p>
    </div>

    </div>

    </body>

    </html>';







    ?>

    Das Script beinhaltet auch noch einen Passwortgenerator.

    Müsste eigentlich funzen, oder?

    Mfg

    [C]arp[h]unter

Ähnliche Themen

  1. Wie belastbar ist eine datenbank?
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 14.06.2007, 14:42
  2. Per Script eine Datei an eine E-Mail-Adresse senden
    Von deser im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 28.09.2006, 10:17
  3. userdaten aus datenbank laden [DRINGEND]
    Von im Forum Webanwendungen - Webapplikationen
    Antworten: 1
    Letzter Beitrag: 14.06.2006, 18:15
  4. Mit php eine acces datenbank auslesen
    Von cookie im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 16
    Letzter Beitrag: 09.02.2006, 17:11
  5. [JavaScript] Funktion, die eine Variable speichert, die ...
    Von dr. orange im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 05.10.2005, 18:02

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •