Path to the PHP binaries unter Windows

Windows 1 über 9x bis hin zu Vista, 7, 8, 10 und 11 sowie zukünftige Systeme
Unix / Linux in allen Derivaten und Varianten
Antworten
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Path to the PHP binaries unter Windows

Beitrag von Indextrader »

Hallo ihr Lieben

Eine kleine Frage

Ich muss in einem PHP Script in der allerersten Zeile den Pfad zu php bin angeben.
Nun läuft der Server unter Windows und ich bekomme einfach nicht raus, was ich da eintragen muss.

so soll es unter Linux aussehen #!/usr/bin/php -q
Bei mir liegt der Ordner hier
f:/Programme/xampp/apache/bin/php , wenn ich das aber einfach so übernehme klappt es nicht

Eventuell kann mir da jemand helfen?
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich muss in einem PHP Script in der allerersten Zeile den Pfad zu php bin angeben.
Seit wann?

Wenn PHP im Webserver eingebunden ist, ist das überhaupt nicht nötig.
Selbst dann nicht, wenn in einem HTML-File PHP-Code enthalten ist.

Dazu müssen unter Windows Pfadangaben auch immer mit einem Backslash angegeben werden.
Also richtig wäre dann

Code: Alles auswählen

f:\Programme\xampp\apache\bin\php
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Seit wann?
Na so steht es hier ;)
Ersetze ich #!/usr/bin/php -q mit f:\Programme\xampp\apache\bin\php und rufe die entsprechende .php im Browser auf wird mir f:\Programme\xampp\apache\bin\php angezeit, sonst passiert nichts ^6

Setting up the email gateway

Pop method
1- Check path to PHP:

Open the file emailpop.php located in the /email folder using a plain text editor (such as Notepad). After openning the file you will see this in the very first line:
#!/usr/bin/php -q
This is the path to the PHP binaries. On each server this path may be different, although it is usually either /usr/bin/php, /usr/local/php/bin/php or /usr/bin/local/php. To find out the path on your server, contact your host or run the whereis php command from telnet or SSH. If the path on your server is, for example, /usr/local/php/bin/php, you need to change the line above to:
#!/usr/local/php/bin/php -q

Code: Alles auswählen

#!/usr/bin/php -q
<?php

$scpath = 'f:\Programme\xampp\htdocs\support';

/********************************************************************************
* Do not edit anything below this line.											*
********************************************************************************/

require($scpath.'/conf/conn.php');
require($scpath.'/conf/conf.php');
require_once($scpath.'/inc/pear.php');
require_once($scpath.'/inc/socket.php');
include($scpath.'/inc/functions.php');
include($scpath.'/inc/pop3.php');
include($scpath.'/inc/mimedecode.php');

$query = "SELECT * FROM email_settings WHERE ID = '1'";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
if (mysql_num_rows($req) != 0){
	$row = mysql_fetch_array($req);
} else {
	exit();
}

if ($row['enabled_email']==0){
	exit();
}

if ($row['interface']!="pop"){
	exit();
}

$query = "SELECT * FROM email_accounts";
$resultaccount=mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
while($rowaccount = mysql_fetch_array($resultaccount)) {

	/** Create the class*/
	$pop3 =& new Net_POP3();

	if (($rowaccount['hostname'] == "") or ($rowaccount['port']=="") or ($rowaccount['username']=="") or ($rowaccount['password']=="")){
		$error = " Host name, port, username or password is empty ";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}

	/** Connect to localhost on usual port
	* If not given, defaults are localhost:110*/
	if (!@$pop3->connect($rowaccount['hostname'], $rowaccount['port'])){
		$error = " Unable to connect to $rowaccount[hostname]:$rowaccount[port] ";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}

	/** Login using username/password. APOP will
	* be tried first if supported, then basic.*/
	if (!$pop3->login($rowaccount['username'], $rowaccount['password'])){
		$error = " Unable to login with username: $rowaccount[username]. Wrong username or password.";
		$error_date=time();
		$query = "INSERT INTO pop_errors (errormsg, date) VALUES ('$error', '$error_date')";
		$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		//$req = mysql_query("UPDATE email_settings SET warning_error ='$error' WHERE ID = '1'") or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
		continue;
	}


	/*N of messages*/
	$total_msgs = $pop3->numMsg();
	for ($i = 1; $i <=$total_msgs ; $i++) {
		$message = $pop3->getMsg($i);
		$info = $pop3->getListing($i);
		$msg_size = $info[size];
		require($scpath.'/inc/emailproc.php');

		$pop3->deleteMsg($i);
	}
	/** Disconnect */
	$pop3->disconnect();

}

?>
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nochmal:
Solche Seiten werden in einem Webserver ausgeführt, sonst würde ja nichts passieren.
Damit dann aber auch der Webserver erkennt, welche Scriptsprache hier zu verwenden ist, muss PHP eingebunden werden.
Ist das geschehen, ist die erste Zeile komplett überflüssig, ja sogar falsch!

