php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.05.2008, 16:22  
Benutzer
 
Registriert seit: 08.04.2008
Beiträge: 45
coraplanet befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] problem keine ausgabe

jops und da bin ich schon wieder .... ich muss sagen nachdem ich mir alles zum hundersten mal durchgelesen hab hat auch endlich mal alles so funktioniert wie ich es wollte ... danke nochmal an alle die hier so fleißig antwort geben die muss man wirklich mal loben ... so ich hab aber wieder ein problem ich hab euch hier mal nen code vorbereitet :
PHP-Code:
  else if(isset($_GET['registriert']))
   {
 
$u_rname    $_POST['u_rname'];
 
$u_pass     $_POST['u_pass'];
 
$e_mail     $_POST['e_mail'];
 
$u_plz      $_POST['u_plz'];
 
$u_ort      $_POST['u_ort'];
 
$u_land     $_POST['u_land'];
 
$u_geschlecht     $_POST['u_geschlecht'];
 
$u_gtag     $_POST['u_gtag'];
 
$u_gmonat     $_POST['u_gmonat'];
 
$u_gjahr     $_POST['u_gjahr'];
 
$u_str     $_POST['u_str'];
 
$u_name     $_POST['u_name'];
 

    
    
$wasfehlt "";
    
$allesda 0;
    if(isset(
$u_name) or isset($e_mail) or isset($e_mail))
{
     if(empty(
$u_rname))
    {
     
$wasfehlt "<div class='content'>Bitte gebe deinen richtigen Namen ein.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
    }
     if(empty(
$e_mail))
    {
    
$wasfehlt "<div class='content'>Bitte gebe deine E-Mail Adresse ein.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
    }
     if(empty(
$u_plz))
    {
    
$wasfehlt "<div class='content'>Bitte gebe deine PLZ an.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
    }
     if(empty(
$u_ort))
    {
    
$wasfehlt "<div class='content'>Bitte gebe deinen Wohnort an.<a href='index.php?reg_next'>zur&uuml;ck</a>".$u_rname."<br>".$_POST['u_name']."<br>".$e_mail."<br>".$u_str."<br>".$u_plz." ".$u_ort."<br>".$u_land."<br>".$u_geschlecht."<br>".$u_gtag.".".$u_gmonat.".".$u_gjahr."<br>".$u_pass."</div>";
    }
     if(empty(
$u_str))
    {
    
$wasfehlt "<div class='content'>Bitte gebe deine Stra&szlig;e an.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
    }
}
     if(
$allesda)
    {
     
$sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';";
     
$erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
     
$num    mysql_result($ergnum);
     if(
$num == $u_name)
      {
       echo 
'<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>';
      }
     else
      {
       
$sql "INSERT INTO u_users(u_id, u_name, u_pass, e_mail, u_plz, u_ort, u_land, u_geschlecht, u_gtag, u_gmonat, u_gjahr, u_str, u_rnam) VALUES ('', '$u_name', md5('$u_pass'), '$e_mail', '$u_plz', '$u_ort', '$u_land', '$u_geschlecht', '$u_gtag', '$u_gmonat', '$u_gjahr', '$u_str', '$u_rname')";
       
$erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
       echo 
"<div class='content'>Registrierung wurde erfolgreich durchgef&uuml;hrt<br><br>
       $u_name, wurde erfolgreich registriert!<br>Du kannst dich nun einloggen.<br>
       <a href='index.php'>zur&uuml;ck zur Startseite</a><br></div>"
;

       
$to        $e_mail;
       
$subject    "Registrierung auf www.cora-planet.de";
       
$msg        "Herzlich Willkommen ".$u_name." auf www.cora-planet.de \nDu erh&auml;st in dieser Mail deine pers&ouml;nlichen Zugangsdaten.\n Username: ".$u_name."\nPasswort: ".$u_pass."\n\n Bitte hebe die Zugangsdaten gut auf und gebe diese niemals an Dritte weiter. Die Mitarbeiter von www.cora-planet.de und www.flychat.de werden dich niemals nach deinem Passwort frage.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte Antworte nicht auf diese Mail.";
       
$headers    "From: system@cora-planet.de\nReply-To: sendolight@aol.com";
       
$config    "-fkontakt@cora-planet.de";
       
mail("$to""$subject""$msg""$headers""$config");

       
$to        "kontakt@cora-planet.de";
       
$subject    "Registrierung von ".$u_name." auf www.cora-planet.de";
       
$msg        $u_name." hat isch auf www.cora-planet.de registriert.\n Diese Person hat bereits die Welcome Mail mit den pers&ouml;nlichen Zugangsdaten erhalten.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte antworte nicht auf diese Mail.";
       
$headers    "From: ".$e_mail;
       
$config    "-fkontakt@cora-planet.de";
       
mail("$to""$subject""$msg""$headers""$config");
      }
    }
    else { echo 
$wasfehlt; }
   } 
