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 09-12-2009, 19:35
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Exclamation script schreiben und starten

Hallo leute,

ich bins mal wieder ^^ mit einer meiner fragen xD
es geht darum, das ich immo an nem kleinem Webinterface bastle und ich die möglichkeit suche ein Startscript beim klick auf einem (Start) Button mit Daten aus der mysqltabelle erstellen zu lassen (im ordner desjenigen, der sich im webinterface angemeldet hat [per mysql ist der Ort / Ordner definiert]) und dann soll das ganze auch noch ausgeführt werden .... (liegt alles auf ein und dem selben server und [wo einige wieder mekkern werden ^^] sicherheitsmäßig ist erstmal irrelevant)

kann mir da ggf jm. helfen?
Mit Zitat antworten
  #2 (permalink)  
Alt 09-12-2009, 19:51
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wie sieht dein Ansatz aus? Wo klemmt es konkret?
Mit Zitat antworten
  #3 (permalink)  
Alt 09-12-2009, 20:33
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

wenn man ansatz sagen kann ^^
(ist von mir selber, deshalb also eben anfängerlike ^^)

Code:
<?php 
include ("auth.php"); 
include ("header.php");
include ("inc.php");

$port = $_SESSION["user_Port"];
$ip = $_SESSION["user_Serverip"];
$players = $_SESSION["user_Slots"];
$user = $_SESSION["user_nickname"];
$game = $_SESSION["user_Gamekurz"];
$pfadscript = "/home/$user/$game/";
$scriptname = "start.sh";
$script_path = "$pfadscript$scriptname";
$script = hier muss i-wie das drinne stehen was in die startconfig soll... (z.b. inhalt von der Zeile des users in der Datenbank abschnitt config oder so ^^);

?>
<head>
<meta http-equiv="refresh" content="3; URL=starten.php">
</head>


<?php
$act = $HTTP_GET_VARS['act'];
//  Server starten
if ($act=="start")
{
  file_put_contents($script_path, $script);
  $output = shell_exec("$script_path$scriptname");
}
?>



<table border="0" width="80%">
<tr>
    <td width="50%" align="center">
<p>


<?php
if(@fsockopen("$_SESSION[user_Serverip]","$_SESSION[user_Port]",&$errno,&$errstr,2)){
echo "<font color=green><b>Server ist online</font></b>";

}

else{
echo '<a href="starten.php?act=start">Server starten</a>';
}
?>


</td>
</tr>
</table>
das rote ist das problem ^^
Mit Zitat antworten
  #4 (permalink)  
Alt 09-12-2009, 21:05
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
hier muss i-wie das drinne stehen was in die startconfig soll
Wo soll es herkommen? Wie kommst du da ran?
Datenbank, mysql_query() und Co.? Dann los!

Aber mal ganz grundsätzlich:

Was soll das werden?
Du möchtest ein Shellscript erzeugen, als Datei speichern und dann sofort und einmalig ausführen? Was soll denn dieses Shellscript machen, was sich nicht direkt mit PHP erledigen läßt?

Wieso machst du das immer?
Du willst bei jedem Aufruf des PHP-Scripts das Shellscript erzeugen und speichern, es aber nur ausführen, wenn ?act=... übermittelt wurde. Überflüssig!
Mit Zitat antworten
  #5 (permalink)  
Alt 09-12-2009, 21:13
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

also ^^

das soll nen startscript sein, es liegt bei dem benutzer im ftp und (muss auch da liegen) und soll numal nicht bearbeitet werden dürfen (es reicht, wenn es jedesmal neu geschrieben wird beim klick auf start)

ja es soll geschrieben werden und dann auch ausgeführt....
nur kp wie ich ihm sage schreibe das aus der mysql datenbank unter config in die datei
Mit Zitat antworten
  #6 (permalink)  
Alt 09-12-2009, 21:15
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich wiederhole mich: Was soll denn dieses Shellscript machen, was sich nicht direkt mit PHP erledigen läßt?

Zitat:
Zitat von Restless Beitrag anzeigen
ja es soll geschrieben werden und dann auch ausgeführt....
Es wird aber unter bestimmten Bedingungen auch geschrieben und NICHT ausgeführt.

Was meinst du mit "das aus der mysql datenbank unter config". Beschreibe dein Problem mal vernünftig!
Mit Zitat antworten
  #7 (permalink)  
Alt 09-12-2009, 21:21
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

also ich möchte einfach pro benutzer das feld config haben und da steht dann das drinne, was ins script rein soll ^^
Mit Zitat antworten
  #8 (permalink)  
Alt 09-12-2009, 21:24
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

mysql_query
Mit Zitat antworten
  #9 (permalink)  
Alt 10-12-2009, 17:31
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Question

Tja also das mit dem schreiben funktioniert jetzt zwar aber dafür sind neue Probleme aufgetreten ...

1. wenn er die datei schreibt, dann ist sie komischerweise größer, als wenn ich den code manuell einfüge (ansich nicht das Problem), aber er gibt mir immer einen Fehler aus ... ggf. liegts am closebefehl im php code ... denn wenn ich die datei bearbeite (z.b. leerzeichen rein und dann speichere) dann funktioniert sie.
(Startscript und neuer PHP code sind unten)

2. ich habe jetzt das Startscript in der Datenbank (Feld Config, Type Text) nu schreibt er das ja auch schön rein ^^ aber ich will es eigendlich so haben, dass ich nicht jedem user nen eingenes Script schreiben muss sondern, das er die Variablen mit denen vom user ersetz werden (wie als wenn ich jetzt in php währe $ip mit 127.0.0.1 austauchen [oder was auch immer beim angemeldeten User in der MySQL datenbank im Feld IP steht])

Neuer PHP Code:
Code:
<?php
include ("auth.php"); 
include ("header.php");
include ("inc.php");

$port = $_SESSION["user_Port"];
$ip = $_SESSION["user_Serverip"];
$players = $_SESSION["user_Slots"];
$user = $_SESSION["user_nickname"];
$game = $_SESSION["user_Gamekurz"];

$pfadscript = "/home/$user/123/";
$scriptname = "start.sh";
$script_path = ("$pfadscript$scriptname");

$dbverbindung = mysql_connect (localhost, name, pw);
$dbanfrage = "SELECT * from games where Game='123'";
$result = mysql_db_query (db, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array ($result))
$dateiconfausgabe = $ausgabe[Config];
?>

<head>
<meta http-equiv="refresh" content="3; URL=starten.php">
</head>

<?php
$act = $HTTP_GET_VARS['act'];
//  Server starten
if ($act=="start")
{
  $handle = fopen ("$script_path", "w+");
  fwrite($handle,$dateiconfausgabe);
  fclose($handle);
  $output = shell_exec("$script_path start");
}
?>

<table border="0" width="80%">
<tr>
    <td width="50%" align="center">
<p>

<?php
if(@fsockopen("$_SESSION[user_Serverip]","$_SESSION[user_Port]",&$errno,&$errstr,2)){
echo "<font color=green><b>Spiel ist online</font></b>";
}
else{
echo '<a href="starten.php?act=start">Spiel starten</a>';
}
?>
</td>
</tr>
</table>
Startscript:
Code:
#!/bin/sh

DIR=/home/Restless/123
DAEMON=123_start
NAME=spiel1
PARAMS='-port $port +ip $ip +maxplayers $maxplayers +map $map'

case "$1" in
start)
   echo "Starting: $NAME"
   if [ -e $DIR ];
   then
    cd $DIR
   screen -d -m -S $NAME ./$DAEMON $PARAMS
   else echo "No such directory: $DIR!"
   fi
   ;;

stop)
   if [[ `screen -ls |grep $NAME` ]]
   then
       echo -n "Stopping: $NAME"
       kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
   else
       echo "Coulnd't find a running $DESC"
   fi
   ;;

restart)
   if [[ `screen -ls |grep $NAME` ]]
   then
       echo -n "Stopping: $NAME"
       kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
       echo " ... done."
   else
       echo "Coulnd't find a running $DESC"
   fi
   
   echo -n "Starting: $NAME"
   cd $DIR
   screen -A -m -d -S $NAME ./$DAEMON $PARAMS
   echo " ... done."
   ;;

status)
   screen -ls | grep -wq "$NAME" && echo "$NAME is UP" || echo "$NAME is DOWN"
   ;;

*)
   echo "Usage: $0 {start|stop|status|restart}"
   exit 1
   ;;
esac

exit 0
sry wenns ein bissle lang ist ^^
Mit Zitat antworten
  #10 (permalink)  
Alt 10-12-2009, 21:43
Restless
 Registrierter Benutzer
Links : Onlinestatus : Restless ist offline
Registriert seit: Oct 2009
Beiträge: 36
Restless befindet sich auf einem aufstrebenden Ast
Standard

ok (erstmal sry wegen jetzt 2mal posten hintereinander aber ich finde den letzten eintrag schon lang genug ^^)
ich weiß jetzt zumindest schonmal an was es liegt ^^ (bekomme den selben Fehler)
http://www.wcm.at/forum/showthread.p...n-234893.html?
dort ist es erklärt ^^ nur muss ich das noch i-wie mysql / php beibringen xD

UPDATE:
Ok habs hinbekommen ^^ einafch
Code:
apt-get install tofrodos
und dann eben dos2unix start.sh


Jetzt müsste es nur noch möglich sein, das die variablen im startscript automatisch angepasst werden, wenn es aus der datenbank geholt wird und in die Datei geschrieben wird.

Geändert von Restless (10-12-2009 um 22:12 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 11-12-2009, 03:28
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Windows-Zeilenumbrüche funktionieren nicht, es muss Unix-Style sein. Hast du selbst herausgefunden. Also hör doch einfach auf, Windows-Zeilenumbrüche reinzuschreiben!
Wäre jedenfalls sinnvoller, als eine nachträgliche Konvertierung.

Dein eigentliches Problem läßt sich mit str_replace() lösen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neue Zeilen in eine txt Datei mit Java schrieben? Perpetuum ASP, PERL, CGI, C und alles andere 6 11-05-2005 17:34
[Script] Suche Script zum Starten von Programmen MexX Apps und PHP Script Gesuche 5 14-12-2003 16:13
Script aus der Konsole starten muckel Linux und Unix 7 20-10-2003 11:41
php script per cron starten ? laminar PHP Developer Forum 3 14-10-2002 17:13
download starten, aber nicht das Programm starten Thommy HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 0 11-08-2002 16:57

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 19:30 Uhr.