php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.06.2005, 11:06  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard unerklärlicher fehler in der registrierungssite

Also in meiner register seite neu.php tritt ein unerklärlicher Fehler auf,
bis jetzt hatt immer alles wunderbar funktioniert und ohne das ich etwas am Code geändert habe erscheint jetzt folgende Fehlermeldung:
Beim Anlegen des Benutzers trat ein Fehler auf,
wie euch beim posten meines Codes gleich auffällt kämen also nur 2 oder 3 Zeilen in Frage wo der Fehler sein kann.
Hoffe es kann mir jemand helfen.

PHP-Code:
<?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 if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
    <tr>
        <td bgcolor="#e7e7e7" align="center" colspan="2">
        [b]Neuen Benutzer anlegen[/b]
        </td>
    </tr>
    <tr>
        <td width="170" bgcolor="#e7e7e7">Benutzername</td>
        <td width="230" bgcolor="#ffffff"><input type="text" name="username" class="input"<?php if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } ?> size="20"></td>
    </tr>
    <tr>
        <td width="170" bgcolor="#e7e7e7">Passwort</td>
        <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
    </tr>
    <tr>
        <td width="170" bgcolor="#e7e7e7">Passwort wiederholen</td>
        <td width="230" bgcolor="#ffffff"><input type="password" name="password2" size="20" class="input"></td>
    </tr>
    <tr>
        <td bgcolor="#e7e7e7" align="center" colspan="2">
        <input type="submit" name="submit" value="Benutzer anlegen" class="button">
        </td>
    </tr>
    <tr>
        <td bgcolor="#e7e7e7" align="center" colspan="2">
        [url="forums.html"]Zur&uuml;ck zum Login[/url]
        </td>
    </tr>
    <tr>
        
      <td bgcolor="#e7e7e7" align="center" colspan="2"> Copyright &copy; 2005 by
       [email="rosenthalermatthias@utanet.at"]Matthias Rosenthaler[/email]

         - Alle Rechte vorbehalten
        </td>
    </tr>
</table>
</form>
<?php
}elseif(!isset($_POST['username']) || $_POST['username'] == ""){
    echo 
'<p align="center">Einen Benutzernamen brauchen wir schon ;-)

[url="neu.php"]Zur&uuml;ck[/url]</p>'
;
}elseif(!isset(
$_POST['password']) || $_POST['password'] == "") {
    echo 
'<p align="center">Ein Passwort brauchen wir schon ;-)

[url="neu.php"]Zur&uuml;ck[/url]</p>'
;
}elseif(
$_POST['password'] != $_POST['password2']) {
    echo 
'<form action="neu.php" method="post">';
    echo 
'<p align="center">Die Passw&ouml;rter stimmen nicht &uuml;berein!

'
;
    echo 
'<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo 
'<input type="submit" name="zurueck" value="Zur&uuml;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!

[url="neu.php"]Zur&uuml;ck[/url]</p>'
;
        die;
    }else{
        
$username $_POST['username'];
        
$pass md5($_POST['password']);
        if(@
mysql_query("INSERT INTO users VALUES('$username','$pass')") && @mysql_query("INSERT INTO rohstoffe VALUES('$username',500,50,)")) {
            echo 
'<p align="center">Der neue Benutzer wurde erfolgreich angelegt!

[url="sichere_seite.php"]Zur Admin-Seite[/url]</p>'
;
        }else{
            echo 
'<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!

[url="neu.php"]Zur&uuml;ck[/url]</p>'
;
        }
    }
}
?>
</body>
</html>

Editiert von Ben.
matthros ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.06.2005, 11:57  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Nochwas zum Code:
Mach bitte die @ vor mysql_query weg und gib im Fehlerfall mysql_error() aus.
Dsa kanst Du z. B. mit
$result = mysql_query() or die (mysql_error())
machen.

Dann siehst Du sicher auch, warum Du die Fehlermeldung ausgibst.
Es ist ja nicht so, dass PHP von sich aus diese Meldung ausgeben würde....
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.06.2005, 12:54  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard

jep werd ich machen
matthros ist offline  
Alt 12.06.2005, 12:53  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard

so leute hab jetzt die @ weggemacht und nen mysql_error in den else zweig gepackt vl. könnt ihr mir jetzt durch die fehlermeldung helfen also hier ist sie:

MySQL-Antwort:Column count doesn't match value count at row 1
matthros ist offline  
Alt 12.06.2005, 13:05  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Die Meldung ist doch eigentlich eindeutig:
Anzahl der Spalten != Anzahl der Werte im Aufruf.

INSERT INTO users VALUES('$username','$pass')

Vermutlich hat die Tabelle users mehr als nur diese beiden Spalten.
Wenn Du die Spaltennamen nicht extra mit angibst, sollten die Werte wenigstens genau passen.
Also pack da mal die Spaltennamen mit rein:

INSERT INTO users (username, pass) VALUES('$username','$pass')

Natürlich mit den richtigen Spaltennamen...
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 12.06.2005, 13:46  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard

jop stimmt, hab ich gar ned dran gedacht das ich auch die "leeren" spaltenwerte mit angeben muss. Werde aber jetzt die einzelnen spalten
angeben damit ich dahinter auch wirklich ned mehr als nötig eingeben muss.

nochwas hab jetzt gerade ne funktion eingebaut das die ips der user gespeichert werden, funktioniert auch alles, nur weiß ich ned
wie ich das hinkriege das die ip adresse gleich in der zeile des jenigen
users der sich eingeloggt hat gespeichert wird bei mir wirds leider immer in eine neue zeile gespeichert.
matthros ist offline  
Alt 12.06.2005, 14:12  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard

Wenn ihr euch nichts darunter vorstellen könnt hier der scriptausschnitt:
da muss ich irgendwie den user durch die session reinkriegen oder irgendwas in der art oder?


<?php
$ip = $_SERVER['REMOTE_ADDR'];

$sql = mysql_query("INSERT INTO users(IPAdresse) VALUES('$ip')")
?>
matthros ist offline  
Alt 12.06.2005, 14:58  
Erfahrener Benutzer
 
Registriert seit: 21.01.2005
Beiträge: 444
stf.stream
stf.stream eine Nachricht über ICQ schicken
Standard

guckst du das:
http://dev.mysql.com/doc/mysql/de/update.html

Die usr_id hast du hoffentlich irgendwo als sessionvariable mit rumturnen...

mfg
__________________
stf.
stf.stream ist offline  
Alt 12.06.2005, 18:08  
Erfahrener Benutzer
 
Registriert seit: 10.06.2005
Beiträge: 254
matthros
Standard

so das hab ich jetzt auch geschafft
matthros 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
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
mysql fehler meldung: basicx Datenbanken 1 22.07.2008 09:48
Javascript bringt merkwürdigen Fehler sanz JavaScript, Ajax und mehr 5 27.06.2008 00:04
Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
Frage: Suche Fehler in diesem Script... PHP Tipps 2005-2 14 25.10.2005 19:24
Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
fehler im script oder fehler beim server PHP Tipps 2005 12 21.05.2005 17:04
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
[Erledigt] Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_query(\select user from users where user = \'\.$_post[\'username\'].\\'\, matthias rosenthaler

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.