da soll geprüft werden ob der nickname mit dem man sich registrieren will schon vergeben is oder net wenn net soll kommen dat der username schon besetzt ist und er sich nen anderen wählen soll ansonsten soll kommen dat die registrierung erfolgreich war und eine mail wird gleichzeitig auch versendet... bis gerade eben hatte ich ein problem mit der übergabe der post variablen was aber schon gelöst ist ... aber jetzt bekomme ich irgendwie null ausgaben .... obwohl alle variablen richtig übergeben werden ... hatte mir dazu schon für jede variable ne extra ausgabe gemacht ... und da hat er mir brav alles reingeschrieben nur so gehts iwie net ich komm aber net dahinter warum?? auf meiner homepage gehts komischerweise ... bitte helft mir bin hier schon am verzweifeln .... greets to all
coraplanet ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.05.2008, 16:30  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hi Coraplanet,

geh das ganze doch mal Schritt für Schritt an: in welchem if-Zweig landest du wann? (einfach mal ein paar echos als Debug-Ausgaben reinmachen).

Ich hab's jetzt nur kurz überflogen und mir ist schleierhaft wie du da jemals an die Stelle kommst an der dann der Username überprüft wird - $allesda wird mit 0 initialisiert und dabei bleibts dann auch.

Die Zeile if($num == $u_name) ist auch komisch - in $num steht eine Zahl in $u_name ein String... das kann nur wahr werden wenn sich einer deiner User z.B. "1" nennt

Als Tipp: lehn dich mal zurück und denk das nochmal logisch durch. Was willst du prüfen und wie muss dann der Code dafür aussehen.


Und: Satzzeichen sind eine der tollsten Erfindungen unserer Zivilisation
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 02.05.2008, 16:34  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

$allesda=0; ersatzlos streichen.
Alle $wasfehlt = "<div... in $wasfehlt .= "<div... umwandeln.
Aus if($allesda) if(empty($wasfehlt)) machen.
PHP-Code:
$sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".mysql_real_escape_string($u_name)."'"
Kein Semi-Colon am Ende des SQL Statements.
mysql_real_escape_string ist wichtig, über sql injections nachlesen und dann auch das zweite $sql = berichtigen.
Abfragen und dann INSERT ist nicht atomar, das Verfahren ist also anfällig gegen race-conditions. Besser ist es, einen unique index für das Feld zu erstellen. Dann trägt MySQL keine zwei gleichen Datensätze ein.



David ist offline  
Alt 02.05.2008, 16:44  
7Style
Gast
 
Beiträge: n/a
Standard

Das ist falsch !
$num = true oder false,
$u_name = string oder leer, die können also nicht gleich sein,

Zitat:
PHP-Code:
     $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';"
     
$erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error()); 
     
$num    mysql_result($ergnum); 
     if(
$num == $u_name
      { 
       echo 
'<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>'
      } 
PHP-Code:
     $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';"
     
$erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error()); 
     