Daher kann ich nicht verstehen, wie überhaupt jemand auf solche Definitionen kommt.
Ausser vielleicht, das Script würde explizit NICHT durch einen Webserver ausgeführt, sondern mit einem PHP-Aufruf gestartet.
Dann wäre aber auch Deine Angabe komplett daneben, denn mit #! wird definiert, wo sich PHP befindet, nicht erst danach!
Somit muss bereits die Zeile

Code: Alles auswählen

#!/usr/bin/php -q
so lauten:

Code: Alles auswählen

f:\Programme\xampp\Apache\bin\php
Aber wie bereits geschrieben:
Das ist nur nötig, wenn man das Script ausserhalb eines Webservers aufruft.
Ansonsten ist das so immer falsch und wird "nur" angezeigt, wie Du das ja bereits erfahren hast.

Aber zurück zum Fehler:
Den kann ich nur schlecht prüfen, wenn die betreffenden inkludierten Dateien nicht bekannt sind.
Sofern Du die hier veröffentlichen willst, dann auch bitte anhängen und nicht posten!!!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Dank dir Oxpus, ich verstehe zwar nur Bahnhof, aber das wird sich sicher legen ;)

Die Datei wird wenn ich das richtig verstehe nicht includiert, sie soll lediglich Emails aus Outlook in die Datenbank pumpen, sodas sie dann im Script bearbeitet werden können.

Folgendes angehangene Script muss dazu im Browser aufgerufen werden
Dateianhänge
emailpop.rar
(1.05 KiB) 274-mal heruntergeladen
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nochmal:
Die Definition zu den PHP-Dateien in einem PHP-Script, welches innerhalb eines Webservers aufgerufen und benutzt wird, ist absoluter Blödsinn, da PHP bereits im Webserver selber eingebunden ist und damit dem Script zur Verfügung steht (oder genauer: der Webserver über das eingebundene PHP erkennt, daß der im Script angegebene Code PHP-Code ist; daher auch <?php am Anfang und ?> am Ende der Datei ;) ).
Jedes PHP-Script, was genau das verlangt, wurde also IMHO von :x: programmiert.

Um bei Deinem Script zu prüfen, warum denn nun trotz dieser unsinnigerweise verlangten Definition eine Fehlermeldung kommt, brauche ich auch die Dateien, die hier includiert werden!
Also diese Dateien hier:

Code: Alles auswählen

require($scpath.'/conf/conn.php');
require($scpath.'/conf/conf.php');
require_once($scpath.'/inc/pear.php');
require_once($scpath.'/inc/socket.php');
include($scpath.'/inc/functions.php');
include($scpath.'/inc/pop3.php');
include($scpath.'/inc/mimedecode.php');
Und BTW: Was macht denn dieses Script überhaupt? Ist es ein Teil eines Webmail-Clients? Da gibt es sicher deutlich bessere...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Und BTW: Was macht denn dieses Script überhaupt? Ist es ein Teil eines Webmail-Clients? Da gibt es sicher deutlich bessere...

Ich bin momentan auf der Suche nach einem Script, mit dem ich Emails organisieren kann.
Alle eingehenden Emails für eine bestimmte Emailadresse sollen sortiert werden.
Momentan finde ich das nur bei Support Scripten, die vergeben eine ID und alle ein und ausgehenden Emails mit dieser ID werden sortiert, sodas jeder zugelassene Staff jederzeit den gesamten Mailverkehr einsehen und darauf antworten kann.
Ausserdem kann man den Mails Infos zufügen, nachdenen gesucht werden kann.
Somit kann man z.B der Eingangs ID einen Namen oder Emailadresse zuweisen und mit der Suchfunktion nach diesen Infos suchen.

Soetwas suche ich.

wenn du da etwas gutes kennst wäre das natürlich perfekt :)
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, wie jetzt mit ID's?
Warum nicht eine Support-Adresse und jedem Teammitglied den Zugang zu dem Postfach mitteilen?
Dann sieht jeder andere bereits die geöffneten Emails nicht mehr und man kann auch die Emails in Ordner einsortieren, sofern erledigt und ggf. auch von wem. Und jedes Teammitglied kann in den Unterordnern nach den bisherigen Emails schauen.

Warum dann also nochmal ein Script, welches die Emails ein zweites Mal verwaltet?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Deine Lösung hört sich nach viel Handarbeit an. ^6
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wieso?
Eine Email-Adresse, ein Postfach und jedes Team-Mitglied bekommt die Zugangsdaten.
Dann arbeiten alle im selben Postfach, welches man mit Ordnern schnell strukturiert hat.

Was ist daran kompliziert?

Einfacher, schneller und reibungsloser kann man Emails für ein Team nicht verwalten ;)
Setzt man dann auch noch Email-Clients mit Teamwork-Funktionen ein (Outlook ist ein Beispiel, wenn auch das teuerste), kann man auch prima mit dem einen Postfach zusammenarbeiten...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag von Indextrader »

Ok dann werde ich meine Taktik nochmal überdenken :)
Antworten