If (empty($name)) {header ("Location: http:// "} ? [Résolu]

Delphiturbo 69 Messages postés mercredi 31 octobre 2007Date d'inscription 29 juillet 2008 Dernière intervention - 12 juin 2008 à 23:19 - Dernière réponse : cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention
- 15 juin 2008 à 23:09
Salut

j ai un Problem de ma Database. Le code cherche directment apres de niste de Page !
Le voudrais changer le Code. Le Code doit fait si j ai cliquee
svp, que peut m' aider ?
ou je doit changer dans le code ?

<?php

    $cona = @mysql_connect("localhost","xxxx","yyyy")

        or die(mysql_error());

    $cona_db = mysql_select_db("xxxx", $cona)

        or die(mysql_error());

$name = $_GET['name'];

$sql="SELECT * FROM tabelle1 WHERE name = '$name'";

$result = mysql_query($sql);

if( mysql_num_rows( mysql_query( "select * from tabelle1 where name='$name'" ) ) <> 0 )

{

$result = mysql_query("SELECT name FROM tabelle1 order by name DESC LIMIT 1")

        or die(mysql_error());

}

       

?>

<html>

<title>Test1</title>



<form action="#" method="post" name="formular">

<?php

while($row = mysql_fetch_object($result))

{

?>

">



<tr>

<td align="center"></td>

</tr>

</table>

if (empty($name))

{

header ("Location: http://www.google.de");

}

<?php

}

?>

</form>



</html>
Afficher la suite 

Votre réponse

11 réponses

f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 13 juin 2008 à 09:13
+3
Utile
<?php

?>
<html>
<head>
<title>Test1</title>
</head>

<form action="#" method="post" name="formular">
<?php
$name = isset($_POST['name']) ? $_POST['name'] : isset($_GET['name']) ? $_GET['name'] : null;

if ($name != null) {
  mysql_connect("localhost","xxxx","yyyy") or die(mysql_error());
  mysql_select_db("xxxx", $cona) or die(mysql_error());
 
  $sql = "SELECT * FROM tabelle1 WHERE name='".$name."' ORDER BY name DESC LIMIT 1;";
  $result = mysql_query($sql);
 
  if (!$result) {
    die(mysql_error());
  } else {
    if (mysql_num_rows($result) != 0) {
      $row = mysql_fetch_assoc($result);
      echo '';
    } else {
    }
  }
  mysql_free_result($result);
  mysql_close();
} else {
  header("Location: http:\\www.google.com");
}
?>

</form>

</html>






<hr size="2" width="100%" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de f0xi
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 13 juin 2008 à 10:34
0
Utile
Question redirigée vers le site dédié au PHP...

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
Delphiturbo 69 Messages postés mercredi 31 octobre 2007Date d'inscription 29 juillet 2008 Dernière intervention - 13 juin 2008 à 11:00
0
Utile
Salut
j ai un error :

Warning: Cannot modify header information - headers already sent by (output started at
/www/.../test.php:11) in /www/.../test.php on line 36

</head>

<form action="#" method="post" name="formular">
<?php // ici line 11

} else {
  header("Location: http:\\www.google.com");// ici line 36
Commenter la réponse de Delphiturbo
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 13 juin 2008 à 11:13
0
Utile
une petite explication sur le protocole HTTP:

Qu'est-ce-que le HTTP ?
Preface
Ce tuto est pour debutant, je n'ai pas le niveau pour ecrire plus,
alors je vous le dit tout de suite, il est TRES incomplet... J'en ai
simplement marre des erreurs de header sur phpcs, de session_start,
setcookie et autre, et marre des confusions php / javascript ; alors
j'explique comment se deroule une requete HTTP simple...

Intro : connection ? qu'est-ce-que c'est ?
Une connection est dite etablie lorsqu'un client ouvre un socket
vers un serveur. Un serveur qu'est-ce-que c'est ? C'est un programme
qui ecoute (fonction listen) un port. Je ne reviendrais pas sur ce que
c'est qu'un port... Un client qu'est-ce-que c'est ? C'est un programme
qui se connecte a un serveur, a l'aide d'un couple (ip, port). le
client et le serveur peuvent alors communiquer, ils utilisent pour cela
un protocol (un protocol est une norme qui regit la facon dont ils
doivent parler pour se comprendre) le protocol est decrit dans des rfc
(donc si vous cherchez de la doc sur un protocol, tapez rfc + nom du
protocol sur google).

Description
Le HTTP est un protocol : hypertext transfert protocol, wikipedia.
Deux programmes discutent, un navigateur internet (opera, firefox,
MSIE, galeon, lynx, et plus si affinites), et un serveur web (apache,
IIS, ...). Ils ont une facon de discuter bien cadree, comme tout
protocol, cette facon de discuter est decrite dans une RFC.

Une discution simple se deroule en deux temps : le navigateur parle,
puis envoie deux lignes vides (une ligne se termine par \r\n), ensuite
c'est le serveur qui parle, et enfin, la discution se termine. On
appellera par la suite les parolles du navigateur la requette, et la
reaction du serveur la reponse. (on neglige dans ce tuto le keep alive
qui permet de faire plusieurs requetes en une seule connection)

Requette comme reponse sont composes de deux parties : l'entete et
le corps (en anglais, header et body, que ceux qui n'aiment pas
l'anglais y portent quand meme attention, ca a son importance) pour la
requette, le body n'est pas forcement utilise.

Le header de la requette contient de nombreuses choses : la page sur
laquelle on veut aller, le host (si vous avez plusieurs sites par
machine, vous les diferenciez par cette variable, host c'est le nom de
domaine qui sert a acceder a la page), le mode d'action (en general GET
ou POST), le protocol (HTTP 1.0 ou 1.1), et des parametres plus
optionels comme la page precedente, le navigateur, la langue, les types
de documents acceptes... Et bien evidement, les cookies sont contenus
dans le header de la requette...

Dans le cadre d'un GET, on n'utilise pas le corps, sinon, lors d'un POST, on envoi la taille, et les donnees envoyees ensuite.

Pour un POST de fichier, il y a plusieurs champs : le nom du fichiers, sa taille, son mimetype, et son contenu.

Pour la reponse du serveur, le header contient le status (404 = non
trouve, 403 forbiden, 501 erreur, 200 = tout va bien ...), le mime
type du document, son charset, les nouveaux cookies...

Ensuite, le corps de la reponse du serveur, ca peut-etre n'importe quoi...

alors seulement, le navigateur recoit cette reponse, la lit, et
l'interprete a sa maniere (afficher un html, executer du javascript,
...)