$daten  mysql_fetch_assoc($erg);   // DATEN HOLEN 
     
if($daten['u_name'] == $u_name)  // USEREINGABE MIT DATENBANK VERGLEICHEN
      

       echo 
'<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>'
      } 
so musste es funtionieren !

Geändert von 7Style (02.05.2008 um 16:46 Uhr).
 
Alt 02.05.2008, 16:49  
Benutzer
 
Registriert seit: 08.04.2008
Beiträge: 45
coraplanet befindet sich auf einem aufstrebenden Ast
Standard

ja ok die abfage $num == $u_name is klar ich hab da wohl net ganz aufgepasst sorry aber ich werde mir eure lösungsvorschläge nochmals durchlesen und das ganze nochmals komplett neu durchdenken .... ich glaube ich weiß schon was falsch ist ich probiers nur eben schnell aus und melde mich wieder danke schonmal ...

mfg
coraplanet ist offline  
Alt 02.05.2008, 17:23  
Benutzer
 
Registriert seit: 08.04.2008
Beiträge: 45
coraplanet befindet sich auf einem aufstrebenden Ast
Standard

so problem ist gelöst ich habs mir nochmal neu überlegt und den code ganz neu aufgebaus der sieht jetzt so aus

PHP-Code:
 $u_rname    $_POST['u_rname'];
 
$u_pass     $_POST['u_pass'];
 
$e_mail     $_POST['e_mail'];
 
$u_plz      $_POST['u_plz'];
 
$u_ort      $_POST['u_ort'];
 
$u_land     $_POST['u_land'];
 
$u_geschlecht     $_POST['u_geschlecht'];
 
$u_gtag     $_POST['u_gtag'];
 
$u_gmonat     $_POST['u_gmonat'];
 
$u_gjahr     $_POST['u_gjahr'];
 
$u_str     $_POST['u_str'];
 
$u_name     $_POST['u_name'];
 
 
$sql "SELECT u_name FROM u_users WHERE u_name = '".$u_name."';";
 
$erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
 
$row mysql_fetch_object($erg);

  if(empty(
$u_rname))
    {
     echo 
"<div class='content'>Bitte gebe deinen Nciknamen an.</div>";
    }
   else if(
$row->u_name == $u_name)
    {
     echo 
"<div class='content'>Der Username ".$u_name." existiert bereits.</div>";
    }
   else{

    
$sql "INSERT INTO u_users (u_id, u_name, u_pass, e_mail, u_plz, u_ort, u_land, u_geschlecht, u_gtag, u_gmonat, u_gjahr, u_str, u_rname) VALUES ('', '$u_name', md5('$u_pass'), '$e_mail', '$u_plz', '$u_ort', '$u_land', '$u_geschlecht', '$u_gtag', '$u_gmonat', '$u_gjahr', '$u_str', '$u_rname')";
    
$erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());}
//       $to        = $e_mail;
//       $subject    = "Registrierung auf www.cora-planet.de";
//       $msg        = "Herzlich Willkommen ".$u_name." auf www.cora-planet.de \nDu erh&auml;st in dieser Mail deine pers&ouml;nlichen Zugangsdaten.\n Username: ".$u_name."\nPasswort: ".$u_pass."\n\n Bitte hebe die Zugangsdaten gut auf und gebe diese niemals an Dritte weiter. Die Mitarbeiter von www.cora-planet.de und www.flychat.de werden dich niemals nach deinem Passwort frage.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte Antworte nicht auf diese Mail.";
//       $headers    = "From: system@cora-planet.de\nReply-To: sendolight@aol.com";
//       $config    = "-fkontakt@cora-planet.de";
//       mail("$to", "$subject", "$msg", "$headers", "$config");
//
//       $to        = "kontakt@cora-planet.de";
//       $subject    = "Registrierung von ".$u_name." auf www.cora-planet.de";
//       $msg        = $u_name." hat isch auf www.cora-planet.de registriert.\n Diese Person hat bereits die Welcome Mail mit den pers&ouml;nlichen Zugangsdaten erhalten.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte antworte nicht auf diese Mail.";
//       $headers    = "From: ".$e_mail;
//       $config    = "-fkontakt@cora-planet.de";
//       mail("$to", "$subject", "$msg", "$headers", "$config");}

