Kann mal jemand diesen Code auf Fehler durchsuchen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anlegen
benutzer
benutzername
brauchen
code
email
fehler
hausnummer
header
http
land
nachricht
registrierung
set
update
vorname
wiederholen
wohnort
zeile
-
Hallo,
ich habe jetzt wieder noch etwas an der neu.php herumgebastelt, nur sind da wahrscheinlich noch ein paar fehler drin. Was muss ich noch ändern?
EDIT: er zeigt diesen Fehler an: Parse error: syntax error, unexpected $end in /home/webpages/lima-city/pcundsoftware/html/Login/neu.php on line 191
<?php session_start(); require("connect.inc.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Neuen Benutzer anlegen</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <?php $name = $_GET['name']; $email = $_GET['email']; $aktivierungscode = $_GET['aktivierungscode']; $hello = "yes"; if ( $name != "" and $mail != "" and $aktivierungscode != "") { $aendern = "UPDATE user Set best = '$hello' WHERE name, aktivierungscode, mail LIKE '$name', '$aktivierungscode', '$mail'"; $update = mysql_query($aendern); ?> <?php if(!isset($_POST['submit'])) { ?> <form method="post"> <table style="width: 100%"> <tr> <td>Name:</td> <td><input name="name" size="20" type="text"></td> </tr> <tr> <td>Vorname:</td> <td><input name="vorname" size="20" type="text"></td> </tr> <tr> <td>Wohnort:</td> <td><input name="wohnort" size="20" type="text"></td> </tr> <tr> <td>PLZ:</td> <td><input name="PLZ" size="20" type="text"></td> </tr> <tr> <td>Straße und Hausnummer:</td> <td><input name="strundhnr" size="20" type="text"></td> </tr> <tr> <td>Land:</td> <td><input name="land" size="20" type="text"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Benutzername:</td> <td><input name="username" size="20" type="text"></td> </tr> <tr> <td>E-Mail Adresse:</td> <td><input name="email" size="20" type="text"></td> </tr> <tr> <td>Passwort:</td> <td><input name="password" type="password"></td> </tr> <tr> <td>Passwort wiederholen:</td> <td><input name="password2" type="password"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Bestätigen der Nutzungsbedingungen:</td> <td><input name="nutzungsbedingungen" type="checkbox"></td> </tr> <tr> <td> <form method="post"> <input name="submit" type="submit" value="Anmelden"></form></td> <td> </td> </tr> </table> </form> <?php }elseif(!isset($_POST['username']) || $_POST['username'] == ""){ echo '<p align="center"> Einen Benutzernamen brauchen wir schon ;-) <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['password']) || $_POST['password'] == "") { echo '<p align="center"> Ein Passwort brauchen wir schon ;-)<br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif($_POST['password'] != $_POST['password2']) { echo '<form action="neu.php" method="post">'; echo '<p align="center">Die Passw�rter stimmen nicht �berein!<br /><br />'; echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; echo '<input type="submit" name="zurueck" value="Zur�ck"></p>'; echo '</form>'; }elseif(!isset($_POST['email']) || $_POST['email'] == ""){ echo '<p align="center"> Bitte geben Sie Ihre E-Mail Adresse an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['name']) || $_POST['name'] == ""){ echo '<p align="center"> Bitte geben Sie Ihren Namen an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['vorname']) || $_POST['vorname'] == ""){ echo '<p align="center"> Bitte geben Sie Ihren Vornamen an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['wohnort']) || $_POST['wohnort'] == ""){ echo '<p align="center"> Bitte geben Sie Ihren Wohnort an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['PLZ']) || $_POST['PLZ'] == ""){ echo '<p align="center"> Bitte geben Sie Ihre PLZ an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['strundhnr']) || $_POST['strundhnr'] == ""){ echo '<p align="center"> Bitte geben Sie Ihre Stra�e und Ihre Hausnummer an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['land']) || $_POST['land'] == ""){ echo '<p align="center"> Bitte geben Sie Ihr Land an! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }elseif(!isset($_POST['nutzungsbedingungen']) || $_POST['nutzungsbedingungen'] == ""){ echo '<p align="center"> Sie m�ssen den Nutzungsbestimmungen zustimmen, damit Sie sich erfolgreich anmelden k�nnen! <br /><br /><a href="neu.php">Zur�ck</a></p>'; }else{ $query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'"); $result = @mysql_fetch_array($query); if($_POST['username'] == $result['user']) { echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br /><br /><a href="neu.php">Zur�ck</a></p>'; die; }else{ $username = $_POST['username']; $pass = md5($_POST['password']); $email = $_POST['email']; $name = $_POST['name']; $vorname = $_POST['vorname']; $wohnort = $_POST['wohnort']; $plz = $_POST['PLZ']; $strundhausnr = $_POST['strundhnr']; $Land = $_POST['land']; srand(microtime()*1000000); $aktivierungscode = rand(1,1000); $query = "INSERT INTO users(user,pass,email,name,vorname,wohnort,plz,strundhnr,Land, aktivierungscode) VALUES('$username', '$pass', '$email' '$name', '$vorname', '$wohnort', '$PLZ', '$strundhnr', '$land', '$aktivierungscode',)"; if(mysql_query($query)){ echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt und ihnen wurde eine E-Mail mit einem Bestätigungslink gesendet!<br /><br /><a href="sichere_seite.php">Zur Admin- Seite</a></p>'; $email = "Sehr geehrter Besucher der Seite http://www.pcundsoftware.de/,<br><br> Sie erhalten diese Nachricht, da Sie auf der oben genannten Seite registriert wurden. Sollten Sie dies nicht getan haben, so löschen Sie diese Mail einfach.<br> Um Ihre Registrierung zu bestätigen, klicken Sie bitte auf den folgenden Link: <br><br> <a href=\"http://www.pcundsoftware.de/Login/neu.php?name=$username&mail=$mail&aktivierungscode=$aktivierungscode\" target=\"_blank\">http://www.pcundsoftware.de/Login/neu.php?name=$username&mail=$mail&aktivierungscode=$aktivierungscode</a> <br><br> Besuchen Sie unsere Seite bald wieder. <br><br> Mit freundlichen Grüßen,<br><br> Das Team von PC und Software .de"; $absender = "PcundSoftware.de"; $amail = "webmaster@pcundsoftware.de"; $extra = "From: $absender <$amail>\n"; $extra .= "Content-Type: text/html\n Content-Transfer-Encoding: 8bit\n"; mail($mail, "Registrierung auf pcundsoftware.de - Bestätigung", $email, $extra); }else{ echo '<p align="center"> Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br /><br /><a href="neu.php">Zur�ck</a></p>'; } } } ?> </body> </html>
Schöne Grüße,
pcundsoftware
Beitrag zuletzt geändert: 5.9.2009 11:50:52 von pcundsoftware -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
der fehler ist um die zeile 19 herum
if ( $name != "" and $mail != "" and $aktivierungscode != "") { $aendern = "UPDATE user Set best = '$hello' WHERE name, aktivierungscode, mail LIKE '$name', '$aktivierungscode', '$mail'";
die geschwungene klammer für dieses if wird nie mehr geschlossen.
mfg -
<?php if(!isset($_POST['submit'])) { ?> <form method="post"> <table style="width: 100%"> <tr> <td>Name:</td> <td><input name="name" size="20" type="text"></td> </tr> <tr> <td>Vorname:</td> <td><input name="vorname" size="20" type="text"></td> </tr> <tr> <td>Wohnort:</td> <td><input name="wohnort" size="20" type="text"></td> </tr> <tr> <td>PLZ:</td> <td><input name="PLZ" size="20" type="text"></td> </tr> <tr> <td>Straße und Hausnummer:</td> <td><input name="strundhnr" size="20" type="text"></td> </tr> <tr> <td>Land:</td> <td><input name="land" size="20" type="text"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Benutzername:</td> <td><input name="username" size="20" type="text"></td> </tr> <tr> <td>E-Mail Adresse:</td> <td><input name="email" size="20" type="text"></td> </tr> <tr> <td>Passwort:</td> <td><input name="password" type="password"></td> </tr> <tr> <td>Passwort wiederholen:</td> <td><input name="password2" type="password"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Bestätigen der Nutzungsbedingungen:</td> <td><input name="nutzungsbedingungen" type="checkbox"></td> </tr> <tr> <td> <form method="post"> <input name="submit" type="submit" value="Anmelden"></form></td> <td> </td> </tr> </table> </form> <?php
Auch hier ist die geschweifte Klammer nicht mehr geschlossen und warum ist da nochmal ein php-Öffnungs-tag (<?php) obwohl du php schon geöffnet hast? -
man kann innerhalb einer php datei den php-tag auch wieder schließen :D das hat er auch gemacht, und der bereich den du gepostet hast ist in zwei php-tags eingeschlossen, im oberen wird die if-abfrage definiert und die klammer geöffnet, im unteren wird die klammer geschlossen und die else-bedingung definiert.
mfg -
Gut,
ich habe die Klammer hinter
if ( $name != "" and $mail != "" and $aktivierungscode != "") { $aendern = "UPDATE user Set best = '$hello' WHERE name, aktivierungscode, mail LIKE '$name', '$aktivierungscode', '$mail'";
gesetzt. Jetzt erscheint zwar die seite, aber wenn man sich registrieren möchte, sagt er: "Beri der Registrierung trat leider ein Fehler auf. Was ist sonst noch falsch?
EDIT: Oder hätte die Klammer wo anders hinmüssen?
Wo kann den da der Fehler sein?
Beitrag zuletzt geändert: 5.9.2009 17:42:03 von pcundsoftware -
Hast Du mal nen aktuellen Code, der ein wenig hübscher formatiert ist? Vielleicht ist irgendeine Klammer nicht ganz richtig, aber das erkennt man im Moment nicht wirklich ;)
-
Hier der neue Code. Irgendwo muss noch ein fehler seiin. Wenn du ihn findest bitte schreiben!
<?php session_start (); require ("connect.inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>PcundSoftware.de - Registrierung</title> </head> <body> <?php $namebest = $_POST["username"]; $mailbest = $_POST["email"]; srand(microtime()*1000000); $aktivierungscodebest = rand(1,100000000); if (isset($_GET["active"])) { $aendern = "UPDATE (users) SET (best) = 'ja' WHERE [i]activierungscode[/i] LIKE $_GET['randval']"; } echo "Vielen dank für die Aktivierung ihres Accounts. Der Benutzer ist nun verfügbar.); ?> <?php if (!isset($_POST['submit'])) { ?> <form method="post"> <table style="width: 100%"> <tr> <td>Name:</td> <td><input name="name" size="20" type="text"></td> </tr> <tr> <td>Vorname:</td> <td><input name="vorname" size="20" type="text"></td> </tr> <tr> <td>Wohnort:</td> <td><input name="wohnort" size="20" type="text"></td> </tr> <tr> <td>PLZ:</td> <td><input name="PLZ" size="20" type="text"></td> </tr> <tr> <td>Straße und Hausnummer:</td> <td><input name="strundhnr" size="20" type="text"></td> </tr> <tr> <td>Land:</td> <td><input name="land" size="20" type="text"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Benutzername:</td> <td><input name="username" size="20" type="text"></td> </tr> <tr> <td>E-Mail Adresse:</td> <td><input name="email" size="20" type="text"></td> </tr> <tr> <td>Passwort:</td> <td><input name="password" type="password"></td> </tr> <tr> <td>Passwort wiederholen:</td> <td><input name="password2" type="password"></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td>Bestätigen der Nutzungsbedingungen:</td> <td><input name="nutzungsbedingungen" type="checkbox"></td> </tr> <tr> <td> <form method="post"> <input name="submit" type="submit" value="Anmelden"></form></td> <td> </td> </tr> </table> </form> <?php }elseif(!isset($_POST['email']) || $_POST['email'] == ""){ echo '<p align="center"> Geben Sie bitte Ihre E-Mail Adresse an! <br /><br /><a href="neu.php">Zurück</a></p>'; }elseif(!isset($_POST['username']) || $_POST['username'] == ""){ echo '<p align="center"> Einen Benutzernamen brauchen wir schon ;-) <br /><br /><a href="neu.php">Zurück</a></p>'; }elseif(!isset($_POST['password']) || $_POST['password'] == "") { echo '<p align="center"> Ein Passwort brauchen wir schon ;-)<br /><br /><a href="neu.php">Zurück</a></p>'; }elseif($_POST['password'] != $_POST['password2']) { echo '<form action="neu.php" method="post">'; echo '<p align="center">Die Passwörter stimmen nicht überein!<br /><br />'; echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; echo '<input type="submit" name="zurueck" value="Zurück"></p>'; echo '</form>'; }else{ $query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'"); $result = @mysql_fetch_array($query); if($_POST['username'] == $result['user']) { echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br /><br /><a href="neu.php">Zurück</a></p>'; die; }else{ // seed mit Mikrosekunden $bestaetigung = 'nein'; $username = $_POST['username']; $pass = md5($_POST['password']); $email = $_POST['email']; $activierungscode = $_POST['$aktivierungscodebest']; $best = $_POST['$bestaetigung']; $query = "INSERT INTO users(user,pass,email,activierungscode,best) VALUES('$username', '$pass', '$email', '$randval', '$bestaetigung')"; if(mysql_query($query)){ echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br /><br /><a href="sichere_seite.php">Zur Admin- Seite</a></p>'; //E-Mail mit Bestätigungscode // mehrere Empfänger $empfaenger = $_POST['email']; // beachten Sie das Komma // Betreff $betreff = 'Registrierung auf PcundSoftware.de'; // Nachricht $nachricht = ' <html> <head> <title>Registrierung auf PcundsSoftware.de</title> </head> <body> Hallo,<br><br> um Ihre Registrierung zu bestätigen klicken Sie bitte auf diesen Link: <a herf="http://www.pcundsoftware.de/neu.php?name=$name&email=$meail&activierungscode=$aktivierungscode" targert="blank">http://www.pcundsoftware.de/neu.php?name=$name&email=$email&activierungscode=$aktivierungscode</a><br><br> <br><br> Achtung: Dies ist eine Automatisch erstellte E-Mail. Bitte versuchen sie nicht über diese E-Mail eine Frage oder dergleichen zu stellen. <br><br> Schreiben Sie bitte dafür eine E-mail an <mailto: service@pcundsoftware.de>. <br><br> Vielen Dank für Ihr Verständnis! <br><br> <br><br> Ihr Team von PcundSoftware.de <br><br> </body> </html> '; // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden $header = 'MIME-Version: 1.0' . "\r\n"; $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // zusätzliche Header $header .= 'From: PcundSoftware.de <webmaster@pcundsoftware.de>' . "\r\n"; // verschicke die E-Mail mail($empfaenger, $betreff, $nachricht, $header); }else{ echo '<p align="center"> Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br /><br /><a href="neu.php">Zurück</a></p>'; } } } ?> </body> </html>
-
zeile 23
$aendern = "UPDATE (users) SET (best) = 'ja' WHERE [i]activierungscode[/i] LIKE $_GET['randval']";
das klappt so nicht
du musst den get-parameter aus dem string rausholen, also
$aendern = "UPDATE (users) SET (best) = 'ja' WHERE [i]activierungscode[/i] LIKE ".$_GET['randval'];
und zeile 25, hier ist statt dem " eine ). einfach austauschen, dann geht alles
mfg
EDIT: wenn du die errormessages die ausgegeben werden lesen würdest, dann hättest du das selbst auch rausgefunden
Beitrag zuletzt geändert: 7.9.2009 20:36:42 von syberpsace -
Das Wichtige war das "hübscher formatiert" - sorry, aber ich habe gewisse Abneigungen, mir Sachen a la
if () { } else { if { if { } elseif () { } else { } } }
anzuschauen ;) Gerade dann nicht, wenn man nach möglicherweise falsch zugeordneten if-else-Fällen sucht. Eventuell findest Du den Fehler ja auch selbst, wenn Du mal eine lesbare Formatierung hast ;) -
Tut mir leid, aber bei mir im programm sieht er ja auch ganz schön aus!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage