Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > PHP/MySQL

PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26887, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3321, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 299, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7635, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 19, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 54, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 144, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 69, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50939, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18.12.2007, 22:15   #1 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard php-tag innerhalb des <head>-Bereiches?

Hallo Leute
ich habe auf meiner Stufenpage (webspell umgeschrieben, siehe HP) ein kleines Schneescript eingebaut...der User soll nun aber, wenn er eingeloggt ist, in seinem Profil einstellen können, ob es schneien soll oder nicht...
Das Schnee-Script wird mit
Code:
<script src="js/snow.js" type="text/javascript"></script>
gestartet. Dieses muss in den Headbereich.
Im Profil-bearbeiten-Bereich wird nun mit einer select-Liste ausgewählt, ob es schneien soll oder nicht und das Ergebnis (1 = ja und 2 = nein) in die mysql-Datenbank für die entsprechende userID eingetragen. Nun hier meinen php-Code, wie er zw. <head> und </head> stehen müsste:
Code:
<?php
if (isclanmember($userID)) { 
	safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'");
	$snow = $ds[snow];
	if ($snow == "1") { echo "<script src=\"js/snow.js\" type=\"text/javascript\"></script>"; } else {
	}
else { echo "<script src=\"js/snow.js\" type=\"text/javascript\"></script>"; }
?>
So bekomm ich aber eine leere Seite angezeigt. Was mache ich falsch??? Kann ich keinen php-include in den head-Bereich einfügen?
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 19.12.2007, 01:42   #2 (Direktlink)
Dauergast
 
Registriert seit: 04.07.2004
Ort: Leipzig
Beiträge: 1.085
Standard

Ich glaube das Problem ist ein überzähliges else im php-Code, dadurch entsteht vermutlich eine php-Fehler wodurch der nachfolgende Quellcode nicht mehr angezeigt werden kann. Korrekter sähe es so aus:

Code:
<?php
if (isclanmember($userID)) {
   safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'");
   $snow = $ds[snow];
   if ($snow == "1") { ?><script src="js/snow.js" type="text/javascript"></script><? }
}
else { ?><script src="js/snow.js" type="text/javascript"></script><? } ?>
Zwirni ist offline   Mit Zitat antworten
Alt 19.12.2007, 11:06   #3 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

Hm zumindest wird die Seite mal angezeigt, danke
Das mit dem echo war wohl auch nicht so ne gute Idee...

allerdings schneits jetzt, wenn ich ausgeloggt bin, wenn ich eingeloggt bin, schneits nicht...auch wenn in der Datenbank "snow == 1" korrekt ist, also im Profil sozusagen soll es schneien? JA steht...

wenn ich schreibe $snow = "1" schneits auch im Profil...also irgendwie hängt das irgendwo

hat da jemand eine Idee???
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Alt 23.12.2007, 00:45   #4 (Direktlink)
War schon mal da
 
Benutzerbild von murray_de_luxe
 
Registriert seit: 19.02.2007
Beiträge: 38
Standard

Moin, also ich frag mich grade wiso du überhaupt nen Else Zweig benötigst und wo du $ds herholst aber ansonsten ist es schon eigentlich fast richtig, also rein logisch gesehen würd ich das dann so schreiben:

Code:
<?php 
if (isclanmember($userID)) { 
   safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'"); 
   if ($ds['snow'] == 1) {
?>
<script src="js/snow.js" type="text/javascript"></script>
<?php
   } 
}
?>
murray_de_luxe ist offline   Mit Zitat antworten
Alt 23.12.2007, 20:22   #5 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

ne, so schneits dann gar nicht mehr :P
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 23.12.2007, 20:55   #6 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 13.03.2006
Beiträge: 197
Standard

nimm mal das und sag mir mal was hinter "Debug:" steht wenn der user eingeloggt oder ausgeloggt ist... oder was da steht nachdem du die einstellungen vorgenommen hast...

Code:
if (isclanmember($userID)) { 
	safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'"); 
	$snow = $ds[snow];
	print_r("DEBUG: ".$snow);
	if ($snow == "1") {
		echo '<script src="js/snow.js" type="text/javascript"></script>';
	} else {
		echo '<script src="js/snow.js" type="text/javascript"></script>'; 
	}
}
Weil wie murray_de_luxe schon sagt ich kann mir auch nicht vorstellen das was in $ds[snow] steht...
Nordin ist offline   Mit Zitat antworten
Alt 23.12.2007, 22:32   #7 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

es schneit jetzt, egal ob JA oder NEIN angewählt...und hinter DEBUG: steht nix...weder eingeloggt/ausgeloggt oder Profil JA/NEIN
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Alt 23.12.2007, 23:08   #8 (Direktlink)
War schon mal da
 
Benutzerbild von murray_de_luxe
 
Registriert seit: 19.02.2007
Beiträge: 38
Standard

Zitat:
Zitat von K. R. Eyden
es schneit jetzt, egal ob JA oder NEIN angewählt...und hinter DEBUG: steht nix...weder eingeloggt/ausgeloggt oder Profil JA/NEIN
Hi genau darin liegt dein Problem,
das es jetzt immer schneit liegt daran das der ELSE - Zweig IMMER aktiv ist, da $ds["snow"] nicht belegt ist. Deshalb war ja auch meine Frage wo du die Arrayvariable herholst bzw. fillst?
Leider wird von uns keiner wissen was safe_query(parameter) zurückgibt.
Eine normale mysql_syntax wäre z.B .
Code:
<?php
$res = mysql_query("Select snow as issnow From.....blabla Where userid=blablalba");
$ds = mysql_fetch_row($res);
if($ds["issnow"] == 1){
?>
<script src="js/snow.js" type="text/javascript"></script>
<?
}
?>
aber wie gesagt bei dir wird $ds["snow"] nirgends in deinem hier gezeigten quell gefillt und ist somit immer leer. Das ist dein einziges Prob was du momentan daran hast und weswegen es nicht funktioniert.
Puhh ich hoffe das kam etwas verständlich rüber
murray_de_luxe ist offline   Mit Zitat antworten
Alt 23.12.2007, 23:12   #9 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 13.03.2006
Beiträge: 197
Standard

Das dacht ich mir!

Weil, Was soll das hier?
Code:
safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'"); 
$snow = $ds[snow];
Der grund das es immer schneit ist zum einen das $snow leer ist und somit auch $ds[snow]...

Was steht in "PREFIX" und woher kommt "$ds[snow]" ??

Damit wir dir helfen können brauchen wir mehr informationen.

Speicherst du schon ein JA/NEIN in die Datenbank??
Wenn nicht kann es ja auch nicht funktionieren
Wenn doch dann muss die mysql abfrage (SELECT) anders gestellt werden!

Hmm warte hab noch ne idee...

Mach mal aus den:
print_r("DEBUG: ".$snow);

ein:
print_r("DEBUG: ".$ds);

und schreibe hier mal alles was dann kommt!

Und probier dann gleichzeitig das:
$snow = $ds['snow'];

Nimm das Script hier... ist alles berücksichtigt was ich grad geschrieben hab:
Code:
if (isclanmember($userID)) { 
   safe_query("SELECT * FROM ".PREFIX."user WHERE userID='".$userID."'"); 
   $snow = $ds['snow']; 
   print_r("DEBUG: ".$ds); 
   if ($snow == "1") { 
      echo '<script src="js/snow.js" type="text/javascript"></script>'; 
   }
}
Wann soll es eigntlich schneien? Bei 1 oder 2 ich denke mal bei 1 darum hab ich das else weggenommen...
Nordin ist offline   Mit Zitat antworten
Alt 24.12.2007, 00:10   #10 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

hehe danke erst mal
also, wie gesagt, ist das ganze Gedöhns das von mir umgedichtete Webspell...und PREFIX ist der Tabellenpräfix, dieser ist in einer includeten _mysql.php mit webs_ definiert (also der Tabellenname ist webs_user)...
Der Leichtigkeit halber nun im Script ersetzt

allerdings hab ich wirklich in meinem Script vergessen, woher ich $ds beziehen will, habe das nun mit dem Script von murray_de_luxe erledigt...

JA/NEIN (1/2) speichere ich in die Spalte snow der Tabelle user...

@Nordin: deine Scripte liefern mir für DEBUG: keine Werte, also es steht für alle Optionen nichts hinter DEBUG:

Momentan sieht das Teil so aus: (allerdings schneits hier nur im ausgeloggten Modus^^)
Code:
<?php
if (isclanmember($userID)) {
   $res = safe_query("SELECT snow AS issnow FROM webs_user WHERE userID='".$userID."'");
   $ds = mysql_fetch_row($res);
   if ($ds[issnow] == "1") { ?><script src="js/snow.js" type="text/javascript"></script><? }
}
else { ?><script src="js/snow.js" type="text/javascript"></script><? } ?>
schneien soll es übrigens bei 1 (also JA)...
ich habe auch das Ergebnis in PhpMyAdmin überprüft, es wird korrekt 1 für JA oder 2 für NEIN in die Spalte snow eingetragen
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 24.12.2007, 00:34   #11 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 13.03.2006
Beiträge: 197
Standard

Na das sieht doch schon ganz anders aus! jetzt erklärt sich auch woher das $ds kommt

Probier das... wenn es geht mach print_r() weg.. wenn nicht sag mir was raus kommt.

So sollte es aber gehen.

Code:
if (isclanmember($userID)) { 
	$res = safe_query("SELECT snow AS issnow FROM webs_user WHERE userID='".$userID."'"); 
	$ds = mysql_fetch_row($res);
	print_r($ds['issnow']);
	if ($ds['issnow'] == "1") {
		echo '<script src="js/snow.js" type="text/javascript"></script>';
	}
} else {
	echo '<script src="js/snow.js" type="text/javascript"></script>';
}
Nordin ist offline   Mit Zitat antworten
Alt 24.12.2007, 01:25   #12 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

ne tut sich nix...also es schneit, wenn man ausgeloggt ist, im eingeloggten Modus aber nicht, egal ob JA oder NEIN

bei DEBUG steht nix (hab das DEBUG nochma vorne dran gemacht), auch nix im Quelltext...

*stöhn* bis das Ding geht, is Sommer, da brauch ich den Schnee nimma

es funktioniert ja eigentlich alles optimal, ich vermute einfach, dass meine Datenbankausgabe inkorrekt ist und der Vergleich damit falsch ist, folglich kein Schnee im eingeloggten Modus...

aber wie gesagt, eingetragen wird richtig und den Script seht ihr ja...

/edit:
hab mal folgendes probiert:
Code:
$res = safe_query("SELECT * FROM webs_user");
$ds = mysql_fetch_row($res);
if(isclanmember($ds[userID])) {
   $res = safe_query("SELECT snow FROM webs_user WHERE userID='".$userID."'");
   $ds = mysql_fetch_row($res);
   $snow = $ds[snow];
   if ($snow == "1") { 
   echo '<script src="js/snow.js" type="text/javascript"></script>';
   }
} else { echo '<script src="js/snow.js" type="text/javascript"></script>'; }
es schneit jetzt, wenn man ausgeloggt ist UND wenn man eingeloggt ist...aber egal ob JA oder NEIN
fehlt es da nicht vllt doch noch an einem else-Ast, der sagt, was getan werden soll, falls der Vergleich nicht stimmt?
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Alt 24.12.2007, 02:14   #13 (Direktlink)
Weiß worum´s geht
 
Registriert seit: 13.03.2006
Beiträge: 197
Standard

solange wie "$ds[snow];" leer bleibt stimmt die abfrage zur datenbank nicht...

Poste mal die Sql-Ausgabe die kommt wenn du eine SELECT-anfrage in phpMyAdmin machst. Denn wenn dort ein ergebniss kommt ob 1 oder 2 dann kann ich vielleicht so aus der ferne die abfrage richtig machen.
Nordin ist offline   Mit Zitat antworten
Alt 24.12.2007, 10:54   #14 (Direktlink)
Stammuser
 
Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
Standard

Code:
$sql = 'SELECT COUNT( * ) AS `Zeilen` , `snow` FROM `webs_user` GROUP BY `snow` ORDER BY `snow` LIMIT 0, 30 ';
Ich versteh nicht, was an meiner obigen Abfrage falsch ist...ich hab noch mehr so Sachen gemacht, wo man mit einem Dropdownmenü Sachen auswählen kann, die dann eingetragen werden für den entsprechenden User und im Profil so wiedergegeben werden...und die funktionieren alle mit diesem Aufbau...
Hat es vllt damit was zu tun, dass sich das ganze Teil nicht innerhalb der <body>-Tags befindet?
__________________
mFg
K. R. Eyden
K. R. Eyden ist offline   Mit Zitat antworten
Alt 01.01.2008, 14:12   #15 (Direktlink)
War schon mal da
 
Benutzerbild von murray_de_luxe
 
Registriert seit: 19.02.2007
Beiträge: 38
Standard

moin und frohes neues erstmal.
Auch wenns nu bestimmt schon zu spät ist, aber ich vermute das deine funktion safe_query() woher die auch immer kommen mag einfach nichts zurückgibt und von daher deine SQL Abfrage zwar evtl. ausgeführt wird, aber keine Möglichkeit der Auswertung mittels return erfolgt.
Von daher falls es noch für dich von interesse sein sollte poste hier doch mal endlich diese blöde Funktion, damit wir sehen können WAS da überhaupt abläuft. Weil wenn eine Rückgabe erfolgen sollte, dann ist das von Dir mittels meinen Daten geänderte Script funktional und syntaktisch korrekt.
Diese hier! Habe mal Comments gesetzt damit du mal da durchsiehst.
Code:
<?php 
//wenn gültiges Clanmember -> prüft anhand der userid
if(isclanmember($userID)) { 
//führe safe_query aus und erhalte deren Rückgabestreamressource "INSOFERN VORHANDEN!!"
   $res = safe_query("SELECT snow AS issnow FROM webs_user WHERE userID='".$userID."'");
//übergebe Rückdabewert der Abfragezeile
$ds = mysql_fetch_row($res); 
//wenn Rückgabewert der Spalte snow des users den wert 1 hat lass es schneien, ansonsten eben nix schnee
if($ds["issnow"] == 1){ 
?> 
<script src="js/snow.js" type="text/javascript"></script> 
<? 
} 
}
?>
ps.: Übrigens Javascript gehören bis auf wenige ausnahmen generell in den <head> </head> Bereich. So wie es auch bei diesem Script ist!
murray_de_luxe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > PHP/MySQL

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen 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




Alle Zeitangaben in WEZ +2. Es ist jetzt 02:53 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2