die mail funktion ist auskommentiert da diese bei mir lokal nur fehlermeldungen gibt ... die bekomm ich lokal net zum laufen (was aber weiter nicht so schlimm ist da sie ja auf dem hosting-server läuft) so jetzt muss ich nur noch die abfragen für die anderen felder machen wenn einer die versucht leer zu lassen und dann läuft das skript wie es soll

trotzdem nochmals danke für eure hilfe und noch ein schönes wochenende euch allen

mfg
coraplanet ist offline  
Alt 02.05.2008, 17:30  
7Style
Gast
 
Beiträge: n/a
Standard

Kannst du bitte sagen,
Wieso du die daten als Object holst staat Array!

das ist eine neugierfrage, da ich lernen möchte !
 
Alt 02.05.2008, 17:35  
Benutzer
 
Registriert seit: 08.04.2008
Beiträge: 45
coraplanet befindet sich auf einem aufstrebenden Ast
Standard

ich hatte vor kurzem auch erst erfahrungen mit php und mysql gesammelt und da ich nicht wusste wie ich daten aus einer mysql datenbank wieder ausgeben lasse hab ich mir was durchgelesen (wo und was kann ich dir jetzt leider nicht mehr sagen) aber da wurde beschrieben mit

PHP-Code:
$row mysql_fetch_object(...) 
und die ausgabe dann mit

PHP-Code:
$row->[spaltenname
und da es bis jetzt eigentlich immer so funktioniert hat ... hab ich mich dadran gewöhnt ...hab aber auch schon mit arrays probiert ist meines erachtens der selbe aufwand ... aber funktioniert (mit ner anderen schreibweise) genauso gut

mfg
coraplanet ist offline  
Alt 02.05.2008, 17:55  
7Style
Gast
 
Beiträge: n/a
Standard

Danke !

weil ich das vorher nie im einstatz gesehen habe,
es ist für OOP-Progremmirer gedacht glaube ich !
 
Alt 02.05.2008, 18:07  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Ja richtig im Prinzip ist das für die OOP gedacht. Aber ich habe das auch schon früher gesehen als OOP in PHP noch nicht so stark vertreten war! Falsch ist es nicht aber normalerweise mysql_fetch_array oder mysql_fetch_assoc
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
problem mit ausgabe von daten phyton Datenbanken 3 02.07.2007 17:44
Problem mit der Ausgabe Kein Genie PHP Tipps 2006 5 26.11.2006 21:24
Problem mit einer Ausgabe mit for... PHP Tipps 2005-2 4 30.09.2005 19:26
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
Problem mit der Ausgabe PHP Tipps 2005-2 2 29.07.2005 18:09
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
Problem mit PFad Firefox - Verzeichnis löschen PHP Tipps 2005-2 0 19.07.2005 16:05
Problem mit Ausgabe in Optionfelder (<select>) Monty77 PHP Tipps 2005 4 27.01.2005 22:33
[Erledigt] Problem mit Text Ausgabe in neuem Fenster PHP Tipps 2005 6 18.01.2005 14:24
variablen ausgabe problem..... PHP Tipps 2005 3 06.01.2005 02:27
Problem mit Ausgabe picco PHP Tipps 2004-2 2 24.12.2004 15:38
problem mit ausgabe bei einer "tmp"-table... nautiluS PHP Tipps 2004-2 0 20.12.2004 15:12
Problem mit Array und Ausgabe picco PHP Tipps 2004-2 3 16.12.2004 23:03
Problem mit Ausgabe PHP Tipps 2004 2 24.08.2004 17:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php keine ausgabe

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum