Frage von RaceShafter, 49

Wie binde ich Javascript in PHP ein?

Ich möchte einen 4 zeiligen Javascript Code in PHP einbinden. Erst, wenn man sich eingeloggt hat, dann soll man den Chat sehen. Dieser wird via Javascript laufend aktualisiert. Bei einer Zeile kann man ja alles via Echo schreiben. Aber bei 4? Hintereinanderklatschen kann ich den Code nicht, dann kommt ein Fehler.

Antwort
von fluffiknuffi, 6

Du könntest das Problem auch umgehen indem du den JS-Code in eine Datei schreibt, diese mit PHP lädst und ihren Inhalt ausgibst.

Bsp:

<?php
  $text = file_get_contents('chat_snippet.js');
  echo $text;
  ... // usw.
Antwort
von RakonDark, 21

 klar kannst du den hintereinander klatschen , php sendet einfach nur text .

Allerdings musst du dann warscheinlich die Anführungszeichen Escapen .

oder du machst eine andere notation


echo <<ENDE
/*meine Scripte */
var a=10+" Lauf";
document.writeln(a);
ENDE;



oder auch in variablen (was ich besser finde und am ende ausgeben




$ausgabe =<<ENDE
/*meine Scripte */
var a=10+" Lauf";
document.writeln(a);
ENDE;

echo $ausgabe;



aber auch

mit escape (das kann man mal googeln um zu wissen was es heisst )


echo "
/*meine Scripte */
var a=10+\" Lauf\";
document.writeln(a);
";


sollte funktionieren .



Kommentar von RaceShafter ,

Ok, danke. Aber was meinst du mit escapen?

Kommentar von RakonDark ,

das sagt dir google , etwas motivation bitte . bzw grundlagen training .

Kommentar von RaceShafter ,

Ok danke ^^

Kommentar von RakonDark ,


kleiner aber wichtiger fehler :

ich hab ein < vergessen  es muss also <<< sein und nicht <<,

siehe


Heredoc oder Nowdoc



http://php.net/manual/de/language.types.string.php ;

da wird auch erklärt was escapen ist etc



Antwort
von triopasi, 32

"Hintereinanderklatschen kann ich den Code nicht, dann kommt ein Fehler."

Dann ist sowieso was falsch. Kannst aber auch Dinge wie

echo "hallo

ich 

bins.";


machen. Das geht auch. Ist denn ggf. alles escaped?

Kommentar von RaceShafter ,

Was meinst du mit escaped? Nein, der Code funktioniert perfekt. Erst nach dem Hintereinanderklatschen wollte er nicht mehr.

Kommentar von triopasi ,

echo "Mein Name ist "pasi""; geht nicht, da müssen die Anführungszeichen um Pasi mit \ escaped werden (\").

Dann Zeig deinen Code doch mal...

Kommentar von RaceShafter ,

Also echo "Mein Name ist \pasi\"; ? ich kümmere mich eben um den Code. Liege noch im Bett ;).. Schreibe den dann gleich..

Kommentar von triopasi ,

echo "mein name ist \"Pasi\".";

Kommentar von RaceShafter ,

☺ Ah ok. So, mein PC fährt hoch. Ich gebe dann gleich den Code via PasteBin.

Kommentar von RakonDark ,

...

Kommentar von RaceShafter ,

pastebin.com/rf573L4D Javascript war doch 8 zeilig und nicht vier, aber das macht ja keinen Unterschied.

Kommentar von fluffiknuffi ,
  • // ist gängiger als #
  • Du solltest bei ' und " konsequent sein. Nutze wenn möglich immer ' statt ". Ist nicht schlimm aber ich persönlich verwende solche Kriterien als Indikatoren für Codequalität.
  • Hast du deine MySQL-Statements gegen Injections geschützt? Ich glaube nicht. D. h.: Jemand kann deine MySQL-Statements manipulieren.
  • Ein paar mehr Leerzeichen wären schön z. B. statt  if(!$dbconnect){ eher  if (! $dbconnect) {
  •  #Select username and password from database -> da wird aber nur das PW selektiert!
  • Man schreibt Passwörter nicht im Klartext in Datenbanken sondern hasht sie. Die einfachste Methode ist $gehast = md5($passwort) aber auch sehr unsicher. Schau mal hier, da findest du mehr zu dem Thema: http://php.net/manual/de/faq.passwords.php#faq.passwords.hashing (tldr: Nutze die password_hash Funktion)
Kommentar von RaceShafter ,

Wegen Englisch nicht wundern. Das ist wirklich mein Text. Aber den will ich irgendwann einmal hochladen für andere.

Kommentar von fluffiknuffi ,

Keine Sorge, niemand wird dich verdächtigen Code geklaut zu haben nur aufgrund englischer Kommentare. Sollte es jemals doch geschehen schreib mir 'ne PM und ich geige demjenigen die Meinung. :'D

Keine passende Antwort gefunden?

Fragen Sie die Community