php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.12.2004, 18:06  
Gast
 
Beiträge: n/a
Standard Datenbankfehler

Hallo,
ich habe ein Formular:
Code:
<html>
<head></head><body><form action="ausgabe.php" method="post"><input name="nick"><input type="submit"></form>
Dann habe ich hier meine php Datei, er macht aber nicht das was er machen soll sondern er gibt nur die Platzhalter aus, er soll sie aber mit denen aus der Datenbank gespeicherten Daten replacen, er macht das aber nicht obwohl die Variable erfolgreich übergeben wird, also der $nick vom Eingabefeld. Warum ?

PHP-Code:
include('config.inc.php');
$nn=$HTTP_POST_VARS['nick'];
$nick='King Cool';

$sql=mysql_query(" SELECT * FROM users WHERE nickname='$nick' ");
while(
$anz=mysql_fetch_assoc($sql))
{
    
$nn=$anz['nickname'];
}

if(
$nn==$nick)
{





$ip=$HTTP_SERVER_VARS['REMOTE_ADDR'];

$sql=mysql_query(" SELECT * FROM counter WHERE up_counter_ip='$ip' and nickname='$nick'");
$vis=mysql_query(" SELECT counter_calls FROM users WHERE nickname='$nick' ");
while(
$visi=mysql_fetch_assoc($vis))
{
    
$visitors=$visi['counter_calls'];
}


//if(mysql_num_rows($sql))
//{
//    echo "Dat gibbed schon";
//}
//else
//{
$sql=mysql_query("INSERT INTO counter ( `id` , `up_counter_ip` ,`nickname`) VALUES ( '' , '$ip' 

, '$nick');"
);

$last=$visitors+1;
$sql1 mysql_query("UPDATE `users` SET `counter_calls` = '$last' WHERE `nickname` = '$nick'");
//}



$left§ ("templates/up.tpl");
$right§("templates/up2.tpl");
$footer=get_file_as_string("templates/gb_entrys.tpl");


if(
session_is_registered(nickname))
{


$sql=mysql_query(" SELECT * FROM users WHERE nickname='$nick'");
while(
$data=mysql_fetch_assoc($sql))
{
    
$rname=$data['realname'];
    
$from=$data['gemeinde'];
    
$geschl=$data['geschl'];
    
$country=$data['bezirk_land'];
    
$mail=$data['email'];
    
$regtime=$data['regtime'];
    
$about=$data['about'];
    
$visitors=$data['counter_calls'];
    
$msn=$data['msn'];
    
$icq=$data['icq'];
    
$aim=$data['aim'];
    
// Add to DB $born=
}


$about=str_replace("\n","\n 
 \n"
,$about);
$sig=str_replace("\n","\n 
 \n"
,$sig);
$left=str_replace("{PAGETITLE}",$lang['pagetitle'],$left);
$left=str_replace("{PAGETITLE2}",$lang['pagetitle2'],$left);
$left=str_replace("{USR}",$nick,$left);
$left=str_replace("{RNAME}",$rname,$left);
$left=str_replace("{FROM}",$from,$left);
$left=str_replace("{GESCHL}",$geschl,$left);
$left=str_replace("{REGION}",$country,$left);
$left=str_replace("{MAIL}",$mail,$left);
$left=str_replace("{BORN}",$born,$left);
$left=str_replace("{REGTIME}",$regtime,$left);
$left=str_replace("{ABOUT}",$about,$left);
$left=str_replace("{VISITORS}",$visitors,$left);
$left=str_replace("{ICQ}",$icq,$left);
$left=str_replace("{AIM}",$aim,$left);
$left=str_replace("{MSN}",$msn,$left);

$right=str_replace("{PAGETITLE}",$lang['pagetitle'],$right);
$right=str_replace("{PAGETITLE2}",$lang['pagetitle2'],$right);
$right=str_replace("{USR}",$nick,$right);


/*$footer=str_replace("{PAGETITLE}",$lang['pagetitle'],$footer);
$footer=str_replace("{PAGETITLE2}",$lang['pagetitle2'],$footer);
$footer=str_replace("{USR}",$nick,$footer);
$footer=str_replace("{RNAME}",$rname,$footer);
$footer=str_replace("{FROM}",$from,$footer);
$footer=str_replace("{GESCHL}",$geschl,$footer);
$footer=str_replace("{REGION}",$country,$footer);
$footer=str_replace("{MAIL}",$mail,$footer);
$footer=str_replace("{BORN}",$born,$footer);
$footer=str_replace("{REGTIME}",$regtime,$footer);
$footer=str_replace("{ABOUT}",$about,$footer);*/

}



echo 
'<div id="up_right">'; echo $right; echo ' </div>';

echo 
'<div id="up_left">'; echo $left; echo ' </div>';

echo 
'<div id="up_footer">';echo $footer; echo' </div>';







}
else
{
    echo 
"User existiert nicht";
}


?> 
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.01.2005, 11:11  
Gast
 
Beiträge: n/a
Standard

Weil du "Select *" schreibst. :wink:

$nn=$HTTP_POST_VARS['nick'];

$nn=$anz['nickname'];

Und damit wäre dein Wert aus dem Formular zerschossen. Die ganze Logik des Scriptes ist schon sehr merkwürdig.

$nick='King Cool';

$sql=mysql_query(" SELECT * FROM users WHERE nickname='$nick' ");

$nn=$anz['nickname'];

Was soll jetzt in $nn anderes als 'King Cool' stehen??? Den Wert aus dem Forumular benutzt du nirgendwo, das ist doch von vorne bis hinten Quatsch.

Gruß
phpfan
 
Alt 01.01.2005, 11:52  
Gast
 
Beiträge: n/a
Standard

Ja in $nn holt er sich alle bestehenden Namen aus der Datenbank und prüft ob er im Formular eingegebene Nick existiert, wenn er nicht existiert soll er schreiben user existiert nicht, wenn er existiert soll er die Platzhalter ersetzen, ist das so etwas klarer ? :wink:
Das $nn=King Cool hab ich nur zu testzwecken dahingeschrieben.

Ich hab nun das $nn=$HTTP_POST_VARS['nick']; auf $nick=$HTTP_POST_VARS['nick']; geändert, geht aber noch immer nicht. Er ersetzt nichts ?
 
Alt 01.01.2005, 11:59  
Gast
 
Beiträge: n/a
Standard

Das habe ich mal irgendwo gelesen:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Und nach jedem mysql_query ein mysql_error einzubauen, soll auch weiterhelfen. :wink:

Gruß
phpfan
 
Alt 01.01.2005, 14:33  
Gast
 
Beiträge: n/a
Standard

Mittlerweile sitz ich schon ewig davor und finde nichts
 
Alt 01.01.2005, 14:36  
Gast
 
Beiträge: n/a
Standard

Das kann doch nicht so schwer sein, alle relevanten Variablen mit echo anzeigen zu lassen, oder? Und ein mysql_error einzubauen, sollte auch nicht das Problem sein. Irgendwo muss der Fehler ja stecken, aber ich habe keine Lust, dein Script zu testen, da ich keine passende DB habe.

Gruß
phpfan
 
 


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
[Erledigt] Datenbankfehler; Beitrag erstellen. maeck Board-Support 6 28.07.2008 22:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbankfehler 2004, datenbank fehler

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