• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variablen übergabe

Status
Für weitere Antworten geschlossen.

BigSanch

Neues Mitglied
Hallo

Als erstes ich bin ein Anfänger :-) also bitte Verständnis!

Ich bin am rumbasteln an einem User script mit login Daten und und und.
Funtz soweit auch wunderbar. Ich möchte auch auf der Memberliste, Onlinestaten von einigen Messengern haben, hab ich auch gefunden.
Mein problem ist folgendes:

So funtz es:
PHP:
while($sql1 = mysql_fetch_array($result1)) {
print $sql1["username"];
print "<br />";
print "<a href=\"http://osi/message/msn/msnid\">
//natürlich anstatt osi & msnid mit den entsprechenden Daten
Da es aber ja alle Datensätze ausliestund listet, und da es sinnlos ist, bei jedem User die msnid einzutragen, habe ich diese auch in der Datenbank.

Mein Versuch funtz aber nicht, er gibt zwar den Inhalt der Datenbank aus (also als lesbarer Link steht dann acuh die jeweilige msnid) aber die Abfrage über den OSI funtz dadurch nicht mehr:
PHP:
while($sql1 = mysql_fetch_array($result1)) {
print $sql1["username"];
print "<br />";
print "<a href=\"http://osi/message/msn/"; print $sql1["msnid"]; print "\">
Kann mir da jemand helfen, wie ich das in den Griff bekomme

Danke schon mal für alle Antworten

MfG BigSanch
 
Worum gehts überhaupt?
Was ist OSI?
Warum ist Dein Link nicht geschlossen?
Was willst Du überhaupt erreichen?
Wieso sprichst Du von Eintragen einer ID, obwohl Du doch Daten aus der DB ausliest?
Ich habs jetzt viermal durchgelesen und komme nicht drauf, was Du uns mitteilen willst :-)
 
ok sorry 2. Versuch :-)

Ich habe in einer Datenbank eine Userliste mit username, email, icq,..... .

Wie oben aufgeführt, lasse ich dies per PHP in meine Seite einbinden, sodass ich eine UserSeite habe (eine Auflistung von allen Usern, Membern ...).
Die Seite funktioniert auch, es werden alle User angezeigt. Nun möchte ich (zb neben dem User namen) einen Messenger Online Status (OSI=Online Status Indicator) von allen dem User entsprechenden Messengern haben.
Das klappt soweit auch, wenn man den Link direkt aufruft:

PHP:
while($sql1 = mysql_fetch_array($result1)) {
print $sql1["username"];
print "<br />";
print "<a href=\"http://osi/message/msn/msnid\">
//natürlich anstatt osi & msnid mit den entsprechenden Daten  
....
....
Der Link ist geschlossen habe hier ja nur nen Auszug, um den es geht! Sonst wäre das zu viel! :-)

Wenn ich das wie hier eingebe dann funktioniert das auch!
Aber dann müsste ich von Hand für jeden Benutzer stat (wie oben) msnid die eigentliche Id eingeben, das ist doof bei vielen Usern, also wollte ich das so regeln, dass ich den Link so verändere, dass statt der msnid der Befehl zum Auslesen der Id aus der Datenbank steht:

PHP:
while($sql1 = mysql_fetch_array($result1)) {
print $sql1["username"];
print "<br />";
print "<a href=\"http://osi/message/msn/"; print $sql1["username"]; print "\">
//natürlich anstatt osi & msnid mit den entsprechenden Daten  
....
....
Wenn ich das aber so mache, dann funktioniert die Abfrage an den Online Indicator nicht, er zeigt als reine Textlink Ausgabe zwar die korrekte Id, aber die Abfrage geht nicht, die geht nur wenn ich die Id direkt eingebe.

Ich hoffe jetzt habt Ihr verstanden was ich meine, wenn nicht, dann sende ich nachher mal den gesamten code

Danke:-)
MfG BigSanch
 
Ich würd das zwar mit einer Print-Anweisung machen, nicht mit mehreren, aber da Du kein Newline angegeben hast, sollte das eigentlich passen.
Schau Dir doch in der Statusleiste Deines Browsers (oder nach dem Klick in der Adresszeile) an, wie der Link aussieht, den er versucht aufzurufen.

Und dann wäre noch zu klären, wie der Fehler ist. "funktioniert nicht" ist keine Fehlerbeschreibung.

Bei Deiner letzten print-Anweisung fehlt das schließende Anführungszeichen, aber das hast Du wahrscheinlich auch nicht mit hingeschrieben, weils sonst zu viel wäre?
 
Danke :-)

Ähhm:
Und dann wäre noch zu klären, wie der Fehler ist. "funktioniert nicht" ist keine Fehlerbeschreibung.
Tja sprachlos :-) keine Ahnung es zeigt keine Fehler an, wenn man ladet ladet er richtig der Link, wenn man mit der Maus drüber geht, steht auch der Link komplett mit der Übergebenen Variable (msnid) da.
Es scheint die Weiterleitung zu sein. Es funtzt so: Es wird mit dem Link der OSI :-) aufgerufen und mit der msnid verglichen und dann ausgegeben ob der User online ist oder nicht. Wenn ich aber in dem Link, die Varible - Variante verwende scheint die Weiterleitung oder die Prüfung des OSI nicht zu funktionieren.

ch würd das zwar mit einer Print-Anweisung machen, nicht mit mehreren
Währe ne Möglichkeit danke :-) hab das eigendlich auch, nur zum Testen ob das einen unterschied macht habe ich das so gelöst, da ich nicht weiß woran es liegt
 
Es scheint die Weiterleitung zu sein.
Wo ist denn da ne Weiterleitung? Ist doch ein normaler Link.

Wenn ich aber in dem Link, die Varible - Variante verwende scheint die Weiterleitung oder die Prüfung des OSI nicht zu funktionieren.
Daran kanns nicht liegen, denn das ist ja PHP, das wird auf dem Server ausgeführt. Dort, wo der User den Link anklickt, im Client, ist PHP schon lange vorher gelaufen. Es muss ein Unterschied dabei sein, wenn es unterschiedlich reagiert.

Kannst Du das nicht mal online stellen?
 
Hi Sorry hatte die letzten tag viel mit den Vorbereitungen zu ner Weihnachtsfeier in unserem Betrieb zu tun.

Ich habs immer noch nicht hin bekommen. Ok hier ist der Code:
PHP:
<?
$esl = "<a href=\"http://www.esl.eu/player/";
$eslend = "/\"  onclick=\"url(this.href); return false\"><img src=\"pics/logo/logo_esl2.png\" height=\"15px\" /></a>";

$icq = "<a href=\"http://wwp.icq.com/scripts/search.dll?to=";
$icqmid = "\"  onclick=\"url(this.href); return false\"><img src=\"http://status.icq.com/online.gif?icq=";
$icqend = "&amp;img=5\"></a>";

$xfire = "<a href=\"http://profile.xfire.com/";
$xfiremid = "\"  onclick=\"url(this.href); return false\"><img src=\"http://miniprofile.xfire.com/bg/sh/type/4/";
$xfireend = ".gif\" width=\"15\" height=\"15\" /></a>";

$msn = "<a href=\"http://technoserv.no-ip.org:8080/message/msn/";
$msnmid = "\"  onclick=\"url(this.href); return false\"><img src=\"http://technoserv.no-ip.org:8080/msn/";
$msnend = "/onurl=pics/mess/msn_on.png/offurl=pics/mess/msn_of.png/unknownurl=pics/mess/msn_un.png\" alt=\"\" onerror=\"this.onerror=null;this.src='pics/mess/msn_un.png';\" /></a>";


include("inc/db/db_users.php");

echo"
<fieldset><legend><img alt=\"\" src=\"pics/labels/admin.png\" /></legend>
<table>";
    while($sql1 = mysql_fetch_array($result1))
        {
        $id = $sql1["id"];
        $n = mysql_num_rows($result1);
        print "<tr>";
        print "<td width=\"60%\"><a href=\"index.php?datei=details&amp;user=$id\"><img alt=\"\" src=\"pics/namen/".$sql1["username"].".png\" width=\"140px\" /></a></td>";
        print "<td><a href=\"index.php?datei=details&amp;user=$id\"><img alt=\"Details\" src=\"pics/mess/home.png\" height=\"15px\" width=\"15px\" /></a></td>";
        print "<td><a href=\"mailto:".$sql1["email"]."\"><img alt=\"Email\" src=\"pics/mess/email.png\" height=\"15px\" width=\"15px\" /></a></td>";
        print "<td>$icq".$sql1["icq"]."$icqmid".$sql1["icq"]."$icqend</td>";
        print "<td>$msn".$sql1["msn"]."$msnmid".$sql1["msn"]."$msnend</td>";
        print "<td>$xfire".$sql1["xfire"]."$xfiremid".$sql1["xfire"]."$xfireend</td>";
        if ($sql1["esl"]==""){} else {
            print "<td>$esl".$sql1["esl"]."$eslend</td>";
        }
        print "</tr>";
    } echo"
</table></fieldset>
"; ?>
Folgende Zeile funktioniert nich:

PHP:
print "<td>$msn".$sql1["msn"]."$msnmid".$sql1["msn"]."$msnend</td>";
Wenn ich das wie folgt schreibe gehts:
([email protected], ist die jeweilige msnid)

PHP:
print "<td>[email protected][email protected]$msnend</td>";
Ich weiss nicht in bin zwar ein Noob im Scripten, aber habe bis jetzt alles hinbekommen, wenn man sich net blöd anstellt ist das auch nicht so schwer, aber das Problem versteh ich nicht.

Ich werde wahrscheinlich einfach diese Sachen raus nehmen, würde aber trotzdem wissen warum das net geht und hoffe auf ne Lösung
Danke für Eure Hilfe und Antworten
 
Ich würde PHP als Template-Engine benutzen und dur die PHP-Anweisungen in <?php ?> stecken, das ist übersichtlicher.
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben