Logo - MyWebsolution.de
User gesamt  :  1669328
User online  :  3
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Workshops » Registrierungsformular funkt nicht!

Seite: 1 2  > Posts pro Seite: 5 10 20
Autor Thread
03.01.2007 16:28 Uhr Registrierungsformular funkt nicht!
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
Ich bin mal das Tutorial von der Userverwaltung durchgegangen, hab es auf meine Page anwenden wollen, aber irgendwie geht's nicht. Ich weiss nicht worans liegt, aber irgendwie lädts einfach die site neu wenn ich auf senden klick und keine Fehlermeldungen werden angezeigt. Ich hoffe irgendwer kann mir helfen die Fehler zu beheben. Hier erstmal den code:

PHP:
 <div id="register">
    <form id="Registrierung" name="Registrierung" method="post" action="<?php $_SERVER['PHP_SELF'?>">
    <?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'jkjhk';
    
$MYSQL_PASS 'fghfgh';
    
$MYSQL_DATA 'hjkhjk';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    if(isset(
$_POST['submit']) AND $_POST['submit']=='Registrieren'){
        
        
$errors = array();
        
        if(!isset(
$_POST['Nickname'],
                  
$_POST['Passwort'],
                  
$_POST['Passwortwiederholung'],
                  
$_POST['Email'],
                  
$_POST['Show_Email'],
                  
$_POST['Homepage'],
                  
$_POST['Wohnort']))
            
            
$errors "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
        else{
            
            
// Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen
            
$nicknames = array();
            
$emails = array();
            
$sql "SELECT
                             Nickname,
                             Email
                     FROM
                             User
                    "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            while(
$row mysql_fetch_assoc($result)){
                     
$nicknames[] = $row['Nickname'];
                     
$emails[] = $row['Email'];
            }
            
// Prüft, ob ein Nickname eingegeben wurde
            
if(trim($_POST['Nickname'])=='')
                
$errors[]= "Bitte geben Sie einen Nickname ein.";
            
// Prüft, ob der Nickname mindestens 3 Zeichen enthält
            
elseif(strlen(trim($_POST['Nickname'])) < 3)
                
$errors[]= "Ihr Name muss mindestens 3 Zeichen lang sein.";
            
// Prüft, ob der Nickname nur gültige Zeichen enthält
            
elseif(!preg_match('/^\w+$/'trim($_POST['Nickname'])))
                
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
            
// Prüft, ob der Nickname bereits vergeben ist
            
elseif(in_array(trim($_POST['Nickname']), $nicknames))
                
$errors[]= "Dieser Nickname ist bereits vergeben.";
            
// Prüft, ob eine Email-Adresse eingegeben wurde
            
if(trim($_POST['Email'])=='')
                
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
            
// Prüft, ob die Email-Adresse gültig ist
            
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§'trim($_POST['Email'])))
                
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
            
// Prüft, ob die Email-Adresse bereits vergeben ist
            
elseif(in_array(trim($_POST['Email']), $emails))
                
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
            
// Prüft, ob ein Passwort eingegeben wurde
            
if(trim($_POST['Passwort'])=='')
                
$errors[]= "Bitte geben Sie Ihr Passwort ein.";
            
// Prüft, ob das Passwort mindestens 6 Zeichen enthält
            
elseif (strlen(trim($_POST['Passwort'])) < 8)
                
$errors[]= "Ihr Passwort muss mindestens 8 Zeichen lang sein.";
            
// Prüft, ob eine Passwortwiederholung eingegeben wurde
            
if(trim($_POST['Passwortwiederholung'])=='')
                
$errors[]= "Bitte wiederholen Sie Ihr Passwort.";
            
// Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen
            
elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
                
$errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
        }
        
// Prüft, ob Fehler aufgetreten sind
        
