Ein Wort in SQL suchen

Hi!

Fall's Du es noch nicht hat, meintest Du das vielleicht so?
PHP:
<?php
$sex     = $_REQUEST['sex'];
$zeit     = time();

include '../include/db_connection.php';

$abfrage     = "SELECT user_nick FROM tr_user";
$ergebnis     = mysql_query($abfrage);
$fehler     = 0;

while($row = mysql_fetch_object($ergebnis))
   if ($row->nick == $nick)
    $fehler = 1;

if($fehler != 1)
{
   $abfrage = "SELECT email FROM benutzerdaten";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_object($ergebnis))
    if ($row->email == $email)
      $fehler = 2;
   if($fehler != 2)
   {
       $String = "Dies ist der Text, der verschlüsselt wird, damit wir sichere Passwoerter generieren können.";
       $Length = 8;
       $String = md5($String);
       $StringLength = strlen($String);
       srand ((double) microtime() * 1000000);
       $Begin = rand(0,($StringLength-$Length-1));
       $pw = substr($String, $Begin, $Length);
       
       /* Empfänger */
       $to  = "$email";
       
       /* Betreff */
       $subject = "Deine Registrierung bei Tafelrunde";
       
       /* Nachricht */
       $message = '    Hallo ' .$nick. ',\n
                       Vielen Dank für deine Anmeldung!\n
                    \n
                    Dein Username lautet: ' .$nick. ' \n
                    Dein Passwort lautet: ' .$pw. '\n
                    \n
                    Bitte benutze folgenden Link um dich einzuloggen:\n
                    \n
                    http://florian-bloemker.de/\n
                    \n
                    Viel Spass beim Spielen wünscht Dir das \n
                    \n
                    Tafelrunde-Team\n
                  ';
        
        /* Um eine HTML-Mail zu senden, können Sie den den "Content-type"-Header setzen */
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        
        /* zusätzliche Header */
        $headers .= "To: $nick <$email>\r\n";
        $headers .= "From: Tafelrunde <info@florian-bloemker.de>\r\n";
        
        /* Verschicken der Mail */
        mail($to, $subject, $message, $headers);
        $pwd = md5($pw);
        
        // Daten eintragen
        $sql =     "INSERT INTO `tr_user` (`user_nick`,`user_password`,`user_email`,`user_sec_email`,`user_vorname`,`user_nachname`,`user_sex`  ,`user_bd_day`,`user_bd_month`,`user_bd_year`,`user_origin`,`user_icq`,`user_aim`,`user_yim`,`user_s  ignatur`,`user_hobby`,`user_reg_date`,`user_lastlogin`,`user_status`,`user_avatar`,`user_posts`,`gam  e_finance`) 
                 VALUES ('$nick', '$pwd', '$email', '$sec_email', '$vorname', '$nachname', '$sex', '$bd_day', '$bd_month', '$bd_year', '$origin', '$icq', '$aim', '$yim', '$signatur', '$hobby', '$zeit', '$zeit', 'User', '$avatar', '0', '5000')";
        mysql_query ($sql);
        
        header("Location: ../index.php?angelegt=1");
   }
   else
        header("Location: ../index.php?email_error=1");
}
else
  header("Location: ../index.php?nick_error=1");
?>

redlama
 
Dann bekomm ich diesen Fehler hier
Code:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/kmm611/html/florian-bloemker/login/reg_do.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/www/kmm611/html/florian-bloemker/login/reg_do.php:19) in /home/www/kmm611/html/florian-bloemker/login/reg_do.php on line 71
 
Naja die Fehlermeldungen helfen da eigentlich schon genug und geben genug Infos. Du solltest dir auch angewöhnen der Übersichtshalber bei If - Bedingungen oder überhaupt bei Bedingungen und Schleifen mit Klammern und geschweiften Klammern zu arbeiten so gehst du schon mal ungültigen Else Anweisungen ausm weg.

So nun zu deinen 2 Fehlermeldungen da kann ich dir nur bei der 1. helfen da steht einfach das, das MySQL Ergebnis was du da versuchst abzurufen keinen gültigen Inhalt hat. Also meistens stimmt da was mit der SQL Abfrage nicht.
Naja und das 2. da würde ich sagen da stimmt was mit deinen Header nicht er hat wohl irgendwo schon einen Header gesetzt und du versuchst da irgendwie nachträglich den zu ändern und das geht dann nicht mehr weil die Header Informationen schon gesendet wurden oder sowas ind er Art.

Es wäre auch shcön wenn du die entsprechenden Zeilen Code vlt. dazu schreiben würdest worauf sich die Fehlermeldung bezieht!
 
PHP:
<?php 
$sex     = $_REQUEST['sex']; 
$zeit     = time(); 

include '../include/db_connection.php'; 

$abfrage     = "SELECT user_nick FROM tr_user"; 
$ergebnis     = mysql_query($abfrage); 
$fehler     = 0; 

while($row = mysql_fetch_object($ergebnis)) 
   if ($row->nick == $nick) 
    $fehler = 1; 

