PHP - fenêtre de déléchargement qui s'ouvre

Petit nouveau ! | 4 Messages

08 janv. 2008, 13:04

bonjour à tous,

je débute sur php. sur mon poste winxp j'ai installé easyphp 2.0a1. apache et mysql bien démarré.

j'ai fait un premier programme avec un champ et un bouton. lorsque je clique sur le bouton, le fichier php n'est pas exécuté mais une fenetre de téléchargement s'ouvre.

je n'ai pas de IIS installé sur le pc.

le même programme je le mets sur un serveur ça fonctionne correctement.

j'ai effectué des recherches sur le forum et google mais pas de résultat.

merci pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 janv. 2008, 13:27

Peut être qu'avec un peu de code on y verrait plus clair sur ce qu'est sensé faire ton script :)

Tu passes bien par http://localhost/ ou http://127.0.0.1/ pour accéder à ton script ?
Il porte bien l'extension .php ?
Tu utilises bien les balises "<?php" et non les short open tags "<?" ?
....
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 4 Messages

08 janv. 2008, 13:43

merci ryle, voici le code source. je précise que ce code fonctionne bien sur ma page perso free.fr

sur mon poste avec easyphp le code me pose des soucis




le fichier html
<head>
  <title></title>
</head>

<body>
  <big>Saisir votre user et password</big>
  </br> </br>
  <form name="Login" action="login.php" method="post" target="_top">
    <small>User </small>
    <input name="User" size="20" tabindex="1" maxlength="20" />
    </br> </br>
    <small>Password </small>
    <input name="Password" size="20" tabindex="2" maxlength="20" />
    </br> </br>
    <input type="submit" name="Send" value="Send" tabindex="3" />
  </form>
</body>

</html>
le fichier login.php
<?
  include("fonctions.php");

  $res=$_GET["Send"];
  if ($res="Send") {
  	sConnect();
  }


  function sConnect()
	{
	  $user=$_POST["User"];
	  $password=$_POST["Password"];

	  //ouvrir connexion
	  $lcnx=g_open_cnx();

	  //requête sql
	  $ls="select * from transon.USERS where USERS_USER=%luser and USERS_PASSWORD=%lpassword";
	  $ls=str_replace("%luser","'".$user."'",$ls);
	  $ls=str_replace("%lpassword","'".$password."'",$ls);

	  //exécute la requête sql
	  $res=mysql_query($ls,$lcnx);
	  if (mysql_num_rows($res)>0) {
	  	echo "OK";
	  }
	  else {
	  	echo "KO";
		}

		// fermer la connexion
    g_close_cnx($lcnx);

  }

?>
ma blibliothèque de fonction
<?php

// function ouverture de base de données mysql
function g_open_cnx()
{
  //$gcnx = mysql_connect("sql.free.fr", "****", "******", "******");
  $gcnx = mysql_connect("sql.free.fr", "******", "*******");
  return $gcnx;
}

// function ouverture de base de données mysql
function g_close_cnx(&$gcnx)
{
  mysql_close($gcnx);
}


?>

ViPHP
ViPHP | 4039 Messages

08 janv. 2008, 13:55

salut,

Trois chôses:
- utilises les balises
 ou [code] pour afficher ton script
- ouvre bien chaque fois le code php avec "<?php" et non simplement "<?"
- quel est l'adresse dans ta barre d'adresse quand tu consultes la page en local ?
(- Pourquoi tu cherches un GET dans ton login.php alors que tu transmets les données en post ?)

(sinon le rouge c'est bien essayé  8-) )
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 4 Messages

08 janv. 2008, 17:27

merci,

- ok pour les balises

- <?PHP ?> je vais modifier

- dans easyphp/apache j'ai créé un alias et j'utilise cet alias ...

A+

[i][color=darkred][Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur][/color][/i]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 janv. 2008, 18:17

- ok pour les balises
[/quote]
Tu aurais donc pu te reloguer et éditer ton message :?

Mais bon, comme tu es nouveau, je te donne une chance et je l'ai fait à ta place ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 4 Messages

08 janv. 2008, 18:57

Désolé, je suis au boulot et comme je suis parti en réunion ...

mes excuses

A+

ViPHP
ViPHP | 1996 Messages

08 janv. 2008, 23:52

Au lieu de
  $res=$_GET["Send"];
  if ($res="Send") {
      sConnect();
  }
Essaye :
  $res=$_POST["Send"];
  if ($res="Send") {
      sConnect();
  }
Ça devrait mieux marcher... les Variables $_GET sont celles présentes dans l'url après le "?" ici tu cherchais une variable de type http://www.mapage.com?Send=Send alors que ton formulaire et en mode POST.
<form name="Login" action="login.php" method="post" t
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 janv. 2008, 00:29

Et accessoirement, dans le if(), utiliser l'opérateur de comparaison "==" et non l'opérateur d'affectation "=", sans quoi le test sera toujours vrai et $res se verra toujours affectée la valeur 'Send' :)
if ($res=="Send") { 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...