if(count($errors)){
             echo 
"Ihr Account konnte nicht erstellt werden. Sollte dies öfters vorkommen kontaktieren Sie den Webmaster.<br>\n".
                  
"<br>\n";
             foreach(
$errors as $error)
                 echo 
$error."<br>\n";
             echo 
"<br>\n".
                  
"Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n";
        }
        else{
            
// Daten in die Datenbanktabelle einfügen
            
$sql "INSERT INTO
                           User
                            (Nickname,
                             Email,
                             Passwort,
                             Show_Email,
                             Registrierungsdatum,
                             Wohnort,
                             Homepage
                             )
                    VALUES
                            ('"
.mysql_real_escape_string(trim($_POST['Nickname']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Email']))."',
                             '"
.md5(trim($_POST['Passwort']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Show_Email']))."',
                             CURDATE(),
                             '"
.mysql_real_escape_string(trim($_POST['Wohnort']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Homepage']))."'
                             
                            )
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            echo 
"Vielen Dank!\n<br>".
                 
"Ihr Accout wurde erfolgreich erstellt.\n<br>".
                 
"Sie können sich nun mit Ihren Daten einloggen.\n<br>".
                 
"<a href=\"login.php\">Zum Login</a>\n";
        }
    }
?>

    <table width="71%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="formular_reg">
      <tr>
        <td width="30%" height="9%" align="left" valign="middle" class="inhalt">Nickname</td>
        <td width="2%" align="right" valign="middle" class="inhalt">:</td>
        <td width="45%" colspan="3" align="center" valign="middle" class="inhalt"><input name="Nickname" type="text" id="Nickname" size="30" maxlength="30" /></td>
        <td width="2%" align="left" valign="middle" class="inhalt">*</td>
        <td width="21%" class="inhalt">
        </td>
      </tr>
      <tr>
        <td height="9%" align="left" valign="middle" class="inhalt">Email</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input name="Email" type="text" id="Email" size="30" maxlength="70" /></td>
        <td class="inhalt">*</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="9%" align="left" valign="middle" class="inhalt">Passwort</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input name="Passwort" type="password" id="Passwort" size="30" maxlength="32" /></td>
        <td class="inhalt">*</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="9%" align="left" valign="middle" class="inhalt">Passwortwiederholung</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input name="Passwortwiederholung" type="password" id="Passwortwiederholung" size="30" maxlength="32" /></td>
        <td class="inhalt">*</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="12%" align="left" valign="middle" class="inhalt">Evtl. Newsletter erhalten  </td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt">
        <?php echo"<input type=\"radio\" name=\"Show_Email\" value=\"show\"> ja\n";
    echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"hide\" checked> nein\n"?></td>
        <td class="inhalt">*</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="9%" align="left" valign="middle" class="inhalt">Wohnort</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input name="Wohnort" type="text" id="Wohnort" size="30" maxlength="70" /></td>
        <td class="inhalt">&nbsp;</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="9%" align="left" valign="middle" class="inhalt">Homepage</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input name="Homepage" type="text" id="Homepage" size="30" maxlength="70" /></td>
        <td class="inhalt">&nbsp;</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="14%" align="left" valign="middle" class="inhalt">Nutzungsbedingungen</td>
        <td align="right" valign="middle" class="inhalt">:</td>
        <td colspan="3" align="center" valign="middle" class="inhalt"><input type="checkbox" name="checkbox" value="checkbox" />
        Ich stimme den Nutzungsbedingungen zu</td>
        <td class="inhalt">&nbsp;</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="5%" class="inhalt">&nbsp;</td>
        <td align="right" valign="middle" class="inhalt">&nbsp;</td>
        <td colspan="4" class="inhalt">&nbsp;</td>
        <td class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="3%" colspan="7" class="inhalt">* Diese Felder m&uuml;ssen ausgef&uuml;llt sein.</td>
      </tr>
      <tr>
        <td height="42" colspan="7" class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="2%" class="inhalt">&nbsp;</td>
        <td height="2%" class="inhalt">&nbsp;</td>
        <td height="2%" class="inhalt"><input type="submit" name="Submit" value="Send" /></td>
        <td height="2%" class="inhalt">&nbsp;</td>
        <td height="2%" class="inhalt"><input name="Delete" type="reset" id="Delete" value="Delete" /></td>
        <td height="2%" class="inhalt">&nbsp;</td>
        <td height="2%" class="inhalt">&nbsp;</td>
      </tr>
      <tr>
        <td height="8%" colspan="7" class="inhalt">&nbsp;</td>
      </tr>
    </table>
    </form>
  </div>


Dieser Beitrag wurde am 04.01.2007 um 14:32:33 Uhr von mdean zum 2. Mal editiert.
Profil ansehen
03.01.2007 17:28 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hi,
und erstmal willkommen im Forum ;)

Du hast den Submit Button anders benannt

Code:
<td height="2%" class="inhalt"><input type="submit" name="Submit" value="Send" /></td>




Du hast 2 Möglichkeiten um das zu beheben,

1. du änderst die oben genannte Zeile in folgende:
Code:
<td height="2%" class="inhalt"><input type="submit" name="submit" value="Registrieren" /></td>




2. du änderst die if-Bedingung ganz am Anfang in
Code:
if(isset($_POST['Submit']) AND $_POST['Submit']=='Send'){


// Edit

Es sollte übrigens auch

Code:
action="<?php echo $_SERVER['PHP_SELF'] ?>


heißen ;)

Dieser Beitrag wurde am 03.01.2007 um 18:08:00 Uhr von Flitze zum 1. Mal editiert.


Profil ansehen Mail senden
04.01.2007 10:41 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
Autsch.. dummer Fehler von mir :). Jedenfalls vielen dank für die Hilfe!

Nochmals ne Frage. Ich hab ja jetzt noch so ne Checkbox, dass man die Nutzungsbedingungen akzeptieren muss. wie lautet eine solche Überprüfung?

Danke
mdean
Profil ansehen
04.01.2007 13:32 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Checkboxen werden bei Formularen nur dann versandt, wenn sie auch angeklickt wurden. D.h. in deinem Formulare definierst du eine Checkbox:

Code:
<input type="checkbox" name="Nutzungsbedingungen" value="1">


Bei der Fehlerprüfung im PHP Teil schaust du nun mit isset() ob diese Checkbox existiert

PHP:
<?php
...
            if(!isset(
$_POST['Nutzungsbedingungen']) OR $_POST['Nutzungsbedingungen']!= '1')
                
$errors[]= "Sie müssen die Nutzungsbedingungen akzeptieren.";  
...
?>


Und schön auf die Namen achten ;)

Dieser Beitrag wurde am 04.01.2007 um 13:32:56 Uhr von Flitze zum 1. Mal editiert.


Profil ansehen Mail senden
04.01.2007 13:50 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
Danke!

So nun noch ein Detail, dann ist das Registrierungsformular abgeschlossen (Sry falls ich nerve :)).

Ich finde die normalen Buttons nicht so schön, darum ab ich mir gedacht lös ich das mit einem imagefield:
Code:
<input name="Send" type="image" onclick="submit()" src="pics/send.gif"


Jetzt stellt sich aber leider wieder die Frage was ich dann hier angeben muss:
Code:
if(isset($_POST['Submit']) AND $_POST['Submit']=='Send'){
Profil ansehen
04.01.2007 14:55 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Dazu brauchst du kein javascript, javascript würde ich allgemein nur als Zusatz bei Formularen verwenden, da nicht jeder User Javascript aktiviert hat und das Formular somit nicht nutzen kann.

So aber nun zu deiner Frage ^^
als if bedingung

Code:
if(isset($_POST['Send_x'], $_POST['Send_x']) ){


als button

Code:
<input type="image" name="Send" src="pics/send.gif">



Profil ansehen Mail senden
04.01.2007 15:08 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
ööööh.... du hast mich glaub ein bisschen falsch verstanden :).

Ich hatte ja am anfang die Zeile PHP:
if(isset($_POST['Submit']) AND $_POST['Submit']=='Send'){
ändern müssen, da ich mein Submit button anders benannt hatte. Jetzt hab ich aber anstelle eines Buttons, ein Bild genommen nämlich folgendermassen:Code:
<input name="Send" type="image" onclick="submit()" src="pics/send.gif"


Das heisst jetzt ja das ich die if() bedingung oben wieder anpassen muss, dass es wieder funktioniert. Aber jetzt weiss ich nicht wie...
Profil ansehen
04.01.2007 15:41 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
ähm nein.. ich hab doch geschrieben

Zitat:
als if bedingung

PHP:
if(isset($_POST['Send_x'], $_POST['Send_x']) ){


also musst du

PHP:
if(isset($_POST['Submit']) AND $_POST['Submit']=='Send'){


durch

PHP:
if(isset($_POST['Send_x'], $_POST['Send_x']) ){


ersetzen, dann funktioniert es.
Send_x und Send_y werden benutzt, weil du type="image" benutzt, da muss man halt etwas anders an die sache rangehen ;)

und onclick="submit()" brauchst du nicht

Probiers einfach mal aus, es sollte gehen ^^


Profil ansehen Mail senden
04.01.2007 16:42 Uhr
mdean
Forenposter
 
registriert 03.01.2007
wohnt in Schweiz
Beiträge 90
ah ok jetzt hab ichs verstanden ;).. hat auch geklappt!! Jetzt muss ich nur noch das Loginformular zusammenbauen, dann hab ichs endlich geschafft :trink:. aber warscheinlich werd ich auch da mühe habem, hoffe hilfst mir weiterhin ;).
Profil ansehen
04.01.2007 17:40 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
klar doch... dazu bin ich doch da ;)


Profil ansehen Mail senden
Seite: 1 2  > no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik