php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.04.2005, 03:34  
Gast
 
Beiträge: n/a
Standard wo liegt der fehler ?

hallo leute.

hat wer von euch ne ahnung wo hier der fehler liegt ?

session_variablen sind alle gesetzt,
session_start() wurde initialisert,

das script gibt auch keine fehlermeldung aus und das Update updatet die daten trotzdem nicht :/

Die Datenbank schaut folgendermassen aus:

ID|USERNAME|PASSWORD|CHATNAME|FTPIP|FTPPORT|FTPUSERNAME|FTPPASSWORD|ALLOWSHARE
1|MK|MK|MK|1.1.1.1|1|MK|MK|nein

$_SESSION[userid] ist auch auf 1 gesetzt

PHP-Code:
<?php

if (!$db sqlite_open('..\DATABASE\users.db'$sqliteerror)) 
  die (
$sqliteerror);

$result sqlite_query($db,"select * from users where username = '$webusername'"); 


sqlite_query($db,"UPDATE USERS SET USERNAME='$_SESSION[username]', PASSWORD='$_SESSION[userpassword]', CHATNAME='$_SESSION[chatname]', FTPIP='$_SESSION[ftpip]', FTPPORT='$_SESSION[ftpport]', FTPUSERNAME='$_SESSION[ftpusername]', FTPPASSWORD='$_SESSION[ftppassword]', ALLOWSHARE='$_SESSION[allowshare]' WHERE ID=$_SESSION[userid]");
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.04.2005, 09:24  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Elemente aus assoziativen Arrays kannst du nicht einfach in einen String packen, sondern du musst entweder den Verkettungs-Operator (.) oder die komplexe String-Syntax verwenden http://de3.php.net/manual/de/languag...arsing.complex
Bsp:
PHP-Code:
<?php
sqlite_query
($db,"UPDATE USERS 
                           SET USERNAME = '" 
$_SESSION[username] . "', 
                                  PASSWORD = '" 
$_SESSION[userpassword] ."',               
                                  CHATNAME = '" 
$_SESSION[chatname] . "', 
                                  ....
                           WHERE ID = " 
$_SESSION[userid]); 
// oder
sqlite_query($db,"UPDATE USERS 
                           SET USERNAME = '{$_SESSION[username]}', 
                                  PASSWORD = '{$_SESSION[userpassword]}', 
                                  CHATNAME = '{$_SESSION[chatname]}, 
                                  ...
                          WHERE ID = {$_SESSION[userid]}"
); 
?>
__________________
Gruss
L
lazydog ist offline  
Alt 17.04.2005, 14:49  
Gast
 
Beiträge: n/a
Standard

ok ich hab jetzt alles so gemacht, wie du es mir gezeigt hast. php gibt zwar keinen fehler aus, aber der eintrag in der Datenbank ändert sich trotzdem nicht

PHP-Code:
<?php
sqlite_query
($db,"UPDATE USERS SET USERNAME = '" $_SESSION[username] . "', PASSWORD = '" $_SESSION[userpassword] ."', CHATNAME = '" $_SESSION[chatname] . "', FTPIP = '" $_SESSION[ftpip] . "', FTPPORT = '" $_SESSION[ftpport] . "',  FTPUSERNAME = '" $_SESSION[ftpusername] . "',  FTPPASSWORD = '" $_SESSION[ftppassword] . "',  ALLOWSHARE = '" $_SESSION[allowshare] . "' WHERE ID = " $_SESSION[userid]);
?>

ich versteh das einfach nicht... alles stimmt ja. session_variable ist gesetzt, hat auch den wert=1 doch die sqliteanweisung will die werte einfach nicht ändern hrhr
 
Alt 17.04.2005, 14:58  
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

Mal so als Hinweise:

1.
$_SESSION[username] sollte besser $_SESSION['username'] heißen. Ebenso alle anderen Indizes in assoziative Arrays. Insofern war der Vorschlag von lazydog etwas schlampig. (Wohl etwas zu lazy. )

2.
Bist du sicher, dass da nicht ein paar reservierte Bezeichner von sqlite verwendet werden? Users klingt verdächtig. Ich kenne nur My-SQL und dort gibt es zumindest einige Namen, die nicht als Tabellen oder Spalten-Bezeichner verwendet werden dürfen.

3. Lass Dir doch mal die SQL-Query ausgeben bevor Du sie auf sqlite_query loslässt. Vielleicht fällt Dir dann ja noch was auf.
Evtl. sind nicht alle Felder so belegt, wie Du sie gerne hättest.

4.
Hast Du in dem Script noch andere Variablen, die so heißen wie die Einträge in $_SESSION? Z. B: $username oder so...
Wenn register_globals auf on steht, werden die $_SESSION-Daten bei Zuweisungen an die eigenen Variablen auch gleich mit verändert.

5. Ich hab zwar den Link grad nicht parat, aber "SELECT *" sollte vermeiden werden, weil das nur unnötig Zeit kostet und bei Erweiterungen der Tabelle um neue Spalten zu Überraschungen führen könnte.
Das Ergebnis wird doch sowieso nicht verwendet.

Edit:
Wie funktionieren die Fehlerausgaben bei den splite-Funktionen?
Kann da immer noch eine Variable für den Fehlerwert hintendran wie beim Öffnen?
Der_Gerhard ist offline  
Alt 17.04.2005, 16:04  
Gast
 
Beiträge: n/a
Standard

jip hast recht. wies momentan ausschaut liegt es an dem schlüsselwort USERS.

ist etwas seltsam, da ich den befehl SELECT * from users trotzdem anwenden kann ...

aber ok. wenns dem so ist..

danke für den tip
 
Alt 17.04.2005, 16:17  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von 5h4d3
php gibt zwar keinen fehler aus, aber der eintrag in der Datenbank ändert sich trotzdem nicht
Weil Du den Fehler nicht abfragst.
http://www.php.net/manual/de/functio...last-error.php
http://www.php.net/manual/de/functio...ror-string.php

PHP-Code:
<?php
$err 
sqlite_last_error($resource);
if (
$err
  echo 
sqlite_error_string($err);
?>
 
Alt 17.04.2005, 16:49  
Gast
 
Beiträge: n/a
Standard doah

ahhh ich lande hier noch im irrenhaus! !

nein es lag nicht daran!

ich habe die tabelle jetzt in user umgestellt und das teil funtzt immernoch nicht.

Hier um sich das ganze vorzustellen:

<HTML>....
<INPUT type='text' size='25' name='webusername' value=$_SESSION[username]></INPUT>
...
</HTML>

Wenn nichts in der sessionvariable ist, dann bleibt das feld leer, ansonsten wird es gefüllt. Wenn der user hier den wert ändert, wird das dokument weitergeschickt an das script das auf korrekte eingaben überprüft.


PHP-Code:
<?php
    
if(isset($_SESSION['userid'])) {
sqlite_query($db,"UPDATE SERVER SET USER = '$username' WHERE ID='1'");
}
?>
Hier wird jetzt die datenbank upgedatet.

Doch das problem ist: wenn vom vorherigen script $username schon 1x übergeben wurde, ändert sich $username nicht nocheinmal beim wiederholenden aufruf des scriptes.

was soll ich denn da dann machen ?
 
Alt 17.04.2005, 19:53  
Gast
 
Beiträge: n/a
Standard

Kleiner Tip:
wer mit $_SESSION hantiert, sollte zwingend register_globals auf Off setzen.
 
 


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
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
[Erledigt] [phpmailer] - SMTP Fehler: Die folgenden Empfänger sind ... PHP Tipps 2005-2 1 05.10.2005 15:19
[Erledigt] 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
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:19 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.