php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-02-2005, 03:24
Philbil
 Registrierter Benutzer
Links : Onlinestatus : Philbil ist offline
Registriert seit: Dec 2004
Beiträge: 169
Philbil ist zur Zeit noch ein unbeschriebenes Blatt
Standard Register

Hm, hab hier ein kleines "Registirer Script", mag sein das es total dämlich und scheisse geschrieben ist, aber ich hab mal ne Frage...

PHP-Code:
<?
$Nick 
$HTTP_POST_VARS["Nick"];
$Volk $HTTP_POST_VARS["Volk"];
$pw $HTTP_POST_VARS["pw"];
$pw2 $HTTP_POST_VARS["pw2"];
$email $HTTP_POST_VARS["mail"];
$pw2_vergleich "*********";
$md5_pw md5($pw);



if(
$pw2 == $pw2_vergleich)
{
mysql_connect("localhost",
  
"bla","bla") or die
  (
"Keine Verbindung moeglich");
  
mysql_select_db("bla") or die
  (
"Die Datenbank existiert nicht");


$abfrage "SELECT UserName AS name2 FROM users";
$ergebnis mysql_query($abfrage);
 while(
$row mysql_fetch_object($ergebnis))
    {
    if(
$row->name2 == $Nick)
    {
     include (
"include/include-reg2.php");

}
else
{

$eintrag "INSERT INTO users (UserName, UserPass, UserMail, Volk) VALUES ('$Nick', 

'$md5_pw', '$email', '$Volk')"
;
$eintragen mysql_query($eintrag);
include 
'include/include_reg-erfolgreich.php';
}
  }  
}
else
{
include (
"include/include-reg3.php");
  

}


?>

--------------------------------------------------------
Nochmal ein edit, genauer Funktionstest:
Sollte nick nicht vorhanden sein, das reg.pass etc korrekt sein, wird ein Eintrag in der db vorgenommen, die reg-erfolgreich allerdings 4mal ausgegeben.
Sollte der nick nicht vorhanden sein ( oder auch doch, spielt keine rolle da zuerst das pw geprüft wird und darauf reagiert wird)das reg.pass auch falsch sein, wird ganz normal die file mit dem "pass falsch" ausgegeben, 1mal, also korrekt.
Sollte Der Nick vorhanden sein, das reg.pass korrekt sein, wird kein Eintrag in der db vorgenommen allerdings 4mal was ausgespuckt, reg-erfolgreich, dann error user schon vorhanden, und danach noch 2 mal reg-erfolgreich.


Ich hoffe ihr könnt damit was anfangen und mir sagen wo der Fehler liegt.

Greetz