if($fehler != 1) 
{ 
   $abfrage = "SELECT email FROM benutzerdaten"; 
   $ergebnis = mysql_query($abfrage); 
   while($row = mysql_fetch_object($ergebnis)) 
    if ($row->email == $email) 
      $fehler = 2; 
   if($fehler != 2) 
   { 
       $String = "Dies ist der Text, der verschlüsselt wird, damit wir sichere Passwoerter generieren können."; 
       $Length = 8; 
       $String = md5($String); 
       $StringLength = strlen($String); 
       srand ((double) microtime() * 1000000); 
       $Begin = rand(0,($StringLength-$Length-1)); 
       $pw = substr($String, $Begin, $Length); 
        
       /* Empfänger */ 
       $to  = "$email"; 
        
       /* Betreff */ 
       $subject = "Deine Registrierung bei Tafelrunde"; 
        
       /* Nachricht */ 
       $message = '    Hallo ' .$nick. ',\n 
                       Vielen Dank für deine Anmeldung!\n 
                    \n 
                    Dein Username lautet: ' .$nick. ' \n 
                    Dein Passwort lautet: ' .$pw. '\n 
                    \n 
                    Bitte benutze folgenden Link um dich einzuloggen:\n 
                    \n 
                    http://florian-bloemker.de/\n 
                    \n 
                    Viel Spass beim Spielen wünscht Dir das \n 
                    \n 
                    Tafelrunde-Team\n 
                  '; 
         
        /* Um eine HTML-Mail zu senden, können Sie den den "Content-type"-Header setzen */ 
        $headers  = "MIME-Version: 1.0\r\n"; 
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
         
        /* zusätzliche Header */ 
        $headers .= "To: $nick <$email>\r\n"; 
        $headers .= "From: Tafelrunde <info@florian-bloemker.de>\r\n"; 
         
        /* Verschicken der Mail */ 
        mail($to, $subject, $message, $headers); 
        $pwd = md5($pw); 
         
        // Daten eintragen 
        $sql =     "INSERT INTO `tr_user` (`user_nick`,`user_password`,`user_email`,`user_sec_email`,`user_vorname`,`user_nachname`,`user_sex`    ,`user_bd_day`,`user_bd_month`,`user_bd_year`,`user_origin`,`user_icq`,`user_aim`,`user_yim`,`user_s    ignatur`,`user_hobby`,`user_reg_date`,`user_lastlogin`,`user_status`,`user_avatar`,`user_posts`,`gam    e_finance`) 
                 VALUES ('$nick', '$pwd', '$email', '$sec_email', '$vorname', '$nachname', '$sex', '$bd_day', '$bd_month', '$bd_year', '$origin', '$icq', '$aim', '$yim', '$signatur', '$hobby', '$zeit', '$zeit', 'User', '$avatar', '0', '5000')"; 
        mysql_query ($sql); 
         
        header("Location: ../index.php?angelegt=1"); 
   } 
   else 
        header("Location: ../index.php?email_error=1"); 
} 
else 
  header("Location: ../index.php?nick_error=1"); 
?>
 
Ähm *hust* lol?! Also mit Zeilen Code hinzufügen meinte ich die entscheidenen Stellen also bei deinen Problemen Zeile 17-21 z.B. und Zeile 68-74 oder so.
 
PHP:
  $abfrage = "SELECT email FROM benutzerdaten"; 
   $ergebnis = mysql_query($abfrage); 
   while($row = mysql_fetch_object($ergebnis)) 
    if ($row->email == $email) 
      $fehler = 2; 
   if($fehler != 2)

PHP:
        // Daten eintragen 
        $sql =     "INSERT INTO `tr_user` (`user_nick`,`user_password`,`user_email`,`user_sec_email`,`user_vorname`,`user_nachname`,`user_sex`    ,`user_bd_day`,`user_bd_month`,`user_bd_year`,`user_origin`,`user_icq`,`user_aim`,`user_yim`,`user_s    ignatur`,`user_hobby`,`user_reg_date`,`user_lastlogin`,`user_status`,`user_avatar`,`user_posts`,`gam    e_finance`) 
                 VALUES ('$nick', '$pwd', '$email', '$sec_email', '$vorname', '$nachname', '$sex', '$bd_day', '$bd_month', '$bd_year', '$origin', '$icq', '$aim', '$yim', '$signatur', '$hobby', '$zeit', '$zeit', 'User', '$avatar', '0', '5000')"; 
        mysql_query ($sql); 
         
        header("Location: ../index.php?angelegt=1"); 
   } 
   else 
        header("Location: ../index.php?email_error=1"); 
} 
else 
  header("Location: ../index.php?nick_error=1");

Das sind die Zeilen, danke schonmal für die Hilfe
 
Hm vlt. mal mysql_fetch_array probieren ansonsten wie gesagt kommt vlt. ein falsches ergebnis bei deiner MySQL abfrage raus.
naja und mit dem Header Problem da hab ich keinen Peil von so wirklich ich shcätze mal das das weiterleitungen sein sollen aber ich mach das immer mit meta http-equiv="refresh" content="0;URL=result.php" hab da nun auch end so den schimmer wofür man was ma besten nimmt.
 
die 2. Fehlermeldung wird sicher dann auch verschwinden, wenn du das erste Problem gelöst hast, denn:

Die Ausgabe (die ja nicht erfolgen darf, bevor der header gesendet wird), ist die erste Fehlermeldung. Mach mal vor das mysql_fetch_object ein @
PHP:
while($row = @mysql_fetch_object($ergebnis))

dann müsste diese Fehlermeldung weg sein
 
Jo, danke das mit dem SQL-Fehler ist schonmal weg, aber das kommt noch

Parse error: parse error, unexpected T_ELSE in /home/www/kmm611/html/florian-bloemker/login/reg_do.php on line 71

Ich weiß irgendwie auch nich annähernd woran das liegt
 
Zurück