Exemple en telnet

max@debian:~$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.localhost

HTTP/1.1 200 OK
Date: Wed, 20 Feb 2008 14:03:09 GMT
Server: Apache/2.2.8 (Debian) PHP/5.2.5-2 with Suhosin-Patch
X-Powered-By: PHP/5.2.5-2
Transfer-Encoding: chunked
Content-Type: text/html

42bc

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
[...]

En bleu, vous avez ce que le navigateur envoie, en orange, le header de la reponse, et en vert, le contenu de la page.

Si le navigateur avait du transmettre des cookies, il l'aurait fait "en bleu"

Si le serveur avait du envoyer de nouveaux cookies (ou modifier les valeurs des anciens), il l'aurait fait "en orange"

En php, chaque fois que vous faites un echo, print, ou chaque fois
que vous avec des caracteres qui ne sont pas entre <?php et ?>,
le serveur l'envoie en vert... Il lui est alors impossible par la suite
d'envoyer du orange...

Erreurs courantes
js - php
Si vous programmez en PHP, PERL, ASP, java en mode servelets, ....
(autres langages serveurs), ces langages sont executes a partir de la
reception de la requette chez le serveur, et leur execution se termine
a la fin de l'envoi de la reponse... ce n'est qu'ensuite que s'execute
les langages clients (flash, javascript, applets java ...), donc le
code suivant ne marche pas :