Geändert von Philbil (17-02-2005 um 03:45 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 17-02-2005, 06:58
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Salut

also ganz genau verstehe ich das Problem noch nicht. Aber den Code würde ich anyway ändern.

Mal eine kleine Verbesserung. Wenn
PHP-Code:
if($pw2 == $pw2_vergleich)
... 
false ist, dann machst du mit dem else
PHP-Code:
$eintrag "INSERT INTO users (UserName, UserPass, UserMail, Volk) VALUES ('$Nick','$md5_pw', '$email', '$Volk')";
... 
weiter. Du prüfst aber nicht ob die einzelnen Vars vom User eigegeben wurden. Wenn nicht dann trägst du entweder leere Werte ein (wenn die Vars initialisiert wären) oder versuchst auf Vars zuzugreifen, welche nicht definiert sind.

Bei deiner while Schleife vergleichst du in einer Bedingung mit $Nick. Wobei du aber einleitend wieder nicht prüfst ob $Nick überhaupt gesetzt ist. Wenn die Bedingung false ergibt, weisst du aber nicht ob das daran liegt, dass $Nick falsch ist oder einfach nicht gesetzt.
Trotzdem versuchst du dann in deinem else einen DB-Eintrag mit $Nick zu machen.

Tipp: Prüfe alle benötigen Usereingaben und gib einen Fehler aus wenn etwas fehlt (isset ist dein Freund). Dein erstes if würde ich also so schreiben:
PHP-Code:
if($pw2 == $pw2_vergleich && isset($Nick)){
... 
Desweiteren mache nicht direkt den else sondern erst noch einen elseif.
PHP-Code:
elseif(isset($Nick) && isset($md5_pw) && isset($email) && isset($Volk)){
$eintrag "INSERT INTO users (UserName, UserPass, UserMail, Volk) VALUES ('$Nick', '$md5_pw', '$email', '$Volk')";
... 
Am Schluss dann noch ein else und ein die. Damit kannst du den User darauf hinweisen, dass er nicht alle Felder ausgefüllt hat.

Hoffe es hilft was
Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 17-02-2005, 08:12
marc75
 PHP Senior
Links : Onlinestatus : marc75 ist offline
Registriert seit: Jul 2003
Ort: daheim
Beiträge: 1.366
marc75 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

deine geschweiften Klammern verwirren ???

PHP-Code:
if($pw2 == $pw2_vergleich)
{
//...

 
while($row mysql_fetch_object($ergebnis))
    {
    if(
$row->name2 == $Nick)
    { 
//Wo machst du denn diese if wieder zu??? ->
     
include ("include/include-reg2.php");

}  
//hier etwa???
else

__________________
mfg
marc75

<Platz für anderes>
Mit Zitat antworten
  #4 (permalink)  
Alt 23-02-2005, 04:57
Philbil
 Registrierter Benutzer
Links : Onlinestatus : Philbil ist offline
Registriert seit: Dec 2004
Beiträge: 169
Philbil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$Nick $HTTP_POST_VARS["Nick"];
$Volk $HTTP_POST_VARS["Volk"];
$pw $HTTP_POST_VARS["pw"];
$pw2 $HTTP_POST_VARS["pw2"];
$email $HTTP_POST_VARS["mail"];
$pw2_vergleich "*****";
$md5_pw md5($pw);


if(
$pw2 == $pw2_vergleich && isset($Nick) && isset($md5_pw) && isset($email) && isset($Volk))
{
 


$abfrage "SELECT UserName AS name2 FROM users";
$ergebnis mysql_query($abfrage);
 while(
$row mysql_fetch_object($ergebnis))
    {
    if(
$row->name2 == $Nick)
    {
     include (
"include/include-reg2.php");

}
else
{
$eintrag "INSERT INTO users (UserName, UserPass, UserMail, Volk) VALUES ('$Nick', '$md5_pw', '$email', '$Volk')";
$eintragen mysql_query($eintrag);
$eintrag2 "CREATE TABLE user_$Nick (
id INT NOT NULL AUTO_INCREMENT ,
 PRIMARY KEY ( id ) ,
Nick VARCHAR( 30 ) NOT NULL ,
Volk VARCHAR( 15 ) NOT NULL ,
Planet VARCHAR( 10 ) NOT NULL ,
PlanetenArt VARCHAR( 15 ) NOT NULL ,
Aborasonde VARCHAR( 10 ) NOT NULL ,
Falcon VARCHAR( 10 ) NOT NULL ,
Banshee VARCHAR( 10 ) NOT NULL ,
MintakaA VARCHAR( 10 ) NOT NULL ,
Alnitak VARCHAR( 10 ) NOT NULL ,
Barracuda VARCHAR( 10 ) NOT NULL ,
Dilfim VARCHAR( 10 ) NOT NULL ,
Kylee VARCHAR( 10 ) NOT NULL ,
SchwereDrohne VARCHAR( 10 ) NOT NULL ,
Nieme VARCHAR( 10 ) NOT NULL ,
CargoX VARCHAR( 10 ) NOT NULL ,
TransporterAY VARCHAR( 10 ) NOT NULL ,
TransporterAYZ VARCHAR( 10 ) NOT NULL ,
CargoI VARCHAR( 10 ) NOT NULL ,
KreuzerklasseWotan VARCHAR( 10 ) NOT NULL ,
Taurus VARCHAR( 10 ) NOT NULL ,
Hawk VARCHAR( 10 ) NOT NULL ,
Xanthos VARCHAR( 10 ) NOT NULL ,
Omegabomber VARCHAR( 10 ) NOT NULL ,
HemeraZerstörer VARCHAR( 10 ) NOT NULL ,
Ceres VARCHAR( 10 ) NOT NULL ,
Kerberos VARCHAR( 10 ) NOT NULL ,
Endurance VARCHAR( 10 ) NOT NULL ,
M608ADelvon VARCHAR( 10 ) NOT NULL ,
M1000Delvon VARCHAR( 10 ) NOT NULL ,
Wyvren VARCHAR( 10 ) NOT NULL ,
SunFire VARCHAR( 10 ) NOT NULL ,
Armageddon VARCHAR( 10 ) NOT NULL ,
Erebos VARCHAR( 10 ) NOT NULL ,
Chimera VARCHAR( 10 ) NOT NULL ,
Genesis VARCHAR( 10 ) NOT NULL ,
TrooperC VARCHAR( 10 ) NOT NULL ,
TrooperJ VARCHAR( 10 ) NOT NULL ,
GuardS VARCHAR( 10 ) NOT NULL ,
RakCargoX VARCHAR( 10 ) NOT NULL);"
;
$eintragen2 mysql_query($eintrag2);
$eintrag3 "INSERT INTO user_$Nick (Nick, Volk) VALUES ('$Nick', '$Volk')";
$eintragen3 mysql_query($eintrag3);
include 
'include/include_reg-erfolgreich.php';
}
  }  
}
else
{
echo 
"letze else";
}
?> 

Klappt soweit. Nun hab ich auch das "Problem" gefunden, warum er die Antworten mehrfach ausspuckt, genau das selbe macht er mir mit den einträgen.
Wenn ich in der db 2 Tabellen habe, und eine neue erstelle, wird die Meldung "register erfolgreich" 3 mal angezeigt, genauso wie der user 3 mal in die tabelle, die zuvor erstellt wurde, eingetragen wird.
Sollte es 7 Tabellen geben, und eine neue erstellt, trägt er 8 mal das gleiche in die erstelle Tabelle.. und gibt auch 8 mal aus, das register ok war.

Was ich aber noch nich weiß.. warum bitte!?
Mit Zitat antworten
  #5 (permalink)  
Alt 23-02-2005, 08:39
marc75
 PHP Senior
Links : Onlinestatus : marc75 ist offline
Registriert seit: Jul 2003
Ort: daheim
Beiträge: 1.366
marc75 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sag mal wieso legst du für jeden User eine neue Tabelle an, ist dir langweilig?
__________________
mfg
marc75

<Platz für anderes>
Mit Zitat antworten
  #6 (permalink)  
Alt 23-02-2005, 17:21
Philbil
 Registrierter Benutzer
Links : Onlinestatus : Philbil ist offline
Registriert seit: Dec 2004
Beiträge: 169
Philbil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So könnte man es auch sagen..
Ich brauchs einfach, weil ich für jeden User massig Infos speichern muss, und das in 1 Tabelle ziemlich unübersichtlich wird, und es Doppeleinträge ohne Ende geben würde, da ich in einigen Spalten mehrere Werte haben muss, so würd dann auch der Name Detlef 3 mal da stehen, in einer neuen Tabelle kann ich eben dies verhindern.

Aber zurück zum problem, weisst du maybe woran das liegt?
Mit Zitat antworten
  #7 (permalink)  
Alt 23-02-2005, 17:24
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich brauchs einfach, weil ich für jeden User massig Infos speichern muss, und das in 1 Tabelle ziemlich unübersichtlich wird, und es Doppeleinträge ohne Ende geben würde, da ich in einigen Spalten mehrere Werte haben muss, so würd dann auch der Name Detlef 3 mal da stehen, in einer neuen Tabelle kann ich eben dies verhindern.
Autsch!

BTW: Wenn du maybe deinen Code mal aufs wesentliche beschränken würdest, könnte man sich den maybe mal ansehen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 23-02-2005, 18:03
marc75
 PHP Senior
Links : Onlinestatus : marc75 ist offline
Registriert seit: Jul 2003
Ort: daheim
Beiträge: 1.366
marc75 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und wieviel user wird es geben 1000 oder 2000?


Statt über das Problem zu grübeln würde ich mir lieber gedanken machen wie man das anders lösen kann.



Tip:
tab_user -> ID | Name | ort
tab_user_mehrfach -> User_id | spalte | etc
usw.
__________________
mfg
marc75

<Platz für anderes>
Mit Zitat antworten
  #9 (permalink)  
Alt 24-02-2005, 01:41
Philbil
 Registrierter Benutzer
Links : Onlinestatus : Philbil ist offline
Registriert seit: Dec 2004
Beiträge: 169
Philbil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schön und gut, aber das mit den Tabellen is nich mein problem. Das problem ist wie beschrieben, je mehr Tabellen vorhanden, desto öfter trägt er was ein und gibt öfter was aus. Das muss doch irghend einen Grund haben, irgend einen Konflikt im Code oder sowas..
Es kommt schliesslich auch wenn ich den create table teil weglasse..

btw, wären 40 user
Mit Zitat antworten
  #10 (permalink)  
Alt 24-02-2005, 08:43
marc75
 PHP Senior
Links : Onlinestatus : marc75 ist offline
Registriert seit: Jul 2003
Ort: daheim
Beiträge: 1.366
marc75 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sag mal weisst du überhaupt was dein Code da macht?


PHP-Code:

//Hier machst du eine Abfrage der Tab user
$abfrage "SELECT UserName AS name2 FROM users";
$ergebnis mysql_query($abfrage);

//Hier benutzt du eine while schleife
//weisst du was while schleifen machen???
 
while($row mysql_fetch_object($ergebnis))
    {
//hier dein Code Chaos die zweite
//weisst du wann if gültig ist, schon mal versucht zu testen, wohl nicht
    
if($row->name2 == $Nick)
    {
     include (
"include/include-reg2.php");

}
else
{
//hier beginnt der Else Teil der X-mal durchlaufen wird, je nach
//ergebnis der abfrage oben, dank deiner while schleife
´
//-> hier kommt halt dein Code zum Eintragen. 

Im Endeffekt muss man leider sagen, das deine Datenbankstruktur und
deine PHP Ablauf Struktur müll sind, sorry ist aber so.
__________________
mfg
marc75

<Platz für anderes>
Mit Zitat antworten
  #11 (permalink)  
Alt 25-02-2005, 02:41
Philbil
 Registrierter Benutzer
Links : Onlinestatus : Philbil ist offline
Registriert seit: Dec 2004
Beiträge: 169
Philbil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für deine ehrliche Meinung.. hab mir nochmal das manual ein wenig angeschaut.. hab jetzt was gebastelt was einwandfrei funktioniert, trotzdem würd ich gerne wissen ob das wenigstens so halbwegs in Ordnung ist.

PHP-Code:
<?php

$Nick 
$HTTP_POST_VARS["Nick"];
$Volk $HTTP_POST_VARS["Volk"];
$pw $HTTP_POST_VARS["pw"];
$pw2 $HTTP_POST_VARS["pw2"];
$email $HTTP_POST_VARS["mail"];
$pw2_vergleich "****";
$md5_pw md5($pw);

mysql_connect("localhost",
  
"**","**") or die
  (
"Keine Verbindung moeglich");
  
mysql_select_db("****") or die
  (
"Die Datenbank existiert nicht");



if (
$pw2 == $pw2_vergleich
{
if (!empty (
$Nick)) 
{
if (!empty (
$email))
{
if (!empty (
$pw))
{
$var mysql_query("SELECT Username AS name2 FROM `users` WHERE UserName = '$Nick' limit 1");
if(
mysql_num_rows($var) == "0"
{
$eintrag "INSERT INTO users (UserName, UserPass, UserMail, Volk) VALUES ('$Nick', '$md5_pw', '$email', '$Volk')";
$eintragen mysql_query($eintrag);
} else {
echo 
"User schon vorhanden";
}

}

else
{echo 
"Passwort falsch";}

}

else
{echo 
"email nicht angegheben";} 

}

else
{echo 
"nick nicht angegeben";}

}

else
{echo 
"reg pass falsch";}


?>
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:07 Uhr.