Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : if (empty($name)) {header ("Location: http:// "} ? [ Divers / Général ] (Delphiturbo)

jeudi 12 juin 2008 à 23:19:12 | if (empty($name)) {header ("Location: http:// "} ?

Delphiturbo

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_rowsmysql_query"select * from tabelle1 where name='$name'" ) ) <> )
{

$result mysql_query("SELECT name FROM tabelle1 order by name DESC LIMIT 1")
        or die(
mysql_error());
}
       
?>

<html>
<title>Test1</title>
<body>
<form action="#" method="post" name="formular">
<?php

while($row mysql_fetch_object($result))
{
?>

<p><input type="text" name="name" size="50" value="<?php echo  $_GET['name'];?>"></p>

<tr>
<td align="center"><input type="submit" name="submit" value="senen"></td>
</tr>
</table>

if (empty($name))

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

}

<?php
}

?>
</form>
</body>
</html>


vendredi 13 juin 2008 à 09:13:43 | Re : if (empty($name)) {header ("Location: http:// "} ?

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

<?php

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

<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 '<input type="text" name="name" size="50" value="', $row['name'], '" />';
    } else {
    }
  }
  mysql_free_result($result);
  mysql_close();
} else {
  header("Location: http:\\www.google.com");
}
?>
<br />
<input type="submit" name="submit" value="senen" />
</form>
</body>
</html>






vendredi 13 juin 2008 à 10:34:05 | Re : if (empty($name)) {header ("Location: http:// "} ?

Delphiprog

Administrateur CodeS-SourceS
Question redirigée vers le site dédié au PHP...


May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

vendredi 13 juin 2008 à 11:00:46 | Re : if (empty($name)) {header ("Location: http:// "} ?

Delphiturbo

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>
<body>

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

} else {
  header("Location: http:\\www.google.com");
// ici line 36




vendredi 13 juin 2008 à 11:13:42 | Re : if (empty($name)) {header ("Location: http:// "} ?

coucou747

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.


samedi 14 juin 2008 à 20:27:07 | Re : if (empty($name)) {header ("Location: http:// "} ?

Delphiturbo

Salut

le code ne marche pas
Ou le problem maintenet svp ?

<?php

?>

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

<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 '<input type="text" name="name" size="50" value="', $row['name'], '" />';
      echo '<input type="text" name="email" size="50" value="', $row['email'], '" />';
      echo '<input type="text" name="telefon" size="50" value="', $row['telefon'], '" />';
    } else {
    }
  }
  mysql_free_result($result);
  mysql_close();
} else {
  header("Location: http://google.com"); // error ici :  Line 36
}
?>
<br />
<input type="submit" name="submit" value="send" />
</form>
</body>
</html>


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


mfg

samedi 14 juin 2008 à 21:43:23 | Re : if (empty($name)) {header ("Location: http:// "} ?

coucou747

je viens de te le dire...

tu ne DOIS PAS faire de header apres avoir envoye du contenu (html ou autre)

samedi 14 juin 2008 à 22:03:09 | Re : if (empty($name)) {header ("Location: http:// "} ?

Delphiturbo

ou je dois le meter ?

samedi 14 juin 2008 à 22:17:01 | Re : if (empty($name)) {header ("Location: http:// "} ?

coucou747

...

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...

samedi 14 juin 2008 à 22:38:19 | Re : if (empty($name)) {header ("Location: http:// "} ?

Delphiturbo

ou avant
c est pour qoi j ai donne ici le code complet


1 2

Cette discussion est classé dans : code, mysql, select, name, if


Répondre à ce message

Sujets en rapport avec ce message

pb sur mysql avec requete select * from TABLE IN (select ...) [ par malibu23 ] Salut j ai un pb sur mysql lorsque je fais un requetedu type select CHAMP from TABLE where CHAMP IN ( select CHAMP from TABLE where CHAMP = VARIABLE); Mysql et Php [ par Game69 ] Game69 vous salutJe débute en php en me servant d'un bouquin et je me heurte à un problème de syntaxe qui est un exemple donné dans ce livre.Voici le select mysql par date [ par lebobby ] Bonjour le mondeJe voudrais savoir comment faire un select sur une table qui possede un champ date_recep (de type datetime) dont cette date_recep est probleme avec un tableaux (ou est l'erreur??) [ par h2h ] salut tout le monde, jai un probleme avec ce tableaux.. en fait ce tableaux affiche bien ce ke je veu mai le prob cest kil décale tout d'une ligne ce SELECT ds un tablo avec un <tr> coloré sur deux [ par MisterJAD ] J'ai fait un SELECT* dans une table, je l'ai mis dans tableau, mais je voudrais, pour plus de lisibilité s'il y a un grand nombre d'enregistrement fai affichage page par page avec variables [ par piervs ] J'ai un petit (en fait plutot gros) problème et je me permet donc de solliciter votre aide:J'essaye d'afficher à l'aide de PHP les résultats d'une req aide hebergeur [ par mohamed6 ] voila je voudrais savoir ce qu'il faut mettre à la place $dbroot$dbunser$dbpass$url$cheminpour $dbpass je suppose que c'est le mot de passe et le rest UPDATE mystérieux [ par Hicks ] Salut les gars , c surement une question bateau que vous avez l'habitude de voir mais voila : je fais un update sur une base mysql en envoyant les rés galere avec free et php MySQL [ par bigfootspi ] bon voila le code de mon livre d'or !le soucis c'est qu'il met dix ans a se connecter a la base alors que de temps en temps il va vite ! je ne compren champ Text BDD Mysql et execution code PHP [ par cecelecyborg ] Bonjour à tous, Je cherche à executer du code php contenu dans un champ Text d'une base de données MySQL. Est-ce que cela est faisable, et si oui, u


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.