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 25-02-2008, 21: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 12:18 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 25-02-2008, 21:47
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
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, 22: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 | []
Mit Zitat antworten
  #4 (permalink)  
Alt 25-02-2008, 22:21
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
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, 22: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, 22:40
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
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, 23: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, 23: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 26-02-2008, 00: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 26-02-2008, 00: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 | []
Mit Zitat antworten
  #11 (permalink)  
Alt 26-02-2008, 02: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, 10:28
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
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, 12: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, 12:46
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
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, 13: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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:41 Uhr.