PHP и с чем его едят....

Del

Member
Ответ: PHP и с чем его едят....

Да, еще интересно какая там БД.
 

bllem

New Member
Ответ: PHP и с чем его едят....

достаточно указать интерпретатор и позволить файлу исполняться.
 

Dre.hz

Active Member
Ответ: PHP и с чем его едят....

Akel.php, я неоднократно прелагал тебе убиться ап стену. Что за бред ты пишешь про MySQL через HTTP? Покажи хоть кусок своего скрипта, где в настройках mysql ты указываешь ?
 
A

AkeL.php

Guest
Ответ: PHP и с чем его едят....


PHP:
<?
/* Этот скрипт получает переменные из request.html */

/* Переменные для соединения с базой данных */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";

/* Таблица MySQL, в которой хранятся данные */
$userstable = "clients";

/* email администратора */
$adminaddress = "administration@me.com";

/* создать соединение */
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
/* выбрать базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error()); 

echo "<CENTER>";
echo "Привет, ".$_POST['name'];
echo "<BR><BR>";
echo "Спасибо за ваш интерес.<BR><BR>";
echo "Вас интересуют ".$_POST['preference'].". Информацию о них мы пошлем вам на email: ".$_POST['email'];
echo "</CENTER>";

/* Отправляем email-ы */
$subj = "Запрос на информацию";
$text = "Уважаемый ".$_POST['name']."!
Спасибо за ваш интерес!
Вас интересуют ".$_POST['preference']."
Мы их распространяем бесплатно.
Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.";
mail($_POST['email'], $subj, $text);

$subj="Поступил запрос на информацию";
$text = $_POST['name']." интересовали ".$_POST['preference']." email-адрес: ".$_POST['email']; 
mail($adminaddress, $subj, $text);

/* составить запрос для вставки информации о клиенте в таблицу */
$query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";
/* Выполнить запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
echo "Информация о вас занесена в базу данных.";

/* Закрыть соединение */
mysql_close();
?>
 

Dre.hz

Active Member
Ответ: PHP и с чем его едят....

Я же ясно написал " ".

префикса http:// я там не нахожу.
 
A

AkeL.php

Guest
Ответ: PHP и с чем его едят....

Не нужно придираться к словам.
 

GrAndSE

Тёмный
Модератор
Ответ: PHP и с чем его едят....

Полностью поддерживаю Dre.hz. Какие придирки к словам? AkeL, если mysql работает через http протокол, то тогда возникает вопрос - на кой чёрт mysql тогда ещё и порт дополнительный выделять нужно? Работал бы себе через тот который для http выделен и всё.. Такие вопросы можно пачками задавать. Можно было бы просто подумать перед тем как чуш нести. Ещё можно тогда долго думать, а как же это работать с базами данных через такие страшные штуки как cgi, fast-cgi. Это ж наверное для функционирования связок типа nginx + php-fastcgi или lighttpd + php-fastcgi нужен полюбому apache, со своим mod_php. Ну а в PostgreSQL можно коннектится только через прослойку из mysql. По крайней мере это не бредовей звучит.. Ну и что немаважно, гораздо страшнее, понтовей и непонятней для простых смертных.
Такое ощущение, что отсутствует какое-либо понимание сути вопроса (не только касательно php, но и касательно сетей, баз данных и ещё многого другого), а есть только желание понтонуться и поспотрить. Вспоминается, Вы когда-то говорили о том, что для программирования нужна некотороая теоретическая база, а я был приверженцем иного мнения. Но посмотрев на псоледние перлы... наверное, я ошибался.. Правда такие вещи я называл не "теоретической базой", а "общими принципами". Но....

Прошу простить модераторов за такой оффтоп.
 
A

AkeL.php

Guest
Ответ: PHP и с чем его едят....

Не получается соединение с сервером из php-скрипта

PHP:
 <?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = "5555";

