brauche Webseite ideal für Vereine und Firmen
- Ad -
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! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 25-02-2008, 20:41
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard Konstanten

Hallo,
ich bin ein Neuling in PHP und habe ein Problem. Da Konstanten überall verfügbar sind, möchte ich den db_connect über diese regeln.

So habe ich meine Variablen definiert:
define ('DB_NAME' , 'usr_xyz') ;
define ('DB_USER' , 'xyz_db');
define ('DB_SERVER' ,'localhost') ;
define ('DB_PASSWORD' , 'passwort' ) ;

ansprechen möchte ich sie über include ("db_connect.inc")

$db = @ mysql_connect ( DB_SERVER, DB_USER, DB_PASSWORD )
or die ( 'Konnte keine Verbindung zur Datenbank herstellen' );
--------------------------------------------------------
$db_check = @ mysql_select_db ( DB_NAME );

if ( $db )
{
echo 'Verbindung zur Datenbank wurde hergestellt';
}
----------------------------------------------------------------------
Dies funktioniert auch 1 mal und meine in einem Table abgelegten $Variablen werden korrekt ausgelesen.
Da nach Dateneingabe über ein Formular beim anschließenden INSERT INTO die Verbindung zur Datenbank nicht mehr besteht, rufe ich db_connect.inc wieder auf. Dann ist kein connect mehr möglich, da die Konstanten nur noch den Namen ausgeben also:
DB_NAME
'DB_USER
DB_SERVER
DB_PASSWORD

Als Errormeldung wird ausgegeben:
Warning: mysql_query(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var

und

Warning: mysql_query(): A link to the server could not be established in /var/

Was mache ich hier falsch?

Ich wäre sehr dankbar wenn mir jemand auf die Spünge helfen könnte.

Im voraus recht herzlichen Dank

wiriwa
__________________
wiriwa

Geändert von Kropff (27-02-2008 um 11:18 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 25-02-2008, 20:47
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
Kropff befindet sich auf einem aufstrebenden Ast
Standard

1. kein db_connect.inc sondern db_connect.inc.php, sonst kann man deine zugangsdaten auslesen
2. kein @-zeichen in der entwicklungsphase benutzen -> $db = @ mysql_connect
3. immer mit or die arbeiten
4. ist das ein anderes script, wo du die formulardaten verarbeitest, oder dasselbe?
5. in welcher datei hast du die konstanten definiert?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 25-02-2008, 21:00
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
Zitat:
3. immer mit or die arbeiten
Würde ich nicht als generelle Empfehlung aussprechen - Exceptions und vernünftige Error Handler sind doch wesentlich sinnvolller ...
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | [11000011101110110111011001011110011]
Mit Zitat antworten
  #4 (permalink)  
Alt 25-02-2008, 21:21
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
in der entwicklungsphase
Zitat:
Exceptions und vernünftige Error Handler sind doch wesentlich sinnvolller
aber nicht für anfänger ;-), das kommt später.

gruß
der anfängerversteher
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 25-02-2008, 21:26
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. kein db_connect.inc sondern db_connect.inc.php, sonst kann man deine zugangsdaten auslesen
2. kein @-zeichen in der entwicklungsphase benutzen -> $db = @ mysql_connect
3. immer mit or die arbeiten
4. ist das ein anderes script, wo du die formulardaten verarbeitest, oder dasselbe?
5. in welcher datei hast du die konstanten definiert?

Hallo Peter,
danke für deine schnelle antwort.
Zu deinem Punkt 1
da hier nur die varnamen gespeichert sind, habe ich daran nicht gedacht. werde deinen rat jedoch sofort befolgen.
zu 2
ich habe noch nie ein @-zeichen verwendet.
zu 3
wo sollte ich dabei OR DIE verwenden?
zu4
die formulardaten werden in einer includefile (habe auch schon mit einer php-file getestet) erfasst und über
<form action=sta_insert.php method=post>
und sollen mit INSERT INTO in die datenbank.
zu 5
die konstanten habe ich im startfile definiert.

nochmals herzlichen dank

gruß
wilhelm
__________________
wiriwa
Mit Zitat antworten
  #6 (permalink)  
Alt 25-02-2008, 21:40
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
Kropff befindet sich auf einem aufstrebenden Ast
Standard

zu 2:
siehe: $db = @ mysql_connect ( DB_SERVER, DB_USER, DB_PASSWORD )
zu 3:
hinter jeder(!) sql-abfrage!
zu 4
<form action="sta_insert.php" method="post"> -> anführungszeichen!
zu 5:
also in der db_connect.inc/db_connect.inc.php?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 25-02-2008, 22:39
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu 2:
siehe: $db = @ mysql_connect ( DB_SERVER, DB_USER, DB_PASSWORD )
zu 3:
hinter jeder(!) sql-abfrage!
zu 4
<form action="sta_insert.php" method="post"> -> anführungszeichen!
zu 5:
also in der db_connect.inc/db_connect.inc.php?

Hallo Peter,

zu 2
die db_connect habe ich irgendwo herkopiert und bislang die @-zeichen anscheinend ignoriert. habe sie jetzt entfernt.
zu 4
diese zeile hat ein formgenerator erzeugt und habe jetzt die anführungszeichen eingefügt.
dann erscheint folgender error
Parse error: parse error, unexpected T_STRING in /var/www/web9/html/_test/wo_start.php on line 677
zu 5
als startfile meinte ich die file mit welcher aus dem menu heraus das script gestartet wird. zuerst habe ich direkt in dieser definiert, inzwischen ist die definition in einer include. also nicht im db_connect.inc.php
mein aufruf lautet:
include ("k_para.inc.php")
include ("db_connect.inc.php")

der konstantenfehler ist immer noch vorhanden
Warning: mysql_query(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/
und
Warning: mysql_query(): A link to the server could not be established in /var/

gruß
wilhelm
__________________
wiriwa
Mit Zitat antworten
  #8 (permalink)  
Alt 25-02-2008, 22:58
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wäre irgendwie Sinnvoll z.b. bei 4. den Code zu sehen (nur reletanten Code::672-683)

Wäre generell sinnvoller auch z.b. ein query zu zeigen und zu zeigen, wo du alles inkludest..

mfg
Mit Zitat antworten
  #9 (permalink)  
Alt 25-02-2008, 23:27
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo blackgreez,
die zeilen 672 -683
</script>




<form action=stamm_ein.php method=post>

<input type=hidden name=ToMail value=wo@elektro-smile.de>
<DIV ID=EL1 style=\"position:absolute; left:4px;top:1059px;z-index:1\">
<input class=PS_4 type=Submit value=Senden onclick=\"return check_form()\">
</DIV>
<DIV ID=EL2 style=\"position:absolute; left:129px;top:1059px;z-index:2\">
<input class=PC_4 type=Reset value=Reset>
</DIV>

meine startfile


include ("k_def.inc.php" ) ;
include ("db_connect.inc.php") ;
include ("anz_para_def.inc.php") ;
include ("bas_anz.inc.php") ;
ich werde diese includefiles später in einem includeordner unterbringen zum test sind alle noch in einer directory
mfg
wilhelm
__________________
wiriwa
Mit Zitat antworten
  #10 (permalink)  
Alt 25-02-2008, 23:48
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

[list=1][*]Du hast immer noch keine Anführungszeichen ergänzt wie Kropff es dir empfohlen hat.[*]Die geposteten Zeilen stammen ziemlich sicher aus einer anderen Datei.[/list=1]
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | [11000011101110110111011001011110011]
Mit Zitat antworten
  #11 (permalink)  
Alt 26-02-2008, 01:01
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo tontechniker,
wie ich in einer vorigen antwort geschrieben habe, ist nach einfügen der anführungszeichen folgender error erschienen

Parse error: parse error, unexpected T_STRING in /var/www/web9/html/_test/wo_start.php on line 677

aus diesem grunde habe ich sie wieder entfernt.

mfg
wilhelm
__________________
wiriwa
Mit Zitat antworten
  #12 (permalink)  
Alt 26-02-2008, 09:28
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Code:
<form action=\"stamm_ein.php\" method=\"post\">
oder
Code:
<form action='stamm_ein.php' method='post'>
Zitat:
Warning: mysql_query(): Access denied for user 'www-data'@'localhost' (using password: NO)
hast du dir mal die konstanten ausgeben lassen?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 26-02-2008, 11:37
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Peter,
bei dem form action habe ich definitiv die \ vergessen.
In der testphase gebe ich immer die variable aus.
wenn ich diese in einer include definiere wird vor dem ersten ansprechen das value auch ausgegeben. danach bekomme ich nur noch die bezeichnung. nun habe ich die konstante in der db_connect.inc.php definiert, das wollte ich eigentlich vermeiden, damit diese nicht bei jedem aufruf aufs neue definiert werden. Das funkt auch wieder nur einmal, obwohl nach dem INSERT INTO auch das value ausgegeben wird. Wenn ich jedoch bei diesem befehl die db in klarschrift stehen habe wird der datensatz angehängt. dies wollte ich jedoch nicht, denn dann muß ich bei jeder neuinstalltion in jedem schnipsel den dbnamen eingeben. da meine anwendung für unseren schützenverein ist und ich nicht ewig pressent bin habe ich auf konstant gesetzt.
grüße
wilhelm
__________________
wiriwa
Mit Zitat antworten
  #14 (permalink)  
Alt 26-02-2008, 11:46
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.307
Kropff befindet sich auf einem aufstrebenden Ast
Standard



poste noch mal die db_connect.php


gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #15 (permalink)  
Alt 26-02-2008, 12:11
wiriwa
 Newbie
Links : Onlinestatus : wiriwa ist offline
Registriert seit: Feb 2008
Ort: Germany
Beiträge: 15
wiriwa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

meine db_connect.inc.php
----------------------------------

<?php
/*
Connect zur Datenbank ---- PHP Skript

(c) 2008 by W. Rilling

stellt Connect zu Datenbank her */

define ('DB_NAME' , 'usr_xyz') ;
define ('DB_USER' , 'xyz_1);
define ('DB_SERVER' ,'localhost') ;
define ('DB_PASSWORD' , 'passwort' ) ;

$db = mysql_connect ( DB_SERVER, DB_USER, DB_PASSWORD )
or die ( 'Konnte keine Verbindung zur Datenbank herstellen' );

$db_check = mysql_select_db ( DB_NAME );

if ( $db )
{
echo 'Verbindung zur Datenbank wurde hergestellt';
}

?>

grüße
wilhelm
__________________
wiriwa
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

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

E-Mail-Coder Generator ansehen E-Mail-Coder Generator

E-Mail-Coder Generator, komplett in deutscher Sprache. Mit diesem Generator können Sie Ihre E-Mail-Adresse codieren und so gegenüber Spidern schützen.

23.05.2012 fullmedia | Kategorie: PHP/ Mail
EMO Realty Manager ansehen EMO Realty Manager

EMO Realty Manager is a complete realty listing management solution software. It is easily customized to reflect your creativity whether you are starting from scratch or integrating into an existing web site. EMO Realty Manager can be used to promote re

23.05.2012 myrephp | Kategorie: PHP/ Anzeigenmarkt
MatPo Image Hosting Script ansehen MatPo Image Hosting Script

Mit diesem PHP-Script (mini CMS) kann man .jpg, .gif und .png-Dateien auf den Server laden. Bildergröße beim Hochladen änderbar sowie eine Beschreibung zum Bild angegeben werden kann. Damit das Webspace nicht missbraucht werden kann gibt es jetzt auch

23.05.2012 MatPo | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:29 Uhr.