<script type="text/javascript">
a=document.getElementById('input').value;
<?php
$a=a;
?>

pour la simple raison que quand javascript s'execute, php a deja
fait son travail ! quand le client recoit la reponse, il n'y a plus de
php dans le message...

php-header
En php, plusieurs fonctions utilisent le header (session_start, les
cookies, ou tout simplement header), elles doivent etre appellees AVANT
l'envoie du corps de la reponse, sinon, elles ne peuvent pas envoyer de
header... Pour cette raison, on peut utiliser ob_start pour masquer
l'envoie de html (mais c'est pas joli joli non plus...) cf php.net pour
les fonctions ob_start et ob_end_flush.

<li>la RFC</li><li>plus simple, et pourtant deja tres bien</li>
Commenter la réponse de coucou747
Delphiturbo 69 Messages postés mercredi 31 octobre 2007Date d'inscription 29 juillet 2008 Dernière intervention - 14 juin 2008 à 20:27
0
Utile
Salut

le code ne marche pas
Ou le problem maintenet svp ?

<?php

?>

<html>
<head>
<title>Test</title>
</head>

<FORM METHOD="post" ACTION="test.php">
<?php
$name = isset($_POST['name']) ? $_POST['email'] : isset($_GET['email']) ? $_GET['email'] : null;

if ($email != null) {
  mysql_connect("localhost","database1","pasword1") or die(mysql_error());
  mysql_select_db("database1", $con) or die(mysql_error());

  $sql = "SELECT * FROM table1 WHERE email='".$email."' ORDER BY name DESC LIMIT 1;";
  $result = mysql_query($sql);

  if (!$result) {
    die(mysql_error());
  } else {
    if (mysql_num_rows($result) != 0) {
      $row = mysql_fetch_assoc($result);
      echo '';
      echo '';
      echo '';
    } else {
    }
  }
  mysql_free_result($result);
  mysql_close();
} else {
  header("Location: http://google.com"); // error ici :  Line 36
}
?>

</form>

</html>

Warning: Cannot modify header information - headers already sent by (output started at /www/...test.php:12) in /www/...test.php on line 36

mfg
Commenter la réponse de Delphiturbo
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 14 juin 2008 à 21:43
0
Utile
je viens de te le dire...

tu ne DOIS PAS faire de header apres avoir envoye du contenu (html ou autre)
Commenter la réponse de coucou747
Delphiturbo 69 Messages postés mercredi 31 octobre 2007Date d'inscription 29 juillet 2008 Dernière intervention - 14 juin 2008 à 22:03
0
Utile
ou je dois le meter ?
Commenter la réponse de Delphiturbo
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 14 juin 2008 à 22:17
0
Utile
...

si tu ne dois pas le mettre apres, alors peut-etre peux tu le mettre avant...

sinon, tu peux lire ce que je t'ai mis plus haut hein...
Commenter la réponse de coucou747
Delphiturbo 69 Messages postés mercredi 31 octobre 2007Date d'inscription 29 juillet 2008 Dernière intervention - 14 juin 2008 à 22:38
0
Utile
ou avant
c est pour qoi j ai donne ici le code complet
Commenter la réponse de Delphiturbo
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 15 juin 2008 à 03:04
0
Utile
avant l'envoie de code html !
Commenter la réponse de coucou747
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 15 juin 2008 à 23:09
0
Utile
Programmation PHP brouillonne, refus d'écouter et de lire les conseils/informations : c'est limite blacklistage !!!
@delphiturbo : si tu ne veux pas des conseils d'autres membres plus expérimentés, alors ne viens pas polluer ce forum en posant plusieurs fois les mêmes questions.Apprends les bases de la programmation et, tant qu'à faire, les bonnes. Commence aussi par apprendre l'usage de la documentation de référence ici.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.