/* Get the IP address for the target host. */
$address = gethostbyname('localhost');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "<br />";
} else {
    echo "OK.<br />";
}

 echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "<br />";
} else {
    echo "OK.<br />";
}
/*
$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";
*/
echo "Reading response:\n\n";
while($buffer=@socket_read($socket,512,PHP_NORMAL_READ)){
    echo $buffer;
}
if(socket_last_error($socket) == 104) {
    echo "Connection closed";
}

echo "Closing socket...";
socket_close($socket);
echo "OK.<br >";
?>
Сервер - java - приложение. Код:

PHP:
import java.io.*; 
import java.net.*; 
import java.util.Vector; 
 
public class ChatServer { 
    public static void main(String[] args) 
    throws IOException { 
        ServerSocket serverSocket = new ServerSocket(5555); 
        System.out.println("Chat server started on port " + 
            serverSocket.getLocalPort()); 
 
        ServerMsgDispatcher dispatcher = 
            new ServerMsgDispatcher(); 
        dispatcher.start(); 
 
        while (true) { 
            Socket clientSocket = serverSocket.accept(); 
            ClientListener clientListener = 
                new ClientListener(clientSocket, dispatcher); 
            dispatcher.addClient(clientSocket); 
            clientListener.start(); 
        } 
    } 
} 
 
class ClientListener extends Thread { 
    private Socket mSocket; 
    private ServerMsgDispatcher mDispatcher; 
    private BufferedReader mSocketReader; 
 
    public ClientListener(Socket aSocket, 
        ServerMsgDispatcher aServerMsgDispatcher) 
    throws IOException { 
        mSocket = aSocket; 
        mSocketReader = new BufferedReader( 
            new InputStreamReader( 
                mSocket.getInputStream())); 
        mDispatcher = aServerMsgDispatcher; 
    } 
 
    public void run() { 
        try { 
            while (!isInterrupted()) { 
                String msg = mSocketReader.readLine(); 
                if (msg == null) 
                    break; 
                mDispatcher.dispatchMsg(mSocket, msg); 
            } 
        } catch (IOException ioex) { 
            System.err.println("Error communicating " + 
                "with some of the clients."); 
        } 
        mDispatcher.deleteClient(mSocket); 
    } 
} 
 
class ServerMsgDispatcher extends Thread { 
    private Vector mClients = new Vector(); 
    private Vector mMsgQueue = new Vector(); 
 
    public synchronized void addClient(Socket aClientSocket) { 
        mClients.add(aClientSocket); 
    } 
 
    public synchronized void deleteClient(Socket aClientSock) { 
        int i = mClients.indexOf(aClientSock); 
        if (i != -1) { 
            mClients.removeElementAt(i); 
            try { 
                aClientSock.close(); 
            } catch (IOException ioe) { 
                // Probably the socket already is closed 
            } 
        } 
    } 
 
    public synchronized void dispatchMsg( 
            Socket aSocket, String aMsg) { 
        String IP = aSocket.getInetAddress().getHostAddress(); 
        String port = "" + aSocket.getPort(); 
        aMsg = IP + ":" + port + " : " + aMsg + "\n\r"; 
        mMsgQueue.add(aMsg); 
        notify(); 
    } 
 
    private synchronized String getNextMsgFromQueue() 
    throws InterruptedException { 
        while (mMsgQueue.size() == 0) 
            wait(); 
        String msg = (String) mMsgQueue.get(0); 
        mMsgQueue.removeElementAt(0); 
        return msg; 
    } 
 
    private synchronized void sendMsgToAllClients(String aMsg) {  
        for (int i=0; i<mClients.size(); i++) { 
            Socket socket = (Socket) mClients.get(i); 
            try { 
                OutputStream out = socket.getOutputStream();  
                out.write(aMsg.getBytes()); 
                out.flush(); 
            } catch (IOException ioe) { 
                deleteClient(socket); 
            } 
        } 
    } 
 
    public void run() { 
        try { 
            while (true) { 
                String msg = getNextMsgFromQueue(); 
                sendMsgToAllClients(msg); 
            } 
        } catch (InterruptedException ie) { 
            // Thread interrupted. Do nothing 
        } 
    } 
}
Соединения происходит.
При считывании данных затрачивается очень большое время.


 
Зверху