Seite 1 von 1

Formularaktion wird nicht durchgeführt. Gelöst

Verfasst: So 5. Nov 2006, 09:25
von Freddy
Hallo,
ich habe ein Registrierungsscript was ausserhalb von Contenido läuft. Jetzt versuche ich es als Modul in Contenido zu integrieren. Mittlerweile habe ich es mit Hilfe von Stony geändert und es funktioniert.
Meine Frage an die Experten, ob sie kurz über das Script schauen können und eventuell sagen könnten was man eleganter und besser machen könnte.

Code: Alles auswählen

<?php

ob_start();

// DB-Verbindung konfigurieren
$cfg["tab"]["teilnehmer"] = $cfg['sql']['sqlprefix']."_event_teilnehmer";

$db = new DB_Contenido;

session_start();


foreach ($_POST as $key => $value) {
    $$key = $value;
}

$formular_anzeigen='ja';

if($registrieren){

    $sql = 'SELECT * FROM '.$cfg["tab"]["teilnehmer"].' WHERE nickname = \''.$nickname.'\'';
    $frage = mysql_query($sql);
    $ergebnis = mysql_fetch_array($frage);


    if($nickname == '' || $usernachname == '' || $uservorname == '' || $email == '' || $passwort == '' || $passwort2 == ''){
        echo '<center>Es wurden nicht alle Felder ausgefüllt.</center><br>';
    }elseif ($ergebnis[user_id]!=''){
        echo '<center>Der Nickname ist schon vergeben. Bitte nehmen Sie einen anderen.</center><br>';
    }elseif ($passwort!=$passwort2){
        echo '<center>Die Passwörter stimmen nich überein.</center><br>';
    }else{

        $sql = 'SELECT * FROM '.$cfg["tab"]["teilnehmer"].' WHERE email = \''.$email.'\'';
        $frage = mysql_query($sql);
        $ergebnis = mysql_fetch_array($frage);

        if ($ergebnis[user_id]!=''){
            echo '<center>Die EMail-Adresse ist schon vergeben. Sie können ein neues <a href="passwort_vergessen.php">Passwort anfordern</a>, wenn Sie Ihres vergessen haben.</center><br>';
        }else{
            $passwort = md5($passwort);
            $sql = 'INSERT INTO '.$cfg["tab"]["teilnehmer"].' VALUES (\'\', \''.$nickname.'\', \''.$usernachname.'\', \''.$uservorname.'\', \''.$email.'\', \''.$passwort.'\', \'nein\')';
            $frage = mysql_query($sql);
            echo '<center>Sie wurden registriert und können sich jetzt einloggen.</center>';
            $formular_anzeigen='nein';
        }
    }
}

if($formular_anzeigen=='ja'){

?>

<form method="post" action="<?php echo $_SERVER[PHP_SELF].'?'.$_SERVER[QUERY_STRING]; ?>">
<table border="0" align="center">
  <tr>
    <td>
      Nickname
    </td>
    <td>
      <input type="text" name="nickname" value="<?php echo $nickname; ?>">
    </td>
  </tr>
  <tr>
    <td>
      Name
    </td>
    <td>
      <input type="text" name="usernachname" value="<?php echo $usernachname; ?>">
    </td>
  </tr>
  <tr>
    <td>
      Vorname
    </td>
    <td>
      <input type="text" name="uservorname" value="<?php echo $uservorname; ?>">
    </td>
  </tr>
  <tr>
    <td>
      EMail
    </td>
    <td>
      <input type="text" name="email" value="<?php echo $email; ?>">
    </td>
  </tr>
  <tr>
    <td>
      Passwort
    </td>
    <td>
      <input type="password" name="passwort">
    </td>
  </tr>
  <tr>
    <td>
      Passwort wiederholen &nbsp;
    </td>
    <td>
      <input type="password" name="passwort2">
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2">
      <input type="submit" name="registrieren" value=" Registrieren ">
    </td>
  </tr>
</table>
</form>

<?php

}

?>

Verfasst: So 5. Nov 2006, 14:39
von MichFress
versuch mal $_SERVER['PHP_SELF'] statt $PHP_SELF

Verfasst: So 5. Nov 2006, 14:50
von Freddy
Danke für den Tipp. Geht leider trotzdem noch nicht.

Verfasst: Mo 6. Nov 2006, 11:42
von Freddy
Ich bin am verzweifeln. Bin für jeden Tipp sehr dankbar. Weiß nicht wie ich den PHP-Code anpassen muß das er im Modul läuft. Ausserhalb funktioniert es.

Verfasst: Mo 6. Nov 2006, 14:43
von stony
schreib doch einfach direkt in die action die idart des artikels z.b. front_content.php?idart=idartdesartikels

greez stony

Verfasst: Mo 6. Nov 2006, 15:03
von Freddy
Habe ich gemacht, funktioniert aber leider nicht.

Verfasst: Mo 6. Nov 2006, 15:09
von stony
ist der artikel auch online?

Verfasst: Mo 6. Nov 2006, 15:11
von Freddy
stony hat geschrieben:ist der artikel auch online?
Ja klar. Ich fülle ja die Daten aus und möchte dann mit dem Button die Daten in Datenbank speichern. Ich glaube mittlerweile das es auch nicht unbedingt was mit action zu tun haben muss.

Verfasst: Mo 6. Nov 2006, 15:18
von stony
kann man sich die seite ansehen?

Verfasst: Mo 6. Nov 2006, 15:47
von Freddy
stony hat geschrieben:kann man sich die seite ansehen?
Gerne, die Seite mit diesem Modul befindet sich unter http://www.h2oski.de/cms/front_content.php?idart=177
Benutze eigentlich Mod Rewrite habe es aber sicherheitshalber ausgeschaltet um Fehlerquellen auszuschließen.

Verfasst: Mo 6. Nov 2006, 16:32
von stony
ok habe es gefunden.

Contenido scheint sich dazwischen zu hängen wenn du einem input feld den namen="username" zuweißt.

also einfach in usersname umbennen und es sollte funktionieren!

Verfasst: Mo 6. Nov 2006, 17:05
von Freddy
stony hat geschrieben:ok habe es gefunden.

Contenido scheint sich dazwischen zu hängen wenn du einem input feld den namen="username" zuweißt.

also einfach in usersname umbennen und es sollte funktionieren!
Danke es funktioniert. Weiß garnicht wie ich Dir danken soll. :D
Habe den korrigierten Code am Anfang wieder gepostet.

Verfasst: Mo 6. Nov 2006, 17:11
von stony
ach naja mir fällt da schon einiges ein :D