Login  Regeln Aktuelles Datum und Uhrzeit: 05.12.2008, 17:46  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Verwirrende Zeichensetzungen im PHP-Script

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Einsteigerforum
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
Kristallprinz
Neuer [User]
Neuer



Anmeldung: 03.10.08
Beiträge: 5
Wohnort: Rees

BeitragVerfasst am: 03.10.2008, 04:09    Titel: Verwirrende Zeichensetzungen im PHP-Script Antworten mit Zitat

Hallo, als sogenannter Neuling fummel ich grad selber an einem Paidmail-Script und so hundertprozentig hab ich hier keine Antwort gefunden.

Das heißt ich hab`s gekauft und es funktioniert nicht richtig.Da ich zwar Hilfe des Verkäufers bekomme, nur allerdings meldet sich der Ersteller des Scripts nicht, komme ich nicht weiter.

Jetzt versuch ich mich selbst dran und hätt erstmal was geklärt:

$db = mysql_connect("$dbhost","$mysqlusername","$mysqlkennwort");

Die Bedeutungen sind schon klar, nur verwirrt es das dieser Satz in mehreren PHP-Seiten unterschiedlich geschrieben ist! Mal sind die Begriffe wie oben in der Klammerung mit Anführungszeichen - mal ohne oder nicht alle mit/ohne Zeichen geschrieben worden.
Was ist jetzt richtig?

Auch steht statt $dbhost manchmal localhost im Satz, auch mal mit - mal ohne die Anführungszeichen. Da das Script bei mir auf einem Server liegt, ist mir schon gesagt worden es auf localhost einzurichten - nur halt hier wieder die Frage wegen den Anführungszeichen?
Und die Bezeichnung $db wird auch wechselweise vorangestellt - sprich der obige Satz taucht mal mit - mal ohne $db auf. Wobei in zwei oder drei PHP-Dateien am Ende der Seite auch

mysql_close($db)

eingetragen ist. Hat aber keine Zuweisung in der config.php bzw. ist dort überhaupt nicht aufgeführt.
Was hat es denn damit auf sich?

Gruß Thomas


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
JFM
Beliebter [User]
Beliebter



Anmeldung: 25.09.05
Beiträge: 425
Wohnort: Gütersloh

BeitragVerfasst am: 03.10.2008, 10:43    Titel: Antworten mit Zitat

Wenn der ganze Befehl in einer Variable gespeichert wird, währe es möglich diesen Befehl an einer anderen Stelle im Script erneut auszuführen.
In deinem Fall um die Verbindung wieder zu beenden
Code:
mysql_close($db);


Spart schreibarbeit.

Die Anführungszeichen sind glaube ich irrelevant. Richtig ist es aber mE. mit.

_________________
http://www.onestripe.de


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Kristallprinz
Neuer [User]
Neuer



Anmeldung: 03.10.08
Beiträge: 5
Wohnort: Rees

BeitragVerfasst am: 03.10.2008, 14:22    Titel: Antworten mit Zitat

Also erstmal Danke JFM,

also hab ich das so zu verstehen das nach jedem öffnen der DB der Schließungscode am Ende stehen muss?!
Aber immer noch nicht warum mal mit "$db=mysql..." am Anfang mal ohne "mysql..." der Satz geschrieben steht! Wobei beim letzteren sich die Frage stellt ob der DB Schließungscode wieder eingetragen wird?
Weiter auch warum in der config.php keine Zuweisung aufgeführt ist? Sprich dort stehen ja alle Zuweisungen für $dbname $dbuser usw. aber nicht für $db!!


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
JFM
Beliebter [User]
Beliebter



Anmeldung: 25.09.05
Beiträge: 425
Wohnort: Gütersloh

BeitragVerfasst am: 03.10.2008, 14:37    Titel: Antworten mit Zitat

Code:
$db = mysql_connect("$dbhost","$mysqlusername","$mysqlkennwort");


Das sagt ja nichts anderes aus, als das in der Variable $db der gesamte code zum Aufbau einer Verbindung zur DB erzeugt wird. Der Code selber wird an der stelle allerdings noch nicht ausgeführt.

Später wird dieser Code dann in die mysql_close() eingefügt.

Die config.php wird bei dem Script wohl alle Variablen enthalten die häufiger/in mehreren .php-Dateien gebraucht werden. Damit kann man diese dann leichter ändern, zB. wenn das Script auf einerm anderen Server angewendet werden soll oder einfach nur eine andere Datenbank verwendet wird.
Theoretisch kann man diese Variablen auch alle direkt in jeder .php-Datei setzen. Dann hätte man halt nur viel Aufwand beim ändern, wenn einer der oben genannten Fälle eintreten sollte.

Zitat:
Aber immer noch nicht warum mal mit "$db=mysql..." am Anfang mal ohne "mysql..." der Satz geschrieben steht!
Da verstehe ich jetzt nicht so genau worauf du hinaus willst. [/code]
_________________
http://www.onestripe.de


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Kristallprinz
Neuer [User]
Neuer



Anmeldung: 03.10.08
Beiträge: 5
Wohnort: Rees

BeitragVerfasst am: 03.10.2008, 20:56    Titel: Antworten mit Zitat

Also mal dann etwas genauer.
(Lassen wir mal außer acht ob nun $dbhost oder localhost.)
Zum einen ist der Code in den meisten Dateien so eingeschrieben:

mysql_connect("$dbhost","$mysqlusername","$mysqlkennwort");

und in - glaub ca.5 - Dateien so:

$db = mysql_connect("$dbhost","$mysqlusername","$mysqlkennwort");

wobei nicht alle - nur 2 o. 3 - den Schließungscode

mysql_close($db)

am Ende haben.

Na schauen wa mal - teste jetzt mal alle drei Varianten der PHP-Dateien.


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1320
Wohnort: Ostfildern ...

BeitragVerfasst am: 03.10.2008, 21:08    Titel: Antworten mit Zitat

Die gehen alle.

Beim ersten besteht dann nur nicht mehr die möglichkeit, die Datenbank mit mysql_close($db);
die DB wieder zu schließen.

beim zweiten schon, und wenn dann mysql_close($db); da steht, dann wird sie sogar wieder geschlossen.

Am anfang ist es EIGENTLICH egal was du nimmst, aber wenn du mehr User auf der Seite hast, ist es besser die DB immer zu schließen, sonst braucht der Zugriff darauf länger.

_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
dein_opi
Beliebter [User]
Beliebter



Anmeldung: 07.11.04
Beiträge: 428
Wohnort: Göttingen

BeitragVerfasst am: 04.10.2008, 13:59    Titel: Antworten mit Zitat

wenn du die verbindung einer variablen zuweist, kannst du nacher bei einer sql abfrage angeben WELCHE datenbank verbindung vewendet werden soll (du kannst ja neben eigenem sql server auch "fremde" bzw. von anderen domains abfragen soweit du die zugänge kennst)

somit stellst du pro dokument manchmal mehrere datenbankverbindungen her und gibst an welche verbindung für welche abfrage verwendet werden soll

_________________
News Script Rezepte CMS Counter


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Kristallprinz
Neuer [User]
Neuer



Anmeldung: 03.10.08
Beiträge: 5
Wohnort: Rees

BeitragVerfasst am: 08.10.2008, 05:50    Titel: Antworten mit Zitat

Frage Frage Frage
Erstmal Danke für die Antworten - aber nachdem ich jetzt alle PHP-Dateien durchgesehen habe, kommt wieder was das etwas unverständlich ist!!

Habe den Code der auf die Datenbank zugreift nun in vielen Varianten gefunden:

$db = mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error();

mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error());

@mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
@mysql_select_db($dbname,$db) or die(mysql_error());


Wobei ich hier um abzukürzen, die anderen Varianten durch die farblich gekennzeichneten Textstellen markiere. Einfach mal diese weglassen in allen Variationen, dann wißt ihr was ich meine - mal fehlt der grüne,mal der rote oder alle beide Teile usw.

Aber dann sind da noch zwei ganz andere:

$db = mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error();
echo mysql_error();

mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
echo mysql_error();
<--??

Nun stellt sich mir die Frage: Was ist jetzt korrekt??
Und: Wofür ist das @ - Zeichen??
Habe dieses auch öfter vor anderen Worten gefunden - z.B @$res

Denke ja auch mal das der Code für den DB-Zugriff in allen PHP-Dateien gleich lauten sollte - oder?


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
dein_opi
Beliebter [User]
Beliebter



Anmeldung: 07.11.04
Beiträge: 428
Wohnort: Göttingen

BeitragVerfasst am: 08.10.2008, 06:31    Titel: Antworten mit Zitat

alle 3 von dir genannten db verbindungen sind richtig..

1) die verbindung wird einer variablen zugeordnet
2) die verbindung wird KEINER variablen zugeordnet
3) die verbindung wird KEINER variablen zugeordnet, durch das @ davor vermeidet man die fehlerausgabe wenn es mit der verbindung mal nicht klappen sollte..

echo mysql_error(); => zeigt den sql fehler an
or die(mysql_error()); => bricht das script an wenn die verbindung nicht geklappt hat und zeigt die sql fehler meldung..

_________________
News Script Rezepte CMS Counter


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Melzebub
Helfer [User]
Helfer



Anmeldung: 15.02.08
Beiträge: 109

BeitragVerfasst am: 08.10.2008, 07:44    Titel: Antworten mit Zitat

also foren sind ja schön und gut, aber in dieserr hinsicht geht es allmählich in tutorial richtung.
befor das hier ewig andauert ob mit oder ohne anführungszeichen und wofür ein @ steht, schau doch einfach mal hier rein
http://www.selfphp.de/

thx

_________________
wer einen Hammer halten kann,
ist nicht unbedingt ein guter Handwerker!
digitalmedia4u-webdesign-animation-illustration


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kristallprinz
Neuer [User]
Neuer



Anmeldung: 03.10.08
Beiträge: 5
Wohnort: Rees

BeitragVerfasst am: 08.10.2008, 17:13    Titel: Antworten mit Zitat

Dank für die Antworten!
Aber so ne Lösung für mich hab ich nicht bekommen.

Da man mir beigebracht hat alles einheitlich zu gestalten, suchte ich eigentlich eine einheitliche Lösung. Was auch der link von Melzebub nicht lösen konnte!

Also werde ich jetzt den Code in allen PHP-Dateien für mich einheitlich gestalten und zwar so:

$db = mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error();


und am Ende der Dateien

mysql_close($db).

Dann bekomme ich nach Euren Ausführungen zumindest immer SQL-Fehler angezeigt und kann diese korregieren!
Wobei ich noch testen muss ob ich die DB jedesmal schließe, wenn der Code mehrfach in einer Datei steht oder ich ihn nur am Ende der Datei schließen lasse.
Werde das Script dann mal so testen.

Werde mir aber dann dieser Tage mal den Tipp von Melzebub zu Gemüte führen.

Thx


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
benjam4
Bekannter [Mod]
Bekannter



Anmeldung: 17.05.06
Beiträge: 1320
Wohnort: Ostfildern ...

BeitragVerfasst am: 08.10.2008, 20:44    Titel: Antworten mit Zitat

Es reicht, wenn du am anfang die DB öffnest, und am ende der Datei sie wieder schließt.

Mehrmals ist nicht nötig.

_________________
Rechtschreibfehler sind beabsichtigt, sie dienen der Verschleiherung meiner tatsächlichen Genialität Smilie
____________________________________
Eine Signatur sie alle zu knechten


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
800XE
Bekannter [Mod]
Bekannter



Anmeldung: 24.10.04
Beiträge: 1410
Wohnort: Speyer

BeitragVerfasst am: 09.10.2008, 07:11    Titel: Antworten mit Zitat

sorry, aber kauf dir ein Büchlein
http://www.knowware.de/?cat=3.3&book=php_mysql

Kristallprinz hat folgendes geschrieben:
Also werde ich jetzt den Code in allen PHP-Dateien für mich einheitlich gestalten und zwar so:

$db = mysql_connect("localhost","$mysqlusername","$mysqlkennwort") or die(mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error();


und das ist falsch
denn nicht überall heist es "localhost"

Code:

$_CMS800sql['counter']='1';
$_CMS800sql['line'][1]='0';
$_CMS800sql['host'][1]='mysql.goneo.de';
$_CMS800sql['base'][1]='6987698m7698686_1;
$_CMS800sql['name'][1]='#CheGuide';
$_CMS800sql['user'][1]='6987698m7698686_1';
$_CMS800sql['pass'][1]='geheimesPassWort';



Code:

$_CMS800sql['counter']='3';
$_CMS800sql['line'][1]='0';
$_CMS800sql['host'][1]='localhost';
$_CMS800sql['base'][1]='usr_web123_1';
$_CMS800sql['name'][1]='#CSVAndy';
$_CMS800sql['user'][1]='web123';
$_CMS800sql['pass'][1]='geheimesPassWort';

$_CMS800sql['line'][2]='0';
$_CMS800sql['host'][2]='localhost';
$_CMS800sql['base'][2]='usr_web123_2';
$_CMS800sql['name'][2]='#7b3';
$_CMS800sql['user'][2]='web123';
$_CMS800sql['pass'][2]='geheimesPassWort';

$_CMS800sql['line'][3]='0';
$_CMS800sql['host'][3]='localhost';
$_CMS800sql['base'][3]='usr_web123_3';
$_CMS800sql['name'][3]='#AndyZmuda';
$_CMS800sql['user'][3]='web123';
$_CMS800sql['pass'][3]='geheimesPassWort';


Code:

$db=CMS800sql('open',$sql=2,$base='');



Code:

function CMS800sql( $do,      // action = open or close
                    $sql,     // DBnummer
                    $base=''  // DBname
                    )
{ global $_CMS800sql;
  if ( $base )
  {
    $sql=$i=0;
    while( !$sql && $i++<$_CMS800sql['counter'] )
    {
      if ( !strcmp($base,$_CMS800sql['base'][$i]) ) $sql=$i;
    }
  }
  if ( !$_CMS800sql['line'][$sql] )
  {
    $_CMS800sql['line'][$sql]
    = mysql_connect($_CMS800sql['host'][$sql],
                    $_CMS800sql['user'][$sql],
                    $_CMS800sql['pass'][$sql]) or die("Keine Verbindung möglich: " . mysql_error());
  } mysql_select_db($_CMS800sql['base'][$sql]) or die("Auswahl der Datenbank fehlgeschlagen");
  return($_CMS800sql['line'][$sql]);
}

_________________
Seien wir realistisch, versuchen wir das Unmögliche!
CMS800 :::::::::: Andy 800XE Zmuda :::::::::
ich bin nicht unhöflich, ich bin binär


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge PHP Script Bilder Upload umschreiben?! LizzardX Einsteigerforum 0 03.12.2008, 22:57 Letzten Beitrag anzeigen
Keine neuen Beiträge Mein File Upload-Script - Funktionier... nicogames Serverseitige Websprachen 0 10.11.2008, 18:05 Letzten Beitrag anzeigen
Keine neuen Beiträge Script umschreiben eforium Einsteigerforum 3 04.11.2008, 22:13 Letzten Beitrag anzeigen
Keine neuen Beiträge Design-Implementierung in Script Panikplunder Kleinanzeigen 0 27.10.2008, 12:43 Letzten Beitrag anzeigen
Keine neuen Beiträge PHP Script DIREKT in die Homepage ein... christianho Serverseitige Websprachen 1 21.10.2008, 21:17 Letzten Beitrag anzeigen
Threadübersicht